Pagina 1 di 1

OPENVPN - Tunnel fra raspberry e windows server

Inviato: giovedì 26 gennaio 2017, 0:51
da shadow_976
Salve a tutti,
ho un problema da qualche giorno.
sto creando una VPN fra un Raspberry e un server Windows 2008.
il Raspberry si trova nella sede B mentre il server Windows nella sede A.

la VPN è fatta installando OPENVPN sul server da dove sono stati generati i certificati, il server (sede A) è connesso ad una rete ADSL Fastweb.
nella sede B ho installato i certificati e il client Open VPN, la sede B è connessa attraverso un Router UMTS.

Al momento al posto del Raspberry sto usando un Mac per comodità...

La connessione VPN avviene in quanto TunnelBlick sul mac si connette ma non riesco a reindirizzare tutto il traffico generato dalla sede B verso la sede A.
In buona sostanza ho la necessità di navigare su internet dalla sede B utilizzando la rete Fastweb della sede A, e pertanto usare come gateway della sede B la sede A.

Vi riporto i file di configurazione del server e del client OpenVPN

Codice: Seleziona tutto

#SERVER OVPN
port 1194
proto udp
dev tun
# SSL/TLS
ca ca.crt
cert server.crt
key server.key
tls-auth key.txt 0
# Diffie hellman parameters
dh dh1024.pem
script-security 2
keepalive 10 120
comp-lzo
# VPN subnet
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
persist-key
persist-tun
status openvpn-status.log
cipher AES-256-CBC
push "route 10.8.0.0 255.255.255.0"
route 10.8.1.0 255.255.255.0
;push "route 10.8.0.1 255.255.255.0 10.8.0.5 1"
push "redirect-gateway def1 bypass-dhcp"
;push "redirect-gateway local def1"
push "dhcp-option DNS 10.8.0.1"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 4.4.4.4"
#push "dhcp-option DNS 208.67.222.222"
verb 3

Codice: Seleziona tutto

