giovedì 17 gennaio 2008

Internet Gateway: OpenVPN & OpenWRT on Asus WL-500G Premium

Italian Introduction: a causa di pressioni esterne :) mi trovo a scrivere questa guida in inglese. E' il riassuto "senza respirare" di passaggi da compiere per avere il sistema funzionante, passo per passo, senza spiegazioni estensive ma completo (a patto di utilizzare la stessa configurazione hardware/software). Here we come!

This is a step-by-step "no breathing" (no deep explanations) guide how to setup a OpenVPN gateway using OpenWRT (Kamikaze) on Asus WL-500G Premium, to bypass proxy/nat carrier restrictions. Many parts of this guide will link you to the official OpenWRT wiki or other external web sites: there's no reason to copy&past something when someone else already did the job.

Hardware Used:

Netgear DG834G (ADSL Router)
Asus WL-500G Premium (Router - OpenVPN Server)
HTC Touch Cruise P3650 (PocketPC running Windows Mobile 6)
PC running Windows XP PRO SP2 (it is used to flash the Asus firmware and as terminal client, freely to use any other OS)

Software Used:

OpenVPN 2.09 (Kamizake ipkg package)
OpenVPN 2.09 (Windows Mobile porting)
Putty running on Windows XP (free SSH client)

IP used (these may be be adjusted to reflect your setup):

OpenVPN Server (Asus): 192.168.0.4
ADSL Router/Gateway (Netgear): 192.168.0.1
OpenVPN Client(s): 192.168.0.31-33
Carrier Proxy (Vodafone IT): 10.128.201.76:80

ADSL Router (Netgear) Setup (it's just a port forwarding and you'll not touch it anymore):

Forward the port 443 (the one we gonna use for our OpenVPN) to the OpenVPN Server (Asus) IP: 192.168.0.4
Save the setup and exit

OpenWRT installation on Asus WL-500G Premium :

The router, out of the box, comes with the IP Address of: 192.168.1.1 so you have to adjust your client PC IP to connect to it (eg: 192.168.1.2/255.255.255.0 Default Gateway: 192.168.1.1), or just use the DHCP (the Asus has it enabled by default). So connect the router directly to your client PC.
The first step is optional but i suggest you to do so, backup the original firmware of your router, instructions here (3.1):

http://wiki.openwrt.org/OpenWrtDocs/Hardware/Asus/WL500GP

then download the latest Kamikaze (be sure it is supported by your router) release to your local PC, i've used this:

http://downloads.openwrt.org/kamikaze/7.09/brcm-2.4/openwrt-brcm-2.4-squashfs.trx

put your router into update mode:

- pull out the power cord;
- press the reset button with a pen (don't get confused with the other small red button, the reset button is actually black and placed inside a hole, so you need a pen to press it) ;
- and while it is pressed plug the power cord it;
- release the button after some seconds and you'll see the power led stars flashing.

Use now the official Asus Firmware Restoration utility to flash your router (you'll find it on the CD that comes with your router). I assume you are using windows (since that utility won't work on any other OS), otherwise follow the link above and flash it using one of the other methods.
The router will reboot itself. IMPORTANT: don't turn it off while flashing or you'll brik it, if the router won't reboot itself wait AT LEAST 10 minutes before pull the power cord.

Now you are able to telnet to the router at his IP address: 192.168.1.1, the first root login will have no password, so set it:

root@OpenWrt:~# passwd mypassword

after that you'll get disconnected, because from now on you cannot use telnet anymore, you must SSH! So SSH to it back with Putty and login as "root" / "mypassword".
You are now into your new fresh router OS, so as first thing change his IP address to match your LAN subnet:

root@OpenWrt:~# uci set network.lan.ipaddr="192.168.0.4"
root@OpenWrt:~# uci set network.lan.gateway="192.168.0.1"
root@OpenWrt:~# uci set network.lan.netmask="255.255.255.0"

root@OpenWrt:~# uci commit

you will get disconnected after this, if not just reboot your router (issue the command: reboot), since you changed your router IP address and it won't be on the PC subnet anymore. Now adjust again your PC IP address (or just update the DHCP): IP: 192.168.0.3/255.255.255.0 Default Gateway: 192.168.0.1 (ADSL Router), unplug the Asus from your local PC and connect it to an ethernet port of your ADSL Router using one of his LAN ports (use one of the LAN 1-4 ports *NOT* the WAN port!), SSH back to your new router IP: 192.168.0.4. Login again as root/mypassword and check that the internet connection is working:

root@OpenWrt:~# ping www.google.com

Actually we have the WiFi disabled, i left it disabled since my ADSL Router already provides WiFi connectivity. Also the WAN interface (and the DHCP service provided) is ignored from now on, because it not used with this configuration.

Now start to install the required packages, first update the packages list:

root@OpenWrt:~# ipkg update

then (optional) install a more confortable text editor (yeah i'm not enough geek to use Vi :) ):

root@OpenWrt:~# ipkg install nano

and OpenVPN:

root@OpenWrt:~# ipkg install openvpn

Now it's time to configure everything on the server. You'll find detailed instructions here:

http://wiki.openwrt.org/OpenVPNHowTo

create your OpenVPN folder and move into it:

root@OpenWrt:~# mkdir /etc/openvpn

and create your bridge startup script:

root@OpenWrt:~# nano /etc/openvpn/startupscript

with this content:


#!/bin/sh
#/etc/openvpn/startupscript
# OpenVPN Bridge Config File
# Creates TAP devices for use by OpenVPN and bridges them into OpenWRT Bridge
# Taken from http://openvpn.net/bridge.html
# Define Bridge Interface
# Preexisting on OpenWRT
br="br-lan"
# Define list of TAP interfaces to be bridged,
# for example tap="tap0 tap1 tap2".
tap="tap0"

case "$1" in
up)
# Make sure module is loaded
insmod tun
# Build tap devices
for t in $tap; do
openvpn --mktun --dev $t
done
# Add TAP interfaces to OpenWRT bridge
for t in $tap; do
brctl addif $br $t
done
#Configure bridged interfaces
for t in $tap; do
ifconfig $t 0.0.0.0 promisc up
done
;;
down)
for t in $tap; do
ifconfig $t 0.0.0.0 down
done
for t in $tap; do
brctl delif $br $t
done
for t in $tap; do
openvpn --rmtun --dev $t
done
rmmod tun
;;
*)
echo "$0 {updown}"
;;
esac

exit and save (CTRL+X, y). Look at the label br="br-lan", this is different than the script provided at the link above and it is the bridge interface of your router. Then make it executable:

root@OpenWrt:~# chmod +x /etc/openvpn/startupscript

Now edit your OpenVPN server config file:

root@OpenWrt:~# nano /etc/openvpn/server.ovpn

with this content:

proto tcp
port 443
dev tap0
secret /etc/openvpn/secret.key
server-bridge 192.168.0.4 255.255.255.0 192.168.0.31 192.168.0.33
push "dhcp-option DNS 192.168.0.1"
keepalive 10 180
push "keepalive 10 180"
comp-lzo
max-clients 3
persist-key
persist-tun


exit and save. Now we gonna create a static key (i strongly suggest you to use proper certificates and keys later, there are detailed instruction available on the http://www.openvpn.net how to generate server certificates/keys and individual client keys), move to the openvpn folder and create it:

root@OpenWrt:~# cd /etc/openvpn
root@OpenWrt:~# openvpn --genkey --secret secret.key

We are almost done with the server, check that the configuration works:

root@OpenWrt:~# /etc/openvpn/startupscript
root@OpenWrt:~# openvpn /etc/openvpn/server.ovpn

If everything has been setup properly you will have the OpenVPN server running and waiting for a connection, otherwise it will exit with a error code (and it's time to check what's went wrong).
Now we can stop it manually with CTRL-C.

The next step is to configure the client on PocketPC, the time ncpt clint on the server and make it working h24 with (hoping) no maintanance... so stay tuned (...to be continued...).

OpenVPN su Router Asus WL-500G Premium

Installazione di OpenVPN su router Asus WL-500G Premium con firmware "OpenWRT".

Il secondo step di configurazione del progetto "Gateway Internet da cellulare" prevedeva l'utilizzo di un Router con firmware modificato (Linux) per eliminare la necessita' di dover dedicare un PC al server OpenVPN, di conseguenza tenerlo in funzione h24, con le problematiche del caso. Eccoci alla resa dei conti.

Hardware utilizzato: Router Asus WL-500-G Premium
Firmare: Linux distro Kamizaze 7.09 (http://www.openwrt.org/)

Il router in questione e' un router "puro" (privo della componente modem ADSL), quindi si appoggia (in cascata) ad un altro Modem/ADSL (nel mio caso un Netgear DG834G) connesso a internet via ADSL. L'apparecchio ha molte caratteristiche interessanti (anche senza modifcare il firmware), come la possibilita' di funzionare da archiviatore di rete (server FTP e media esterni), dispone di due porte USB (da utilizzare per chiavette USB o HD), e di un processore relativamente veloce (almeno rispetto alla concorrenza consumer) di 266Mhz. Non l'ho scelto comunque per queste funzioni, quanto piuttosto con la facilita' con la quale si puo' "flashare" (via software tramite l'uility proprietaria, quindi senza modifiche hardware) e per la piena compatibilita' con OpenWRT.

Come la precedente guida, non scendero' nei dettagli, ma illustrero' i passaggi chiave e i files di configurazione/setup utilizzati. Gli IP utilizzati saranno gli stessi della precedente configurazione (192.168.0.1 per il Router ADSL, 192.168.0.4 per il Router VPN, 192.168.0.31-33 per i client VPN).

Installazione di OpenWRT sul router

- L'installazione e' relativamente semplice, basta downloadare il firmware (Kamikaze 7.09 nel mio caso) e utilizzare l'apposita utility della Asus per il flah dell'apparecchio.
- Dopo aver fatto le dovute configurazioni: impostazione dell'IP, gateway, DNS, si passa all'installazione di OpenVPN sul dispositivo.

Installazione di OpenVPN

- OpenWRT utilizza i "ipkg" per installare nuovi "moduli", che verranno scaricati, installati e configurati (nella versione di default) automaticamente. Dalla shell del nostro router (root):


ipkg update
ipkg install openvpn


il primo comando serve per aggiornare la lista dei servizi, il secondo per installare openvpn nel sistema. Quindi creiamo la directory dove andremo ad inserire i files di configurazione di openvpn:

mkdir /etc/openvpn

- Copiamo all'interno della directory le chiavi e i certificati necessari (vedere l'altro post) e prepariamo il file di configurazione "/etc/openvpn/server.ovpn", che sara' del tutto simile a quello utilizzato sul server windows, ma con qualche piccola modifica:


proto tcp
port 443
dev tap0

ca /etc/openvpn/ca.crt
cert /etc/openvpn/server.crt
key /etc/openvpn/server.key
dh /etc7openvpn/dh1024.pem

server-bridge 192.168.0.4 255.255.255.0 192.168.0.31 192.168.0.33

push "dhcp-option DNS 192.168.0.1"

keepalive 10 180
push "keepalive 10 180"
comp-lzo

max-clients 3

persist-key
persist-tun


- Prepariamo adesso lo shell script per creare il bridge fra l'interfaccia ethernet del router e l'interfaccia virtuale di OpenVPN (e' l'operazione che sul server Windows abbiamo fatto unendo le due schede di rete e scegliendo l'opzione: "Connessioni con bridging". Creiamo il file "/etc/openvpn/startupscript":


#!/bin/sh
#/etc/openvpn/startupscript
# OpenVPN Bridge Config File
# Creates TAP devices for use by OpenVPN and bridges them into OpenWRT Bridge
# Taken from http://openvpn.net/bridge.html
# Define Bridge Interface
# Preexisting on OpenWRT

br="br-lan"

# Define list of TAP interfaces to be bridged,
# for example tap="tap0 tap1 tap2".

tap="tap0"

case "$1" in
up)
# Make sure module is loaded
insmod tun
# Build tap devices
for t in $tap; do
openvpn --mktun --dev $t
done
# Add TAP interfaces to OpenWRT bridge
for t in $tap; do
brctl addif $br $t
done
#Configure bridged interfaces
for t in $tap; do
ifconfig $t 0.0.0.0 promisc up
done
;;
down)
for t in $tap; do
ifconfig $t 0.0.0.0 down
done
for t in $tap; do
brctl delif $br $t
done
for t in $tap; do
openvpn --rmtun --dev $t
done
rmmod tun
;;
*)
echo "$0 {updown}"
;;
esac

