How to crack wep: aircrack-ptw and aircrack-ng with la Fonera
In rete ci sono miliardi di tutorial che...Leggi tutto
In questi giorni ho constatato di persona che fastweb con contratto residenziale blocca le connessioni VPN che partono da pc client dietro fastweb e vanno verso server con ip pubblici in rete. Nel mio caso specifico ho provato a collegare il mio pc casalingo ad un server (il mio vps su internet) con ip pubblico, succede questo: il collegamento vpn viene stabilito, i due pc si vedono e si pingano ma ogni tipo di trasmissione viene filtrata e bloccata.
Tutto quello che non è protocollo icmp (Ping) viene bloccato da fastweb.
Ovviamente il mio pc di casa che stà dietro nat è il client che si collega al server con ip pubblico, con fastweb è impossibile fare il contrario perchè se si è dietro fastweb non si ha un ip pubblico.
Questa cosa ovviamente non succede se si utilizza un contratto fastweb di tipo commerciale, ho provato di persona con una connessione con contratto commerciale fila tutto liscio. A quanto pare fastweb blocca le vpn solo con i contratti residenziali. E’ veramente una politica assurda, quando compro una connessione ad internet avrò pure il diritto di fare quello che voglio o no? devo essere io a decidere come consumare la mia banda e non ci devono essere vincoli assurdi come quello di impedire il collegamento vpn fra più macchine…
Ero quasi sul punto di cambiare gestore di adsl poi ho indagato un po in rete ed ho trovato la soluzione. Attualmente è possibile creare ed utilizzare connessioni vpn con fastweb utilizzando un tunnel SSH.
Se la connessione vpn passa attraverso un tunnel SSH fastweb non è in grado di bloccarla e di filtrarla.
La VPN con il tunnelling SSH è abbastanza semplice da realizzare, ecco le istruzioni per creare una vpn con tunnell SSH con Linux debian lenny e openvpn.
Questo esempio è molto semplice e non prevede particolari protocolli di sicurezza perchè tanto passa tutto via ssh.
Partiamo con la macchina server, ovviamente questo pc deve avere un ip pubblico in modo che il client che sta dietro rete fastweb posso contattarlo senza problemi.
Ecco i comandi da dare:
1 – Abilitare il forwarding.
echo 1 > /proc/sys/net/ipv4/ip_forward
2 – Installare il sopftware OpenVPN.
apt-get install openvpn
3 – Generazione della chiave che deve essere copiata poi sul pc client.
cd /etc/openvpn
openvpn –genkey –secret zmo.key
4 – Creazione del file di configurazione server.conf
vi /etc/openvpn/server.conf
Ecco il contenuto del file server.conf:
proto tcp-server
dev tap
lport 5000
ifconfig 10.0.0.1 255.255.255.0
secret /etc/openvpn/zmo.key
persist-tun
ping 15
5 – Dopo aver salvato riavviate il servizio Openvpn
/etc/init.d/openvpn restart
6 – Assicuratevi di aver installato il servizio ssh server, se non è installato digitate:
apt-get install ssh openssh-server
Ora il server rimmarà in ascolto sulla porta 5000 all’interfaccia di rete virtuale verrò assegnato l’indirizzo ip 10.0.0.1
Le ultime due righe persist-tun e ping 15 servono per tenere in piedi la connessione anche se non passa traffico.
Ovviamente tutto questo giro è possibile solo se il vostro kernel permette il caricamento del modulo tun, di default il kernel dell’installazione standard di debian lenny lo supporta.
Passiamo ora alla macchina client.
1 – Abilitare il forwarding.
echo 1 > /proc/sys/net/ipv4/ip_forward
2 – Installare il sopftware OpenVPN.
apt-get install openvpn
3 – Installare ssh e anche openssh server
apt-get install ssh openssh-server
4 – Copiare il file zmo.key generato sulla macchina server sul pc client nel percorso /etc/openvpn
Per fare questa operazione potete utilizzare Winscp che tramite ssh vi permette di esplorare e copiare tutti i file presenti nel server.
5 – Creare il file di configurazione client.conf
vi /etc/openvpn/client.conf
Ecco il contenuto del file client.conf:
remote localhost
proto tcp-client
dev tap
rport 5000
ifconfig 10.0.0.2 255.255.255.0
secret /etc/openvpn/zmo.key
persist-tun
ping 15
Come potete vedere il contenuto è analogo a quello del server, viene utilizzata la porta 5000 e all’interfaccia di rete viene assegnato l’indirizzo 10.0.0.2.
Da notare invece che l’indirizzo del server remoto è localhost, questo perchè verrà utilizzato il tunnell ssh.
6 – Dopo aver salvato stoppiamo il servizio openvpn
/etc/init.d/openvpn stop
7 – Creiamo il tunnell ssh con il seguente comando:
ssh -L5000:ip_server_remoto:5000 root@ip_server_remoto
Dove ovviamente al posto di ip_server_remoto dovete inserire l’ip del server che avete configurato prima.
Questo comando aprirà una connessione ssh e dopo aver inserito la password vi rimanderà direttamente alla consolle della macchina server. E’importante che lasciate questa connessione attiva, nel momento in cui viene chiusa cade anche il tunnell ssh.
8 – Quindi aprite un’altra shell o un’altra connessione remota sulla macchina e lanciate il servizio openvpn sul client.
/etc/init.d/openvpn start
A questo punto se tutto è andato per il verso giusto la vpn sarà attiva e funzionante e due macchine remote, una client dietro rete fastweb con contratto residenziale ed una server con ip pubblico potranno comunicare e trasferire dati senza nessun problema.
Se volete eliminare il problema di tenere aperta la consolle dove è stato digitato il comando per il tunnell ssh potete provare con queste opzioni -f -N
Esempio:
ssh -f -N -L5000:ip_server_remoto:5000 root@ip_server_remoto
con questo comando il servizio và in background dopo aver chiesto la password.
Ulteriori informazioni ed esempi sul suo utilizzo li potete trovare a questo link:
http://www.compago.it/index.php/manuali/34-linux/166-connessioni-tunnel-con-ssh
Questo link invece mi è stato particolarmente utile per l’installazione di openvpn su debian lenny,trovate anche info dettagliate per utilizzare connessioni con configurazione SSL/TLS:
http://guide.debianizzati.org/index.php/Openvpn
Se avete precisazioni o dubbi o suggerimenti di ogni tipo fatelo tramite i commenti,l’argomento vpn è sempre molto interessante perchè permette di realizzare reti virtuali anche con macchine dislocate in parti diverse del globo.
Vota l'articolo
Ti è piaciuto questo articolo? allora iscrivi alla newsletter, riceverai ogni nuovo post via mail!
Loading...Se preferiferisci i feed ricordati di iscriverti ai miei Feed! 
Ciao,
io ho lo stesso identico problema (Fastweb contratto residenziale e utilizzo VPN per connettermi a ufficio), ma sono un umile utilizzatore di windows XP. Inoltre, la VPN ogni tanto funziona, ogni tanto no (più spesso no, che si) senza una apparente logica…
Esiste un modo di fare quello che hai fatto con linux anche con windows XP? Grazie.
Massimo
Ciao e complimenti per i tuoi tutorial sempre utilissimi.
Avendo il tuo stesso problema con fastweb, ho messo in pratica il tuo tutorial, ma ho un problema. Non avendo il server VPN sempre online (il server è il mio portatile), come faccio a far partire il tunnel ssh? Ho provato a passare la stringa di avvio del tunnel a crontab per far avviare il tunnel a determinati orari, ma non sembra funzionare. Ma anche se avessi un server sempre online dietro ADSL residenziale, come risolvere il problema dell’ip dinamico?
Ciao Paolo
P.S. Buon ferragosto
Ciao, se hai l’ip dinamico,magari dietro un modem adsl, devi prima impostare la redirection sul modem in modo da da redirigere le connessioni entranti sul tuo pc interno e poi ovviamente devi conoscere l’ip dinamico..
Le configurazioni della redirection cambiano da modem a modem, per conoscere l’ip dinamico puoi impostare qualche script che ti invii il dato via mail.. cmq l’argomento è interessante mi sà che nei prossimi giorni scrivo due righe in proposito.. ciaoo
Ciao Crocco
Grazie per la risposta, ma dopo 1 giorno di sbattimento su google ho risolto. In pratica volendo utilizzare crontab per avviare il tunnel ssh, e non potendo inserire la password, avevo autorizzato l’utente che si sarebbe loggato sul server con ssh, ad eseguire il login mediante public key, ma essendo crontab un servizio del super utente, dovevo autorizzare anche l’utente root all’utilizzo delle public key. Fatto ciò è andato tutto a posto e praticamente ad ogni ora, crontab lancia il tunnel e cerca di raggiungere il mio no-ip. Se sono online stabilisce la connessione e quindi posso raggiungere la mia rete, altrimenti ritenterà ad oltranza a distanza 1 ora. In questo modo ho risolto anche il problema dell’ip dinamico
Grazie ancora e continua ad illuminarci con gli articoli del tuo blog.
Ciao Paolo
Grazie per questa guida: molto utile.
Avendo però il server remoto sotto un router, che mi forwarda solo la porta 22 e la 5000, ho dovuto modificare:
ssh -L5000:ip_server_remoto:5000 root@ip_server_remoto
in:
ssh -L5000:localhost:5000 root@ip_server_remoto
ed ora funziona tutto perfettamente.