#CLIENT OVPN
client
;dev tap
dev tun
;dev-node “OPENVPN”
;proto tcp
proto udp
remote XXX.YYY.ZZZ.CCCC 1194
;remote 192.168.1.83 1194
;remote-random
resolv-retry infinite
nobind
;user nobody
;group nobody
persist-key
persist-tun
;http-proxy-retry # retry on connection failures
;http-proxy [proxy server] [proxy port #]
;mute-replay-warnings
cert client1.crt
key client1.key
;remote-cert-tls server
ns-cert-type server
tls-auth key.txt.unknown 1
cipher AES-256-CBC
comp-lzo
verb 6
mute 20
Vi sarei grato Se poteste provare ad aiutarmi in quanto sono tre giorni che ci sbatto la testa ma non trovo dove sbaglio.
Grazie mille!

Re: OPENVPN - Tunnel fra raspberry e windows server

Inviato: giovedì 26 gennaio 2017, 9:37
da thece
:ciao:

devi modificare il default gateway di tutti gli host della rete B facendoli puntare al Raspberry Pi. Sul Raspberry Pi devi modificare la configurazione del client OpenVPN aggiungendo la direttiva

Codice: Seleziona tutto

redirect-gateway def1

Re: OPENVPN - Tunnel fra raspberry e windows server

Inviato: giovedì 26 gennaio 2017, 10:29
da shadow_976
Ciao e grazie per la risposta...
Purtroppo non funziona...

Inoltre sia prima dell'inserimento della stringa da te consigliata sia dopo ho provato a fare dei ping verso l'ip 10.8.0.1 (ip assegnato al server dopo connessione VPN) dal client (10.8.0.6) e viceversa ma non funziona il ping...
Il server naviga senza problemi mentre il client dopo la connessione non naviga e non pinga neanche il dns 8.8.8.8.
L'unico IP che riesco a pingare dopo la connessione VPN è l'ADSL del router connesso al server OVPN, non riesco a pingare null'altro...
Per curiosità ho fatto un tracert ip adsl e l'istradamento verso quell'ip non utilizza la VPN...

NON CAPISCO PIU NULLA!!!
Dove sbaglio???

Re: OPENVPN - Tunnel fra raspberry e windows server

Inviato: giovedì 26 gennaio 2017, 10:35
da thece
Riorganizzo la risposta ...
thece [url=http://forum.ubuntu-it.org/viewtopic.php?p=4953416#p4953416][img]http://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto: devi modificare il default gateway di tutti gli host della rete B facendoli puntare al Raspberry Pi. Sul Raspberry Pi devi modificare la configurazione del client OpenVPN aggiungendo la direttiva

Codice: Seleziona tutto

redirect-gateway def1
inoltre ... mi sono dimenticato un passaggio importante ... sul server OpenVPN, quindi su Windows Server, devi attivare sia l'inoltro del traffico tra le interfacce di rete, sia il NAT / masquerading dei pacchetti provenienti dall'interfaccia di rete relativa alla VPN. Se fossimo su Linux ti direi esattamente cosa controllare e cosa configurare, ma Windows Server non lo conosco così bene


Ammesso che le due configurazioni (server e client) siano state scritte correttamente, una volta stabilita la connessione VPN, a prescindere da tutto il resto, il ping tra client (10.8.0.6) e server (10.8.0.1) VPN deve funzionare, altrimenti la VPN non è stata stabilita correttamente.


Postami questi due output, dal Raspberry PI, dopo che hai attivato la connessione alla VPN

Codice: Seleziona tutto

ifconfig
route -n

Re: OPENVPN - Tunnel fra raspberry e windows server

Inviato: giovedì 26 gennaio 2017, 12:29
da shadow_976
route-n

Codice: Seleziona tutto

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.1     0.0.0.0         UG    0      0        0 wlan0
0.0.0.0         192.168.1.1     0.0.0.0         UG    303    0        0 wlan0
192.168.1.0     0.0.0.0         255.255.255.0   U     303    0        0 wlan0
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.8.0.5        128.0.0.0       UG    0      0        0 tun0
0.0.0.0         192.168.1.1     0.0.0.0         UG    0      0        0 wlan0
0.0.0.0         192.168.1.1     0.0.0.0         UG    303    0        0 wlan0
IP ADSL SERVER    192.168.1.1     255.255.255.255 UGH   0      0        0 wlan0
10.8.0.1        10.8.0.5        255.255.255.255 UGH   0      0        0 tun0
10.8.0.5        0.0.0.0         255.255.255.255 UH    0      0        0 tun0
128.0.0.0       10.8.0.5        128.0.0.0       UG    0      0        0 tun0
192.168.1.0     0.0.0.0         255.255.255.0   U     303    0        0 wlan0
ifconfig

Codice: Seleziona tutto

eth0      Link encap:Ethernet  HWaddr b8:27:eb:15:f2:da  
          inet6 addr: fe80::f198:a6a9:729f:c64e/64 Scope:Link
          UP 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:65536  Metric:1
          RX packets:161 errors:0 dropped:0 overruns:0 frame:0
          TX packets:161 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1 
          RX bytes:13248 (12.9 KiB)  TX bytes:13248 (12.9 KiB)

tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:10.8.0.6  P-t-P:10.8.0.5  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:101 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100 
          RX bytes:0 (0.0 B)  TX bytes:6052 (5.9 KiB)

wlan0     Link encap:Ethernet  HWaddr b8:27:eb:40:a7:8f  
          inet addr:192.168.1.150  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::96c9:77f1:af3d:b0a3/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:62358 errors:0 dropped:5283 overruns:0 frame:0
          TX packets:69912 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:20818097 (19.8 MiB)  TX bytes:58332784 (55.6 MiB)

eth0      Link encap:Ethernet  HWaddr b8:27:eb:15:f2:da  
          inet6 addr: fe80::f198:a6a9:729f:c64e/64 Scope:Link
          UP 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:65536  Metric:1
          RX packets:161 errors:0 dropped:0 overruns:0 frame:0
          TX packets:161 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1 
          RX bytes:13248 (12.9 KiB)  TX bytes:13248 (12.9 KiB)

tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:10.8.0.6  P-t-P:10.8.0.5  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:25 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100 
          RX bytes:0 (0.0 B)  TX bytes:1504 (1.4 KiB)

wlan0     Link encap:Ethernet  HWaddr b8:27:eb:40:a7:8f  
          inet addr:192.168.1.150  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::96c9:77f1:af3d:b0a3/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:72249 errors:0 dropped:6717 overruns:0 frame:0
          TX packets:80024 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:26703687 (25.4 MiB)  TX bytes:65451490 (62.4 MiB)



Re: OPENVPN - Tunnel fra raspberry e windows server

Inviato: giovedì 26 gennaio 2017, 12:35
da thece
Pasticci di Copia e Incolla a parte mi sembra tutto OK.

Queste sono le tre rotte, dovute alla direttiva "redirect-gateway def1" di cui sopra, che fanno in modo che tutto il traffico in uscita dal Raspberry Pi verso I'esterno della LAN B venga reinstradato dentro il tunnel VPN
shadow_976 [url=http://forum.ubuntu-it.org/viewtopic.php?p=4953466#p4953466][img]http://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto:

Codice: Seleziona tutto

Kernel IP routing table
0.0.0.0         10.8.0.5        128.0.0.0       UG    0      0        0 tun0
IP ADSL SERVER    192.168.1.1     255.255.255.255 UGH   0      0        0 wlan0
128.0.0.0       10.8.0.5        128.0.0.0       UG    0      0        0 tun0
Sempre dal Raspberry Pi, prova i seguenti ping

Codice: Seleziona tutto

ping -c 5 10.8.0.1

Codice: Seleziona tutto

ping -c 5 INDIRIZZO_IP_SERVER_WINDOWS
Se non hai impostato Windows Server come ti ho detto in precedenza, i due seguenti ping dovrebbero fallire

Codice: Seleziona tutto

ping -c 5 GATEWAY_LAN_A

Codice: Seleziona tutto

ping -c 5 8.8.8.8

Re: OPENVPN - Tunnel fra raspberry e windows server

Inviato: giovedì 26 gennaio 2017, 17:32
da shadow_976
Ciao, ho provato a ad abilitare il routing del server windows purtroppo pero ho un problema e non so come risolverlo mi segnala che l'interfaccia non è registrata e mi restituisce un errore 80040154.

Adesso sono in treno e non riesco a lavorare più di tanto la connessione va e viene... proverò stasera...

Grazie a più tardi..
V.

Re: OPENVPN - Tunnel fra raspberry e windows server

Inviato: venerdì 27 gennaio 2017, 22:28
da thece
Dunque, ho messo su una VM Windows Server 2008 R2 e ho provato a ricreare lo scenario rappresentato nello schema di rete di cui sopra: sembra che sia riuscito a farlo funzionare.

Di seguito in breve i punti salienti.

(LAN A - 192.168.0.0 / 24)

Ho installato la VM Windows Server 2008 R2
Ho installato sulla VM OpenVPN Server. L'ho configurato, generando sia le configurazioni, che i certificati, che le chiavi sia per il server VPN, sia per un client VPN
Ho configurato sulla VM OpenVPN come servizio automatico e l'ho avviato

A questo punto la VM ha due interfacce di rete attive;
- Local Area Connection (IP 192.168.0.100) relativa alla LAN A 192.168.0.0 / 24
- Local Area Connection 2 (IP 10.0.0.1) relativa alla VPN 10.0.0.0

Ho abilitato OpenVPN sul firewall di Windows

Sulla VM ho aperto regedit e ho editato la chiave HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\Parameters\IpEnableRouter impostandola a 1

Ho riavviato la VM

Sulla VM ho installato e configurato il NAT

Installazione del NAT
Server Manager > Roles > Add Roles > Next > Network Policy and Access Services > Next > Next > Routing and Remote Access Services (tutto) > Next > Install

Configurazione del NAT
Server Manager > Roles > Network Policy and Access Services > Routing and Remote Access Services > Configure and Enable Routing and Remote Access Services > Next > Network Address Translation (NAT) > Next > Using this public interface to connect to Internet > ho selezionato Local Area Connection (IP 192.168.0.100) > Next > Finish

(LAN B - 192.168.1.0 / 24)

A questo punto mi sposto sul client Linux (per te il Raspberry Pi)

Ho installato OpenVPN

Ho trasportato i file di configurazione, certificati e chiave del client VPN

Ho avviato la VPN con il comando

Codice: Seleziona tutto

openvpn --config client.ovpn
Ho aggiustato il contenuto del file /etc/resolv.conf poichè OpenVPN non lo va a correggere adeguatamente a causa del Network Manager

Codice: Seleziona tutto

echo "nameserver 192.168.0.1" > /etc/resolv.conf
echo "nameserver 8.8.8.8" >> /etc/resolv.conf
echo "nameserver 8.8.4.4" >> /etc/resolv.conf
A questo punto ho provato un pò di ping / traceroute per vedere che tutto fosse a posto

Codice: Seleziona tutto

ping -c 5 10.0.0.1
ping -c 5 192.168.0.100
ping -c 5 192.168.0.1
ping -c 5 8.8.8.8
ping -c 5 google.it
traceroute google.it

A questo punto, per un qualsiasi host della LAN B, per obbligarlo a passare per la VPN dovrebbe essere sufficiente cambiargli il default gateway.


server.ovpn

Codice: Seleziona tutto

port 1194
proto tcp
dev tun
ca "C:\\Program Files\\OpenVPN\\easy-rsa\\keys\\ca.crt"
cert "C:\\Program Files\\OpenVPN\\easy-rsa\\keys\\winsrv2008r2_server.crt"
key "C:\\Program Files\\OpenVPN\\easy-rsa\\keys\\winsrv2008r2_server.key"
dh "C:\\Program Files\\OpenVPN\\easy-rsa\\keys\\dh2048.pem"
topology subnet
server 10.0.0.0 255.255.255.0
client-to-client
duplicate-cn
keepalive 10 120
cipher AES-128-CBC
comp-lzo
persist-key
persist-tun
status openvpn-status.log
log openvpn.log
verb 3
client.ovpn

Codice: Seleziona tutto

client
dev tun
proto tcp
remote PUBLIC_IP_OPENVPN_SERVER
port 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert winsrv2008r2_client.crt
key winsrv2008r2_client.key
cipher AES-128-CBC
comp-lzo
verb 3
; Per raggiungere tutta la LAN A
route 192.168.0.0 255.255.255.0
; Per redirigere il gateway verso il server OpenVPN
redirect-gateway def1

Re: OPENVPN - Tunnel fra raspberry e windows server

Inviato: venerdì 27 gennaio 2017, 23:26
da shadow_976
su windows server hai fatto il bridge fra le 2 connessioni di rete (rete OPENVPN e rete LAN)? oppure le hai lasciate dissociate?

Re: OPENVPN - Tunnel fra raspberry e windows server

Inviato: sabato 28 gennaio 2017, 0:00
da thece
shadow_976 [url=http://forum.ubuntu-it.org/viewtopic.php?p=4953916#p4953916][img]http://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto:su windows server hai fatto il bridge fra le 2 connessioni di rete (rete OPENVPN e rete LAN)? oppure le hai lasciate dissociate?
Non ho costruito nessun bridge. Se l'avessi fatto, l'avrei scritto