Shorewall + OpenVpn
Salve,
ho la necessita' di collegare due sedi remote con una vpn, la mia
esigenza e' quella di far vedere sia i pc che le stampanti delle due
sedi come se fossero una rete locale.
Ecco come ho configurato il tutto
RETE LOCALE A : indirizzi ip utilizzati dal 192.168.10.2 al 192.168.10.99
|
|
|
|
eth0: 192.168.10.1
FIREWALL A : ( distribuzione debian ; openvpn ver. 2.0.beta15 ;
shorewall ver 2.0.11 )
eth1 : xxx.xxx.xxx.xxx ( indirizzo ip pubblico )
|
|
|( linea adsl con ip statici )
|
INTERNET
|
|
|
eth1 : yyy.yyy.yyy.yyy ( indirizzo ip pubblico )
FIREWALL B : ( distribuzione debian ; openvpn ver. 2.0.beta15 ;
shorewall ver 2.0.11 )
eth0 : 192.168.10.201
|
|
|
|
RETE LOCALE B : indirizzi ip utilizzati dal 192.168.10.202 al
192.168.10.244
Sul firewall A ho attivato openvpn in modalita' bridge ethernet tunnel,
sul firewall B lancio la connessione VPN al firewall A.
Le due reti locali si vedono ed i vari computer Windows posso sia
scambiarsi i file che stampare sulle stampanti condivise delle due sedi.
Ho quindi abilitato il firewall ( utilizzando shorewall ) partendo dallo
script di esempio fornito dal loro sito, ho quindi configurato shorewall
per permettere i collegamenti della vpn seguendo l'howto presente a
questo link : http://shorewall.net/OPENVPN.html
a questo la vpn non funziona piu' ad esempio quando una macchina della
rete locale B tenta di accedere ad un dns server presente su internet
nei file di log di shorewall ho :
Dec 1 15:38:57 dnsprova kernel: Shorewall:all2all:REJECT:IN=br0
OUT=eth1 PHYSIN=eth0 SRC=192.168.10.221 DST=62.123.105.181 LEN=50
TOS=0x00 PREC=0x00 TTL=127 ID=1176 PROTO=UDP SPT=1045 DPT=53 LEN=30
E' ovvio che il firewall vede i pacchetti che arrivano dalla rete locale
( tramite la vpn e quindi br0 ) come se fossero inviati dall'esterno e
quindi li scarta, sembra che non veda le modifiche fatte per accettare i
dati della vpn.
Secondo voi e' possibile una configurazione di questo tipo' o devo
rivedere l'intera struttura ?
Tenete presente che le macchine nella rete locale devono anche navigare
in Internet.
Mille grazie da Obe.
ecco come ho configurato shorewall sul FIREWALL B :
/etc/shorewall/interfaces :
net eth1 detect tcpflags,dhcp,routefilter,norfc1918
loc eth0 detect tcpflags
vpn br0
/etc/shorewall/zone :
net Net Internet
loc Local Local Networks
vpn Vpn prova vpn obe
/etc/shorewall/masq :
eth1 192.168.10.0/24
/etc/shorewall/policy :
loc net ACCEPT
# If you want open access to the Internet from your Firewall
# remove the comment from the following line.
fw net ACCEPT
net all DROP info
# THE FOLLOWING POLICY MUST BE LAST
all all REJECT info
# per openvpn oberdan
vpn all ACCEPT
all vpn ACCEPT
/etc/shorewall/tunnels
openvpn net xxx.xxx.xxx.xxx
SCRIPT per lanciare la vpn sul FIREWALL A :
#!/bin/sh
/usr/local/sbin/openvpn --mktun --dev tap0
/usr/sbin/brctl addbr br0
/usr/sbin/brctl addif br0 tap0
/usr/sbin/brctl addif br0 eth0
/sbin/ifconfig tap0 0.0.0.0 promisc up
/sbin/ifconfig eth0 0.0.0.0 promisc up
/sbin/ifconfig br0 192.168.10.1 netmask 255.255.255.0 broadcast
192.168.0.255
/usr/local/sbin/openvpn --tun-mtu 1500 --tun-mtu-extra 64 --dev tap0
--secret /etc/openvpn/static.key --ping 40 --float --comp-lzo --daemon
_____________________________________________________________________________________________________________
SCRIPT per lanciare la vpn sul FIREWALL B :
#!/bin/sh
/usr/local/sbin/openvpn --mktun --dev tap0
/usr/sbin/brctl addbr br0
/usr/sbin/brctl addif br0 tap0
/usr/sbin/brctl addif br0 eth0
/sbin/ifconfig tap0 0.0.0.0 promisc up
/sbin/ifconfig eth0 0.0.0.0 promisc up
/sbin/ifconfig br0 192.168.10.201 netmask 255.255.255.0 broadcast
192.168.0.255
/usr/local/sbin/openvpn --tun-mtu 1500 --tun-mtu-extra 64 --dev tap0
--ping 40 --float --comp-lzo --secret /etc/openvpn/static.key --remote
xxx.xxx.xxx.xxx --daemon
_____________________________________________________________________________________________________________
Reply to: