OpenVPN: Instradamento di tutto il traffico client attraverso la VPN - I client non Windows richiedono uno scripting extra sul lato server?


0

NB: Sono un noob di networking quindi supponiamo di non sapere nulla e di spiegare le cose di conseguenza (o di fornire collegamenti a maggiori informazioni).

Sto provando a configurare un server OpenVPN in modo tale che tutto il traffico client (incluso il traffico web) venga instradato attraverso la VPN. Sto seguendo l'OpenVPN HOWTO e ho ottenuto fino alla sezione "Instradare tutto il traffico del client (incluso il traffico web) attraverso la VPN" ( https://openvpn.net/index.php/open-source/documentation/howto.html#redirect ).

La mia configurazione è:

  • Server OpenVPN (BeagleBone Black (BBB) ​​su rete privata IP 10.240.233.2) connesso al mio router a banda larga a home (sulla rete privata IP 10.240.233.1).

  • Client (laptop che esegue Xubuntu GNU / Linux) connesso a una rete esterna.

Posso con successo:

  • Avvia il server OpenVPN sul BBB all'avvio

  • Connetti client a VPN

  • Ping OpenVPN server (10.8.0.1) dal client (10.8.0.6) e vice versa

  • Effettua il ping del router (10.240.233.1) dal client

Quest'ultimo è stato raggiunto da:

  • Aggiunta della seguente direttiva al file di configurazione del server: push "route 10.240.233.0 255.255.255.0"

  • Abilitazione dell'inoltro IP sul server OpenVPN mediante modifica /etc/sysctl.conf (Ecco la modifica: # Uncomment the next line to enable packet forwarding for IPv4 net.ipv4.ip_forward=1, dopo di che il comando sudo sysctl net.ipv4.ip_forward i rendimenti net.ipv4.ip_forward = 1 )

  • Abilitare il tun forwarding usando i seguenti comandi (da questa guida: https://nikinuryadin.wordpress.com/2010/04/16/step-by-step-setting-up-openvpn-in-debian-with-routing-tun-connection/ ): sudo iptables -A INPUT -i tun+ -j ACCEPT e sudo iptables -A FORWARD -i tun+ -j ACCEPT

Ora per il bit di reindirizzamento ...

Ho aggiunto le seguenti direttive al file di configurazione del server (da OpenVPN HOWTO):

push "redirect-gateway def1"
push "dhcp-option DNS 10.240.233.1"

NB: l'IP DNS inviato è quello del mio router a banda larga, che posso eseguire il ping con successo dal client quando connesso alla VPN e che il server sta segnalando come server dei nomi ( cat /etc/resolv.conf sul rendimento del server nameserver 10.240.233.1 )

Ho quindi utilizzato il seguente comando per NAT il traffico del client VPN su Internet (dall'OpenVPN HOWTO):

sudo iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

(Sì, la mia connessione dal server OpenVPN al router a banda larga è segnalata dal server come eth0 (usando ifconfig ))

Infine, ho eseguito i seguenti comandi per salvare l'iptables e riavviare la VPN (dal Niki Nuryadin collegato sopra):

sudo iptables-save
sudo /etc/init.d/networking restart
sudo /etc/init.d/openvpn restart

Posso eseguire il ping con successo su www.google.com e www.bbc.co.uk dal server OpenVPN. (Posso anche eseguire il ping dal portatile mentre non connesso alla VPN, obv!). Tuttavia, quando connesso alla VPN, non posso eseguire il ping di questi siti dal client.

Di solito, se provi a eseguire il ping di qualcosa che non è disponibile (ad es. ping 192.168.7.2 ), ottieni un risultato come questo:

PING 192.168.7.2 (192.168.7.2) 56(84) bytes of data.

e poi si blocca. Tuttavia, in questo caso, quando il client è connesso al server OpenVPN e provo a eseguire il ping su Google o BBC, non ottengo alcun output.

Non riesco a trovare la risposta ovunque su serverfault.com o altrove. L'unico indizio che ho è che l'OpenVPN HOWTO dice:

[Usando `push" dhcp-option DNS 10.240.233.1 "] configurerà i client Windows (o client non Windows) con alcuni script di scripting extra sul lato server ) per utilizzare [10.240.233.1] come server DNS.

Quindi, ho bisogno di uno script aggiuntivo sul lato server? O c'è qualche altro problema?

Inoltre, una volta che posso eseguire il ping dei siti Web e navigare in Internet, come posso verificare che tutto il traffico stia effettivamente attraversando il tunnel di OpenVPN e non solo bypassarlo come faceva prima di eseguire questi passaggi?

Risposte:


0

Da allora ho trovato la risposta. Era un refuso nell'HOWTO. Gli script aggiuntivi sono richiesti su cliente lato, non il server lato.

Aggiungi semplicemente quanto segue al cliente file conf:

script-security 2
up /etc/openvpn/update-resolv-conf
down /etc/openvpn/update-resolv-conf

E per controllare che tutto il traffico stia attraversando il tunnel, usa traceroute, per esempio.

traceroute google.com

L'output mostra la rotta che i pacchetti impiegano per raggiungere la destinazione. Dovresti vedere il gateway VPN (nel mio caso, il mio router a banda larga a casa) nell'output traceroute.

Mille grazie ai forum della community di OpenVPN per l'aiuto con questo: http://forums.openvpn.net/viewtopic.php?f=4&t=23249&p=67315&sid=f2657d061da760b5af60aec18dcea81e#p67315

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.