e rendiamolo eseguibile:

chmod +x /etc/openvpn/startupscript

Non e' necessario fare alcuna modifica all'iptable o al firewall del router poiche' il router e' collegato alla LAN come un client, quindi le regole del firewall (per la WAN) non vengono prese in considerazione.

Prima di verificare che il server funzioni, e' necessario impostare l'orario e la data del router, questo e' essenziale poiche' le chiavi crittografiche hanno una data di validita', e' necessario quindi che l'orario del router sia impostato adeguatamente, e un router non ha un orologio interno, dobbiamo quindi sincronizzarlo ad ogni collegamento. Ci viene in aiuto ntp:

Impostiamo il server ntp e la timezone nella flashram del router:

nvram set ntp_server="pool.ntp.org"
nvram set time_zone="CET-1CEST-2,M3.5.0/02:00:00,M10.5.0/03:00:00 "
nvram commit


Installiamo quindi ntpclient e aggiorniamo l'orario (ai successivi riavvii o caduta/ripresa della connettivita') l'orario verra' impostato automaticamente:

ipkg install ntpclient
/usr/sbin/ntpclient -c 1 -d -s -h pool.ntp.org


Verifichiamo ora che la configurazione funzioni, avviando il bridge:

/etc/openvpn/startupscript

e poi avviando il server OpenVPN:

openvpn /etc/openvpn/server.ovpn

Proviamo a collegarci con il client e dovremmo poter navigare sia sulla rete locale che su internet, come per la precedente installazione.

Non resta ora che far eseguire il server OpenVPN al boot del router (nel caso lo spegneste, oppure andasse via la corrente):


/etc/init.d/openvpn enable

lo script installera' in "/etc/rc.d/S70openvpn" il virtual link che verra' eseguito all'avvio.

Bene, ora abbiamo il nostro gateway internet, completamente autonomo... potete spegnere il vostro PC e uscire con il vostro PPC. ;)


lunedì 14 gennaio 2008

WAP + OpenVNP + ADSL = Internet!

Guida alla creazione di un Tunnel VPN per connessioni remote firewallate/nattate aka "Come ti bypasso il proxy". Rev.c (update 17/01/2008)
by ARCTiC
-

Premessa 1: aggirare le limitazioni di una rete di terze parti potrebbe violare la policy e il TOS del gestore della rete.

Premessa 2: la seguente guida prevede una certa preparazione e conoscenza, non e’ per neofiti, le operazioni da compiere non sono complesse, ma potreste trovarvi in difficolta’ in punti poco chiari (o non spiegati affatto perche’ dati per scontati) e non poter piu’ continuare, questo potrebbe compromettere le funzionalita’ di rete del vostro PC domestico e di quello remoto (nessuna connessione a internet).

A cosa serve?
Il “tunnel” serve ad aggirare le limitazioni imposte dal service provider (rete sotto NAT, porte TCP “chiuse”), instradando il traffico internet verso un gateway esterno. Il nostro dispositivo remoto diventerà quindi un client di una rete connessa a internet tramite un indirizzo pubblico e non sara’ “filtrata”.

