Newsgroup: it.comp.os.linux.sys
Titolo: bridge con openvpn.

Qualcuno usa openvpn per connettersi attraverso internet alla propria 
lan aziendale?
Ho installato il server su una debian e il client sul pc di casa.
Configurato il bridge e fatto partire il demone.
Vedo che alla mia macchina di casa viene assegnato l'ip 172.16.14.15, 
l'ip del server e' 172.16.14.14.
Quindi la connessione tra client e server avviene.
A questo punto pero' i ping tra le due macchine non funzionano e 
ovviamente nemmeno i ping verso le altre macchine della rete 172.16.14.x.
La route del server openvpn e':
localnet     *               255.255.255.0   U     0      0        0 br0
default      172.16.10.1     0.0.0.0         UG    0      0        0 br0
mentre la route del pc di casa e':
192.168.100.1   *           255.255.255.255 UH    0      0        0 ppp0
172.16.10.0     172.16.10.14    255.255.255.0   UG    0      0        0 tap0
172.16.10.0     *           255.255.255.0   U     0      0        0 tap0
default         *           0.0.0.0         U     0      0        0 ppp0
Cosa mi manca ancora?

Qualcuno usa openvpn per connettersi attraverso internet alla propria 
lan aziendale?
Ho installato il server su una debian e il client sul pc di casa.
Configurato il bridge e fatto partire il demone.
Vedo che alla mia macchina di casa viene assegnato l'ip 172.16.14.15, 
l'ip del server e' 172.16.14.14.
Quindi la connessione tra client e server avviene.
A questo punto pero' i ping tra le due macchine non funzionano e 
ovviamente nemmeno i ping verso le altre macchine della rete 172.16.14.x.
La route del server openvpn e':
localnet     *               255.255.255.0   U     0      0        0 br0
default      172.16.14.1     0.0.0.0         UG    0      0        0 br0
mentre la route del pc di casa e':
192.168.100.1   *           255.255.255.255 UH    0      0        0 ppp0
172.16.14.0     172.16.14.14    255.255.255.0   UG    0      0        0 tap0
172.16.14.0     *           255.255.255.0   U     0      0        0 tap0


 Cosa mi manca ancora?
probabilmente, un buon lavoro di analisi della cosa. Comunque io spalmo
un livello due da qui a casa, ecco la configa:
oggei@lattepiu:~$ cat /etc/network/interfaces
[...]
iface br0 inet static
        pre-up openvpn --mktun --dev tap0
        down openvpn --rmtun --dev tap0
        address 192.168.1.1
        netmask 255.255.255.0
        bridge_ports eth0 tap0
        bridge_maxwait 5
        openvpn main
oggei@lattepiu:~$ cat /etc/openvpn/main.conf
# server side, multiple clients
port 1194
proto udp
dev tap0
tls-server
ca cacert.pem
cert scarrafaggio.pem
key scarrafaggio.key
dh dh1024.pem
ping 5
persist-key
persist-tun
comp-lzo
user nobody
group nogroup
persist-key
persist-tun
fast-io
mlock
lattepiu:/home/oggei# cat /etc/shorewall/interfaces
net     eth1    149.132.5.255   arp_filter
loc     br0     192.168.1.255   routeback,arp_filter
loc     vmnet8  192.168.111.255 arp_filter
lattepiu:/home/oggei# cat /etc/shorewall/policy
net     all     DROP info
loc     all     ACCEPT
fw      all     ACCEPT
all     all     REJECT info
tieni conto che farsi una vpn non sapendone di reti vuol dire creare ed
affidarsi a qualcosa che potrebbe rivelarsi not so trusted, non tanto
per il traffico in rete ma per le politiche che potresti implementarci
sopra.
Ma chi vi gestisce la rete ti ha detto che puoi usare il 14 ?
ciao,
--
oggei

 Ma chi vi gestisce la rete ti ha detto che puoi usare il 14 ?
Si certo gli ip mi sono stati dati.
Con tcpdump ho visto, cercando di pingare il pc di casa dal server vpn, 
che vengono fatte delle richieste arp le quali non vengono soddisfatte.
Il server e' in dmz, il firewall e' un netscreen che permette tutto il 
traffico in output mentre in input apre la udp 1194.
Le regole sul server openvpn invece sono:
iptables -A INPUT -p udp --dport 1194 - j ACCEPT
iptables -A INPUT -i tap+ -j ACCEPT
iptables -A INPUT -i br0 -j ACCEPT
iptables -A FORWARD -i br0 -j ACCEPT
iptables -A FORWARD -i tap+ -j ACCEPT
l'output e' libero.

 iptables -A FORWARD -i tap+ -j ACCEPT
