Ubuntu FW + VPN [MEGOLDVA]

Egy Ubuntu szerveren szeretnék beállítani tűzfalat és VPN elérést, konfigok:

A szerver rendelkezik egy belső interfésszel(eth0, 192.168.1.1), és egy külsővel(eth2, x.y.z.v).

iptables:


echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -P OUTPUT ACCEPT
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -t nat -F
iptables -F
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o ppp0 -j MASQUERADE
iptables -A FORWARD -s 192.168.1.0/24 -o ppp0 -j ACCEPT
iptables -A FORWARD -d 192.168.1.0/24 -m state --state ESTABLISHED,RELATED -i ppp0 -j ACCEPT
iptables -A INPUT -i eth2 -j ACCEPT -m state --state ESTABLISHED,RELATED
iptables -A INPUT -i eth2 -p tcp -j ACCEPT --dport 9922 -m state --state NEW #ssh
iptables -A INPUT -i eth2 -p tcp -j ACCEPT --dport 47 -m state --state NEW #vpn
iptables -A INPUT -i eth2 -p tcp -j ACCEPT --dport 1723 -m state --state NEW #vpn
iptables -A INPUT -i eth2 -j DROP

pptpd-options:


name pptpd
refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
require-mppe-128
ms-dns 192.168.1.1
nodefaultroute
lock

A VPN kapcsolat szépen kiépül:


pr 28 21:13:13 hermes pppd[15325]: Using interface ppp0
Apr 28 21:13:13 hermes pppd[15325]: Connect: ppp0 <--> /dev/pts/0
Apr 28 21:13:13 hermes pptpd[15323]: GRE: Bad checksum from pppd.
Apr 28 21:13:16 hermes pptpd[15323]: CTRL: Ignored a SET LINK INFO packet with real ACCMs!
Apr 28 21:13:16 hermes pppd[15325]: MPPE 128-bit stateless compression enabled
Apr 28 21:13:18 hermes pppd[15325]: found interface eth1 for proxy arp
Apr 28 21:13:18 hermes pppd[15325]: local  IP address 192.168.1.150
Apr 28 21:13:18 hermes pppd[15325]: remote IP address 192.168.1.153
Apr 28 21:13:18 hermes named[825]: received control channel command 'reconfig'
Apr 28 21:13:18 hermes named[825]: loading configuration from '/etc/bind/named.conf'
Apr 28 21:13:18 hermes named[825]: reading built-in trusted keys from file '/etc/bind/bind.keys'
Apr 28 21:13:18 hermes named[825]: using default UDP/IPv4 port range: [1024, 65535]
Apr 28 21:13:18 hermes named[825]: using default UDP/IPv6 port range: [1024, 65535]
Apr 28 21:13:18 hermes named[825]: listening on IPv4 interface ppp0, 192.168.1.150#53
Apr 28 21:13:18 hermes named[825]: reloading configuration succeeded
Apr 28 21:13:18 hermes named[825]: any newly configured zones are now loaded

Viszont nem "látok" semmi belső gépet, pl:


192.168.1.250 pingelése - 32 bájtnyi adattal:
 kérésre nem érkezett válasz a határidőn belül.

Mit rontottam el, vagy hagytam ki?

Hozzászólások

1.) Melyik információ nem úgy íródott le, mint ahogy az van?

  "A szerver rendelkezik egy belső interfésszel(eth0, 192.168.1.1), és egy külsővel(eth2, x.y.z.v)."
  "Apr 28 21:13:18 hermes pppd[15325]: found interface eth1 for proxy arp"
  "Apr 28 21:13:18 hermes pppd[15325]: local IP address 192.168.1.150"

2.) Biztosan natolni akarnád a VPN felé menő forgalmat?

3.) "Apr 28 21:13:18 hermes pppd[15325]: local IP address 192.168.1.150"
Miért 192.168.1.150?

4.) Jelenleg a FORWARD lánc szabályai feleslegesek a default policy miatt.

1. Jogos, van benne egy eth1 192.168.1.254-s IP-vel, de ez most elvileg nem játszik. (hálózat átszervezés van folyamatban, kompatibilitás miatt kell, néhol még ez van beállítva GW-nek)

2. Nem feltétlen, ha az úgy egyszerűbb.

3. Lehet más is, amikor nem adtam meg a konfigban, akkor 192.168.0.1-t adott neki, ami nem tűnt jónak.

4. Ok, később ott DROP lenne, csak most kikapcsoltam, a biztonság kedvéért :)

1.) Nem tűnik jó ötletnek két interfészre ugyanazt a hálózatot konfigurálni (feltételezve a /24-es maszkot). Jobb lett volna ugyanarra az interfészre aliasént vagy második IP-ként felvenni.

2.) Ne legyen. Mondjuk elsőre nem is nagyon látnám értelmét, hogy a LAN címeit elrejtsd a VPN kliens elől, amikor a VPN kliens felől próbáltál forgalmat generálni a LAN-on lévő gép felé.

3.) Miért nem volt jó? Mennie kell úgy.

4.) Akkor viszont ezen a két szabályon nem fog tudni keresztüljutni a VPN felől a LAN felé tartó forgalom.

Ha a localip megváltoztatása és a NAT kivétele után sem megy, nézd meg a forgalmat tcpdumppal.

kivettem a szabályt és a localipt, sajnos nem jött be:

dump:


23:02:05.087264 IP 192.168.1.200.1024 > 192.168.1.232.3740: Flags [P.], seq 36629523:36629534, ack 2803930831, win 1024, length 11
23:02:19.073497 IP 192.168.1.153 > 192.168.1.232: ICMP echo request, id 1, seq 149, length 40
23:02:19.073676 ARP, Request who-has 192.168.1.153 tell 192.168.1.232, length 46

~# ping 192.168.1.232
PING 192.168.1.232 (192.168.1.232) 56(84) bytes of data.
64 bytes from 192.168.1.232: icmp_seq=1 ttl=128 time=0.325 ms
64 bytes from 192.168.1.232: icmp_seq=2 ttl=128 time=0.173 ms

egyébként ha egy belső szerverre irányítom a VPN kapcsolatot, akkor minden megy rendesen:


iptables -t nat -A PREROUTING -p tcp -i eth2 --dport 47 -j DNAT --to 192.168.1.250:47
iptables -t nat -A PREROUTING -p tcp -i eth2 --dport 1723 -j DNAT --to 192.168.1.250:1723

lehet, hogy nem is iptables szabályokkal lesz a gond?

"ARP, Request who-has 192.168.1.153 tell 192.168.1.232"
Az ARP kérésre nem válaszol az eth0-n.

És miért is nem válaszol az eth0-n? Mert:
  "Apr 28 21:13:18 hermes pppd[15325]: found interface eth1 for proxy arp"

Tehát a kérdés még mindig az, hogy miért van két interfész ugyanabban a hálózatban, a dumpolás mindkét interfészen zajlott-e egyidőben, valamint milyen proxy arp beállítások vonatkoznak a (két) interfészre.

Még mindig azt javasolnám, hogy egy interfész legyen két IP-vel.

Igen, szerintem is, az eth1 kavar be:


# arp
Address                  HWtype  HWaddress           Flags Mask            Iface
192.168.1.231            ether   00:1b:fc:af:d7:fd   C                     eth0
192.168.1.232            ether   00:1b:fc:af:d1:36   C                     eth0
192.168.1.153            *       <from_interface>    MP                    eth1

Tudom valahogy kényszeríteni a pptp-t, hogy ne eth1-t használja? Egyáltalán miért azt használja?

a) egy interfész két IP-vel
b) proxy arp bekapcsolása az eth0-n is. Lehet, hogy menni fog, és az is lehet, hogy a RPF-et is ki kell kapcsolni hozzá.

Az a) változatot lépd meg. Nem értem, miért félsz ettől annyira.

Nem tartom valószínűnek, hogy a pptpd rávehető, hogy több azonos hálózatba tartozó interfész közül egy meghatározottat válasszon.

Még egy kiegészítés.

"kellett még egy ms-wins opció is a netbios miatt."
Nem rossz a WINS, de nem szükségszerű. Gondolom, nem véletlen akartad egy hálózatba tenni a VPN klienseket és a LAN-t.

man pptpd.conf:
  bcrelay internal-interface
      turns on broadcast relay mode, sending all broadcasts received on the server's internal interface to the clients. Equivalent to the command line --bcrelay option.