Come funziona?
Il tunnel si compone di due punti, il client (che e’ il dispositivo remoto, in questa guida il nostro PocketPC), ed il server (che in questa guida sara’ il nostro PC di casa/ufficio connesso a internet attraverso un router ADSL). La connessione avviene tramite OpenVPN (freeware: www.openvpn.net) in configurazione client per il telefonino, e in configurazione server-bridged per il PC fisso.


Strumenti Necessari:
- Una macchina connessa fisicamente a internet con un SO che permetta l’installazione di OpenVPN (es: Windows, Linux). In questa guida l’installazione e la configurazione avverra’ su una macchina Windows XP Professional.
- Un’altra macchina con le medesime caratteristiche che funzioni da “client”. In questa guida verra’ utilizzato un PocketPC con Windows Mobile 6 (un HTC P3650).
- Il software OpenVPN.
- Una connessione internet “non ristretta” per il server. In questa guida verra’ utilizzata una ADSL Alice 7mbit.
- Una connessione internet “ristretta” per il client. In questa guida verra’ utilizzata una connessione Vodafone Internet WAP (tariffa 9 euro).

Naturalmente gli strumenti elencati sopra sono “generici”, e’ possibile utilizzare qualsiasi connessione internet per il server, cosi’ come la guida e’ adattabile ad altri gestori mobili (con i dovuti aggiustamenti), non potendo fare al momento una guida esaustiva ho preferito concentrarmi su una configurazione in particolare. Tenendo inoltre presente che il setup richiede un minimo di conoscenza del funzionamento di una rete, confido che chi e’ interessato a questa guida sapra’ modificare le impostazioni secondo le proprie esigenze.

Come spiegato nell’introduzione: questa non e’ guida “passo-passo”, quindi non mi soffermero’ sulla spiegazione relativa all’installazione del software (in rete sono presenti numerose guide), ma passero’ direttamente alla spiegazione della configurazione della rete e di OpenVPN (che si finalizzera’ nella preparazione dei files di configurazione).

IP e subnet utilizzate (gli IP e le subnet sono ovviamente quelle della mia rete, vanno quindi adattate alla vostra):

IP pubblico del server: myip.dyndns.org (e’ indispensabile utilizzare un servizio di pubblicazione IP se l’IP, come nella maggior parte dei casi, non e’ statico; vi rimando a
www.dyndns.org per la relativa configurazione)
IP fisico del router/gateway sulla rete domestica: 192.168.0.1
IP fisico del server: 192.168.0.3 (dopo il bridging, vedere dopo)
IP fisico del client remoto: 192.168.0.31 (notare che e’ sulla stessa sottorete)

Installazione e Configurazione:

- Installiamo OpenVPN sul server;

Al termine dell’installazione verra’ creata una scheda di rete “virtuale” (TAP), rinominiamola “OpenVPN” per comodita’. Selezioniamola insieme alla scheda di rete fisica del nostro PC (selezionandole entrambe con il mouse oppure aggiungendole tenendo tenuto il tasto CTRL), con entrambe le schede di rete selezionate, scegliamo dal menu (tasto destro) > “Connessioni con bridging”. Verra’ creato un nuovo adattatore. A questo punto il bridge diverra’ l’unico componente controllabile della rete, assegnamo allo stesso (tasto destor > proprieta’ > Protocollo TCP/IP) un ip statico (in questa guida 192.168.0.4) con subnet mask 255.255.255.0, default gateway (nel mio caso il router: 192.168.0.1) e DNS (nel mio caso uso il router come server DNS, quindi sempre: 192.168.0.1).

- Creiamo le chiavi necessarie per la rete VPN. Questo passaggio non e’ essenziale ma altamente raccomandabile! Inoltre questa guida fa utilizzo delle chiavi, quindi nel caso non le si voglia utilizzare, i files di configurazione vanno opportunamente modificati. Per la creazione vi rimando alla guida ufficiale di OpenVPN, gli strumenti per la loro creazione si trovano nella cartella “easy-rsa” di OpenVPN (dopo l’installazione). Alla fine avremo 7 files (tra certificati e chiavi), che io ho rinominato in questo modo:

