SERVER “Bridging Mode”
Diamo uno sguardo al file /etc/openvpn/server.conf
mode server proto udp port 1194 dev tap0 client-to-client client-config-dir ccd tls-server tls-auth ta.key 0 ca ca.crt cert server.crt key server.key dh dh1024.pem crl-verify crl.pem keepalive 10 120 daemon comp-lzo user nobody group nogroup persist-key persist-tun status /var/log/openvpn/openvpn-status.log log /var/log/openvpn/openvpn.log verb 3 mute 20 script-security 3 system cipher AES-256-CBC auth sha256 push "route 10.105.2.0 255.255.255.0 10.105.1.150" push "route-delay 5 600"
Le due direttive push in fondo al file avranno maggior senso alla fine di tutto. Serviranno a coloro che si collegano alla VPN di installare correttamente il traffico verso gli IP della subnet “mobile”.
Nel file sono presenti le direttive sui certificati che andranno creati prima di avviare il server e che saranno necessari anche per la creazione delle chiavi per i client.
Procediamo alla creazione dei certificati necessari. Segue uno spaccato di comandi che potranno servire allo scopo.
cp -r /usr/share/easy-rsa/ /etc/openvpn mkdir -pv /etc/openvpn/easy-rsa/keys sed -ie 's/KEY_NAME="EasyRSA"/KEY_NAME="MyVPN"/' /etc/openvpn/easy-rsa/vars openssl dhparam -out /etc/openvpn/dh1024.pem 1024 cd /etc/openvpn/easy-rsa && . ./vars # Optionally set indentity information for certificates: # export KEY_COUNTRY="<%COUNTRY%>" # 2-char country code # export KEY_PROVINCE="<%PROVINCE%>" # 2-char state/province code # export KEY_CITY="<%CITY%>" # City name # export KEY_ORG="<%ORG%>" # Org/company name # export KEY_EMAIL="<%EMAIL%>" # Email address # export KEY_OU="<%ORG_UNIT%>" # Orgizational unit / department cd /etc/openvpn/easy-rsa && ./clean-all cd /etc/openvpn/easy-rsa && ./build-ca --batch cd /etc/openvpn/easy-rsa && ./build-key-server --batch server cp /etc/openvpn/easy-rsa/keys/server.crt /etc/openvpn cp /etc/openvpn/easy-rsa/keys/server.key /etc/openvpn cp /etc/openvpn/easy-rsa/keys/ca.crt /etc/openvpn cp /etc/openvpn/easy-rsa/keys/crl.pem /etc/openvpn cd /etc/openvpn/ && openvpn --genkey --secret ta.key
SERVER “Routing Mode”
Se tutto è andato bene, tirare sul la seconda istanza che si occuperà di permettere ai dispositivi mobile di collegarsi sarà semplicissima. Segue un spaccato del file server_mobile.conf
proto tcp-server port 1194 dev tun0 tcp-nodelay tls-server tls-auth ta.key 0 ca ca.crt cert server.crt key server.key dh dh1024.pem crl-verify crl.pem user nobody group nogroup persist-key persist-tun cipher BF-CBC auth SHA1 comp-lzo script-security 3 system keepalive 30 120 status /var/log/openvpn/openvpn-statusmobile.log log /var/log/openvpn/openvpn-mobile.log verb 3 client-config-dir ccd mode server topology "subnet" push "topology subnet" server 10.105.2.0 255.255.255.0 push "route-delay 5 600" route 10.105.2.0 255.255.255.0 ifconfig-pool-persist ipp_mobile.txt push "route 10.105.1.0 255.255.255.0" client-to-client client-connect "/etc/openvpn/connect" client-disconnect "/etc/openvpn/disconnect" up "/etc/openvpn/up_mob.sh" #push "redirect-gateway def1 bypass-dhcp" #push "dhcp-option DNS 8.8.8.8" #push "dhcp-option DNS 8.8.4.4"
Le ultime righe che seguono potrebbe servirvi qualora desideriate fare in modo che tutto il traffico internet dei dispositivi mobili passi attraverso la VPN. Preferisco sinceramente scegliere a livello di client se e quando usufruire del beneficio. Del resto la VPN è vostra è la usate come vi aggrada. Non posso qui assolutamente suggerire i benefici di usare una VPN che redirige interamente il traffico attraverso il server VPN. Basti pensare a quali benefici si potrebbero sfruttare quando siete all’estero e il vostro server è in Italia a casa vostra…
È arrivato il momento di riavviare openvpn verificando l’assenza di eventuali errori.
systemctl restart openvpn