IlPuntoTecnico
Hardware e Software => Connessioni ADSL/VDSL/FTTC => Topic aperto da: roleo - 30 Agosto 2018, 13:38
-
Apro questo topic perché ho visto diverse persone scontrarsi con problemi di vpn dovuti all'utilizzo di applicazioni un po' particolari (anche tipo VOIP).
La VPN ethernet bridge (tap mode) è una modalità di vpn disponibile in OpenVPN che crea un unico dominio di broadcast e quindi potrebbe risolvere a priori tutta una serie di problemi di routing e firewalling.
Di fatto, una volta connessi si ottiene un IP della stessa subnet della lan. Unico neo è che la modalità tap non è supportata dai client disponibili su device mobili, quindi è da usare da PC oppure tra router e router.
Sono particolarmente affezionato a questa modalità perché secondo me è comodissima. Probabilmente non adatta a contesti complessi ma collegarsi da fuori e avere un IP di casa è veramente comodo. Per i nostalgici:
https://www.ilpuntotecnico.com/forum/index.php/topic,11039.0.html
Fatta la premessa, rilancio al topic su OpenVPN perché la configurazione è praticamente identica.
https://www.ilpuntotecnico.com/forum/index.php/topic,77856.0.html
Quindi potete seguire quella guida fino alla creazione delle chiavi.
Dopodiché si procede alla configurazione del tap su OpenVPN.
Eseguire i seguenti comandi uci per impostare la configurazione di openvpn (personalizzate chiaramente ciò che ritenete opportuno):
uci set openvpn.vpnserver='openvpn'
uci set openvpn.vpnserver.enabled='1'
uci set openvpn.vpnserver.dev='tap'
uci set openvpn.vpnserver.proto='udp'
uci set openvpn.vpnserver.port='1194'
uci set openvpn.vpnserver.tls_server='1'
uci set openvpn.vpnserver.mode='server'
uci set openvpn.vpnserver.compress='lzo'
uci set openvpn.vpnserver.keepalive='10 120'
uci set openvpn.vpnserver.persist_key='1'
uci set openvpn.vpnserver.persist_tun='1'
uci set openvpn.vpnserver.ca='/etc/openvpn/keys/ca.crt'
uci set openvpn.vpnserver.cert='/etc/openvpn/keys/my-server.crt'
uci set openvpn.vpnserver.key='/etc/openvpn/keys/my-server.key'
uci set openvpn.vpnserver.dh='/etc/openvpn/keys/dh2048.pem'
uci set openvpn.vpnserver.tls_auth='/etc/openvpn/keys/tls-auth.key 0'
uci set openvpn.vpnserver.log='/var/log/openvpn.log'
uci set openvpn.vpnserver.status='/var/log/openvpn-status.log'
uci set openvpn.vpnserver.verb=3
uci add_list openvpn.vpnserver.push='route-gateway dhcp'
uci commit openvpn
Come potete vedere dalla configurazione, le righe differenti sono veramente poche, importante è la "dev tap".
Eseguire openvpn:
/etc/init.d/openvpn enable
/etc/init.d/openvpn start
Creare sul proprio client OpenVPN il file di configurazione come segue:
client
dev tap
proto udp
remote my-server-name 1194
remote-cert-tls server
resolv-retry infinite
persist-key
persist-tun
ca ca.crt
cert my-client.crt
key my-client.key
tls-auth tls-aut.key
comp-lzo
verb 3
key-direction 1
Nella stessa cartella copiare dal server i file ca.crt, my-client.crt, my-client.key e tls-auth.key
Se preferite avere la configurazione ovpn con le chiavi incorporate per gestire un file solo, allo stesso indirizzo indicato nell'altro post è disponibile un file shell script che lo genera.
Eseguire i seguenti comandi uci per impostare l'interfaccia di rete e le regole di firewalling:
uci set network.vpn0=interface
uci set network.vpn0.ifname=tap0
uci set network.vpn0.proto=none
uci set network.vpn0.auto=1
uci set network.lan.ifname="$(uci get network.lan.ifname) tap0"
uci set firewall.Allow_OpenVPN_Inbound=rule
uci set firewall.Allow_OpenVPN_Inbound.target=ACCEPT
uci set firewall.Allow_OpenVPN_Inbound.src=*
uci set firewall.Allow_OpenVPN_Inbound.proto=udp
uci set firewall.Allow_OpenVPN_Inbound.dest_port=1194
uci commit network
/etc/init.d/network reload
uci commit firewall
/etc/init.d/firewall reload
A questo punto non resta che testare la connessione per verificare che funzioni.
Con questa configurazione il client prenderà un indirizzo IP dato dal server DHCP presente nella rete a cui ci si collega.
-
Non ho ben capito, praticamente si viene a creare un indirizzo dedicato all'interno della lan e il dispositivo, a cui è associato quell'indirizzo, naviga su VPN?
-
E' una vpn normale con la differenza che non c'è routing tra il dispositivo client e la lan interna.
E' tutto nella stessa classe di indirizzi. Nel caso dei nostri router il client prende un 192.168.1.x al pari di tutti gli altri dispositivi di casa e riceve tutto il traffico broadcast.
-
Sarebbe molto valida, il problema è il mancato supporto per Android
-
Grande Roleo appena sottoscrivo na nuova vpn faccio le prove del caso! Grazie.
-
A quanto leggo su openVPN Android sembra vere delle limitazioni
https://docs.openvpn.net/connecting/connecting-to-access-server-with-android/faq-regarding-openvpn-connect-android/ (https://docs.openvpn.net/connecting/connecting-to-access-server-with-android/faq-regarding-openvpn-connect-android/)
ma qui
http://www.zeroshell.net/forum/viewtopic.php?t=5746 (http://www.zeroshell.net/forum/viewtopic.php?t=5746)
parla di una app che funziona ma è a pagamento
https://play.google.com/store/apps/details?id=it.colucciweb.openvpn (https://play.google.com/store/apps/details?id=it.colucciweb.openvpn)
e qui
https://forums.openvpn.net/viewtopic.php?t=19317 (https://forums.openvpn.net/viewtopic.php?t=19317)
dice che si tratta solamente di un problema di ricompilazione con alcune opzioni. Sembra che con il root invece dovrebbe funzionare.
-
Confermo. Bisognerebbe acquistare l'app di colucciweb e provarla.
Al momento non l'ho fatto.
Sul sito openvpn comunque è indicato chiaramente che il problema è sulle API Android e non sull'app.
Chissà se l'app colucciweb funziona...