ca.crt
ta.key
server.crt
server.key
client.crt
client.key
dh1024.pem


copiamoli nella directory “config” di OpenVPN sul server.

- Installiamo OpenVPN sul client;

Al termine nell’installazione (come abbiamo fatto precedentemente per il bridge) assegniamo alla scheda di rete virtuale appena creata (in Windows Mobile 6: Start > Impostazioni > Connessioni > WiFi > Schede di Rete > TAP1:) un IP statico (nel mio caso: 192.168.0.31 subnet 255.255.255.0) e il server DNS (nel mio caso il router della rete remota: 192.168.0.1). Attenzione l’IP deve appartenere alla stessa sottorete della rete remota.

- Copiamo nella anche nella directory “config” del client i certificati e le chiavi precedentemente creati: ca.crt, ca.key, client.crt, client.key, ta.key.

Andiamo ora a creare i files di configurazione OpenVPN per il server (server.ovpn) e per il client (client.ovpn). Ho preferito inserirli in questa guida “vicini” in modo che siano immediatamente confrontabili.
Nella directory “config” del server, creiamo il file server.ovpn con il seguente contenuto:

proto tcp
port 443
dev tap
dev-node OpenVPN # e’ il nome del TAP *non del bridge!*

ca ca.crt
cert server.crt
key server.key
dh dh1024.pem
#tls-auth ta.key 0 # remmata, sembra dare problemi su PocketPC

ifconfig-pool-persist ipp.txt

server-bridge 192.168.0.4 255.255.255.0
192.168.0.31 192.168.0.41

push "dhcp-option DNS 192.168.0.1"

keepalive 10 120

comp-lzo
cipher AES-256-CBC

max-clients 10

persist-key
persist-tun

#status openvpn-status.log # solo per debug
#verb 3 # solo per debug


Nella direttiva “server-bridge”, alla fine, sono indicati gli IP dei client remoti che verranno instradati verso il server.
La direttiva “port” (all’inizio) si riferisce ovviamente alla porta in ascolto del server. Perche’ ho scelto la porta 443? Perche’ e’ la porta del servizio “HTTPS”, una delle poche porte (insieme alla porta 80) aperte in genere sulle connessioni “limitate”, come su “Vodafone Internet” (WAP).

Nella directory “config” del client, creiamo il file client.ovpn con il seguente contenuto:

client
dev tap
proto tcp

remote myip.dyndns.org 443

resolv-retry infinite

nobind

persist-key
persist-tun

ca "\\Scheda di memoria\\Programmi\\OpenVPN\\config\\ca.crt"
cert "\\Scheda di memoria\\Programmi\\OpenVPN\\config\\client.crt"
key "
\\Scheda di memoria\\Programmi\\OpenVPN\\config\\client.key"
# tls-auth "\\Scheda di memoria\\Programmi\\OpenVPN\\config\\ta.key" 1

cipher AES-256-CBC

comp-lzo

#verb 3 # solo per debug

http-proxy-retry 1
http-proxy
10.128.201.76 80


La direttiva “remote” si riferisce all’indirizzo del server remoto e alla porta (l’host name del server verra’ correttamente “risolto” dalla connessione originale dal proprio server DNS, prima che il client si colleghi alla VPN e cominci l’instradamento del traffico). Il path dei certificati “ca”, “cert”, “key”, “tls-auth” dipende ovviamente dal path nel quale avete installato OpenVPN sulla macchina remota (nel mio caso punta alla scheda di memoria del mio PocketPC) e deve essere il path completo, poiche’ il file di configurazione verra’ eseguito dalla GUI esterna.
Le ultime due righe si riferiscono al server proxy sul quale verra’ instradato il traffico per uscire su internet, in questo esempio e’ il server proxy di Vodafone nel formato IP PORTA. Anche la connessione verso il nostro server sulla porta 443 passera’, com’e’ ovvio, attraverso questo proxy. Per connessioni meno limitative (es: solo porte chiuse ma nessun proxy, queste direttive vanno naturalmente rimosse).