ai fini della terminazione e del funzionamento di questa vpn, queste due
sono inutili
ciao,
--
oggei

Volevo precisare che il server vpn e' in una dmz controllata da un 
firewall netscreen 204.
Le regole di tale firewall per il server sono:
in output fai passare tutto mentre in input fai passare solo la udp 1194.
Ho provato ad aprire tutto anche in input ma il risultato non cambia.

 172.16.14.15 255.255.255.0'
ciao,
--
oggei

 Ho provato ad aprire tutto anche in input ma il risultato non cambia.
meno male :)
ciao,
--
oggei

 
Nemmeno, anche in questo caso vedo richieste arp senza risposta.
Hai idea di quale potrebbe essere il problema?


Il fatto che l'ip pubblico del server sia nattato con l'ip privato puo' 
constituire un problema?
Il server ha una sola interfaccia di rete.

 Il server ha una sola interfaccia di rete.
le reti sono meno complesse di quanto la credenza popolare diffusa non
voglia.
ciao,
-- 
oggei

 voglia.
Non son d'accordo. Anzi, di solito dico il contrario... :-P
Le reti *sono* complesse.
Casomai, non sono complicate... ;-)
-- 
Skull & Bones (ER6n Silver)
Neo:  I know Sendmail!
Morpheus:  Show me.


server ifconfig -a:
   br0       Link encap:Ethernet  HWaddr 00:0F:FE:0D:24:64
           inet addr:172.16.14.14  Bcast:172.16.14.255  Mask:255.255.255.0
           inet6 addr: fe80::20f:feff:fe0d:2464/64 Scope:Link
           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
           RX packets:9407 errors:0 dropped:0 overruns:0 frame:0
           TX packets:842 errors:0 dropped:0 overruns:0 carrier:0
           collisions:0 txqueuelen:0
           RX bytes:585461 (571.7 KiB)  TX bytes:81354 (79.4 KiB)
eth0      Link encap:Ethernet  HWaddr 00:0F:FE:0D:24:64
           inet6 addr: fe80::20f:feff:fe0d:2464/64 Scope:Link
           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
           RX packets:25638 errors:0 dropped:0 overruns:0 frame:0
           TX packets:839 errors:0 dropped:0 overruns:0 carrier:0
           collisions:0 txqueuelen:1000
           RX bytes:1898318 (1.8 MiB)  TX bytes:87608 (85.5 KiB)
           Interrupt:169
lo        Link encap:Local Loopback
           inet addr:127.0.0.1  Mask:255.0.0.0
           inet6 addr: ::1/128 Scope:Host
           UP LOOPBACK RUNNING  MTU:16436  Metric:1
           RX packets:2 errors:0 dropped:0 overruns:0 frame:0
           TX packets:2 errors:0 dropped:0 overruns:0 carrier:0
           collisions:0 txqueuelen:0
           RX bytes:210 (210.0 b)  TX bytes:210 (210.0 b)
sit0      Link encap:IPv6-in-IPv4
           NOARP  MTU:1480  Metric:1
           RX packets:0 errors:0 dropped:0 overruns:0 frame:0
           TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
           collisions:0 txqueuelen:0
           RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
tap0      Link encap:Ethernet  HWaddr 16:6A:E7:CE:72:EC
           inet6 addr: fe80::146a:e7ff:fece:72ec/64 Scope:Link
           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
           RX packets:0 errors:0 dropped:0 overruns:0 frame:0
           TX packets:0 errors:0 dropped:8670 overruns:0 carrier:0
           collisions:0 txqueuelen:0
           RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
tap1      Link encap:Ethernet  HWaddr A6:E8:A1:84:98:77
           BROADCAST MULTICAST  MTU:1500  Metric:1
           RX packets:77 errors:0 dropped:0 overruns:0 frame:0
           TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
           collisions:0 txqueuelen:100
           RX bytes:10057 (9.8 KiB)  TX bytes:0 (0.0 b)
route:
localnet        *            255.255.255.0   U     0      0        0 br0
default         172.16.14.1  0.0.0.0         UG    0      0        0 br0
pingo il client 172.16.14.15 e l'arp -an diventa:
? (172.16.14.15) at <incomplete> on br0
? (172.16.14.1) at 00:10:DB:FF:20:50 [ether] on br0
client ifconfig -a:
eth0      Link encap:Ethernet  HWaddr 00:02:3F:CF:84:2C
           inet6 addr: fe80::202:3fff:fecf:842c/64 Scope:Link
           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
           RX packets:3156 errors:0 dropped:0 overruns:0 frame:0
           TX packets:2293 errors:0 dropped:0 overruns:0 carrier:0
           collisions:0 txqueuelen:1000
           RX bytes:326225 (318.5 KiB)  TX bytes:235261 (229.7 KiB)
           Interrupt:225 Base address:0x3000
eth1      Link encap:UNSPEC  HWaddr 
00-02-3F-3B-37-00-00-5B-00-00-00-00-00-00-00-00
           BROADCAST MULTICAST  MTU:1500  Metric:1
           RX packets:0 errors:0 dropped:0 overruns:0 frame:0
           TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
           collisions:0 txqueuelen:1000
           RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
lo        Link encap:Local Loopback
           inet addr:127.0.0.1  Mask:255.0.0.0
           inet6 addr: ::1/128 Scope:Host
           UP LOOPBACK RUNNING  MTU:16436  Metric:1
           RX packets:16 errors:0 dropped:0 overruns:0 frame:0
           TX packets:16 errors:0 dropped:0 overruns:0 carrier:0
           collisions:0 txqueuelen:0
           RX bytes:1280 (1.2 KiB)  TX bytes:1280 (1.2 KiB)
ppp0      Link encap:Point-to-Point Protocol
           inet addr:87.16.90.25  P-t-P:192.168.100.1  Mask:255.255.255.255
           UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1492  Metric:1
           RX packets:3107 errors:0 dropped:0 overruns:0 frame:0
           TX packets:2238 errors:0 dropped:0 overruns:0 carrier:0
           collisions:0 txqueuelen:3
           RX bytes:254799 (248.8 KiB)  TX bytes:182557 (178.2 KiB)
sit0      Link encap:IPv6-in-IPv4
           NOARP  MTU:1480  Metric:1
           RX packets:0 errors:0 dropped:0 overruns:0 frame:0
           TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
           collisions:0 txqueuelen:0
           RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
tap0      Link encap:Ethernet  HWaddr 32:9D:3C:50:AB:96
           inet addr:172.16.14.15  Bcast:172.16.14.255  Mask:255.255.255.0
           inet6 addr: fe80::309d:3cff:fe50:ab96/64 Scope:Link
           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
           RX packets:0 errors:0 dropped:0 overruns:0 frame:0
           TX packets:17 errors:0 dropped:0 overruns:0 carrier:0
           collisions:0 txqueuelen:100
           RX bytes:0 (0.0 b)  TX bytes:2730 (2.6 KiB)
route:


 Casomai, non sono complicate... ;-)
concorso, per quanto intendessi la percezione di complessita' che se ne ha
generalmente ... <g>
ciao,
-- 
oggei

 Casomai, non sono complicate... ;-)
concordo, parlavo della percezione comune anyway ... <g>

non hai mandato arp -an del client dopo aver fatto la stessa movida. Gia'
che ci sei manda l'output di brctl show per *entrambe* le macchine
ciao,
-- 
oggei


ok, pingato dal client al server, arp -an:
? (172.16.14.14) at <incomplete> on tap0
server brctl show:
bridge name     bridge id               STP enabled     interfaces
br0             8000.000ffe0d2464       no              eth0
                                                         tap0
client brctl show:
uhmm niente, mi sa che abbiamo scovato il problema :-(
Il client va in internet con collegamento in adsl, dovrei fare il bridge 
con l'interfaccia ppp0?

 con l'interfaccia ppp0?
tirare a indovinare non ti portera' da nessuna parte. Perche' vorresti
mettere in bridge ppp0 e vpn ?
ciao,
-- 
oggei


Ho tolto tutte le regole del netfilter lato server e aperto tutto 
da/verso internet sul firewall netscreen che controlla la dmz sulla 
quale sta il server.
Ho tolto tutte le regole anche dalla macchina di casa.
Il rislutato non cambia.
Con tcpdump vedo lato client:
09:44:47.525505 IP 172.16.14.15.netbios-dgm > 172.16.14.255.netbios-dgm: 
NBT UDP PACKET(138)
09:51:47.540487 IP 172.16.14.15.netbios-dgm > 172.16.14.255.netbios-dgm: 
NBT UDP PACKET(138)
09:51:47.540700 IP 172.16.14.15.netbios-dgm > 172.16.14.255.netbios-dgm: 
NBT UDP PACKET(138)
09:52:02.852604 arp who-has 172.16.14.14 tell 172.16.14.15
09:52:03.852768 arp who-has 172.16.14.14 tell 172.16.14.15
09:52:04.852929 arp who-has 172.16.14.14 tell 172.16.14.15
09:52:06.853257 arp who-has 172.16.14.14 tell 172.16.14.15
09:52:07.853420 arp who-has 172.16.14.14 tell 172.16.14.15
...........
lato server:
arp who-has 172.16.14.15 tell vpn1
09:50:38.829688 arp who-has 172.16.14.15 tell vpn1
09:50:39.829711 arp who-has 172.16.14.15 tell vpn1
............
il config lato server e':
port 1194
proto udp
dev tap
ca ./certs/cacert.pem
cert ./certs/vpncert.pem
key ./certs/vpnkey.pem
dh ./certs/dh1024.pem
ifconfig-pool-persist ipp.txt
server-bridge 172.16.14.14 255.255.255.0 172.16.14.15 172.16.14.45
client-to-client
keepalive 10 120
tls-auth ./certs/ta.key
comp-lzo
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
verb 3
la /etc/network/interfaces e':
auto lo
iface lo inet loopback
auto br0
iface br0 inet static
         pre-up openvpn --mktun --dev tap0
         down openvpn -- rmtun --dev tap0
         address 172.16.14.14
         network 172.16.14.0
         netmask 255.255.255.0
         broadcast 172.16.14.255
         gateway 172.16.14.1
         bridge_ports eth0 tap0
         bridge_maxwait 5
         openvpn main
la config lato client e':
client
dev tap
proto udp
remote xx.xx.xx.xx 1194
resolv-retry infinite
nobind
user nobody
group nogroup
persist-key
persist-tun
ca ./cert/cacert.pem
cert ./cert/cert.pem
key ./cert/key.pem
tls-auth ./cert/ta.key 1
comp-lzo
verb 3


potrebbe essere un problema nello switch al quale e' collegato il server?

 Il rislutato non cambia.
il netscreen potevi anche lasciarlo stare.
potresti provare a levare tutto cio' che non e' utile ai fini di un
collegamento base e vedere se funge, quindi shed dei privilegi,
server-bridge (e dare configa ip statica al client), etc
il problema e' che dalle tue ipotesi (netscreen, switch) c'e' il rischio
di qualche stranezza commessa altrove. Rifarei tutto da capo per questo
ciao,
-- 
oggei

 server-bridge (e dare configa ip statica al client), etc
Scusa l'ignoranza ma esattamente non ho capito cosa devo fare.
Se puo' essere utile posso dire che configurando openvpn in routing 
anziche' bringing il collegamento tra il server e la macchina a casa 
riusciva completamente, nel senso che funzionanva il ping e tutti gli 
altri servizi, ssh, ecc.

music wrote:

ecco riparti da quel setup funzionante e rifai tutti i passaggi, magari
ti sei perso qualcosa per strada : dal setup che hai dovrebbe fungere
tutto, una volta che la vpn e' terminata e' come un cavo crossato tra
due macchine, che kernel monti ?
ciao,
--
oggei


kernel 2.6.8 con debian stable.
La configurazione del server e client per il routing e' banale, l'unica 
cosa che cambia per il bridging e' appunto settare il bridge ma l'ho 
fatto copiando praticamente il tuo interfaces.
Comunque riprovo.

 Comunque riprovo.
Ma non e' che il server deve avere due schede di rete?

 Ma non e' che il server deve avere due schede di rete?
di fatto ne ha una dedicata alla vpn, la tap
rifai il setup da capo andando diretto al punto, e non
pensando alle x ipotesi fuorvianti uscite nel corso di questo thread :)
ciao,
--
oggei