Configurazioni finali server: la porta 443 va forwardata verso la macchina dove e’ in esecuzione il server OpenVPN (in questa guida: 192.168.0.4). Va configurato opportunamente il firewall sulla macchina, se presente.

Configurazioni finali client: va configurato il firewall sul sistema. In questa guida (relativa a PocketPC e provider Vodafone) va configurata la connessione: Start > Impostazioni > Connessioni > Connessioni > Avanzate > “Seleziona Reti”, impostate entrambi i parametri a: “Rete Ufficio”. Come modem ovviamente utilizzate l’apn “wap.omnitel.it” e non “web.omnitel.it”!!!
IMPORTANTE: Va impostato inoltre manualmente l'IP della scheda virtuale "TAP:" (Start > Impostazioni > Connessioni > WiFi > Schede di Rete > "TAP1:"), in questa guida: 192.168.0.31 e default gateway del router remoto: 192.168.0.1 e DNS server remoto: 192.168.0.1.

Lanciamo (finalmente!) il server OpenVPN (tasto destro su “server.ovpn” > “Start OpenVPN on this config file”, se tutto e’ andato bene dovrebbe mettersi in ascolto in circa 10 secondi.
Lanciamo il client OpenVPN (tasto destro su “client.ovpn” > “Start OpenVPN on this config file”), che dovrebbe collegarsi al server ed essere proiettato nella rete locale remota. Nota per PocketPC: all’installazione di OpenVPN vi apparira’ l’icona di un PC in basso a destra, assegnare al connection manager la connessione da utilizzare: tap sull’icona > utils > Settings > Settings 2 > “Rete Ufficio” (Exclusive), potete utilizzare la stessa icona per lanciare il client: tap icona > start from config > client. In questo modo la connessione GPRS WAP dovrebbe partire automaticamente quando OpenVPN tentera’ di collegarsi alla rete remota. Potete disabilitare dalla configurazione “Try to ping servers on connect” poiche’ non avete alcun modo di pingare il vostro server prima di esservi connessi.

Se tutto e’ andato secondo piani (fortunati voi che avete almeno questa guida, che “sicuramente funziona”, io non dormo da tre giorni per fare i test) adesso il vostro client e’ connesso alla rete remota e tutto il traffico e’ instradato attraverso di essa (qualsiasi cosa, anche le richieste DNS), il vostro client quindi uscira’ su internet con l’IP pubblico dell’ADSL e avra’ piena funzionalita’ di tutti gli applicativi di rete (web, email, voip, videoconferenza, remote desktop e quant’altro) il tutto facendo passare il traffico attraverso una singola porta (le porte locali vengono smistate correttamente all’uscita del tunnel, e vengono ricreate di nuovo al “ritorno”). E’ da tenere presente che avrete anche pieno accesso alla vostra rete domestica, quindi potrete “navigare” sul vostro PC locale (vedere film in streaming, ascoltare musica, collegarvi alle camere di videosorveglianza domestica, ecc.).

TODO: rendere questa guida piu’ esaustiva, scendendo nei dettagli della configurazione, per il momento non ho tempo (se qualcuno volesse prendersi la briga di renderla piu’ compresibile, gliene sarei grato). Rendere la configurazione piu’ snella: utilizzo del tunnelling con table routing creato dinamicamente tramite direttive OpenVPN. Il vantaggio sarebbe di non dover effettuare un bridge “fisico” delle schede di rete sul server, senza quindi compromettere l’architettura della rete domestica.


STEP2: installazione del server su router dedicato (OpenWRC) in modo da non doversi preoccupare di avere un PC "always on" che faccia da server. Consultabile a questo link: "Installazione OpenVPN su Router Asus WL-500G"