IP Pubblico a 4 euro... al mese!
Il problemaSe siete utenti Fastweb, probabilmente saprete che alle connessioni residenziali Fastweb viene fornito un lotto di 3 (ADSL) o 5 (fibra ottica)
IPwiki. Tuttavia l'IP concesso da Fastweb è un
indirizzo IP privatowiki e non un
indirizzo IP pubblicowiki come invece avviene solitamente con le altre connessioni ad Internet.
Riguardo alle conseguenze che comporta questa politica, vi rimando a
questo threadFastweb offre la possibilità di ottenere un IP pubblico, tuttavia i costi sono spropositati: 0,50€/ora per IP Pubblico a consumo o 4€/giorno.
Sottoscrivendo l'opzione Giorno e Notte o l'abbonamento Internet senza limiti dal 1° ottobre 2002, 20 ore al mese di IP Pubblico a consumo sono incluse nell'importo mensile.
Ma se non bastassero? se si volesse raggiungere il proprio PC dalla rete esterna in qualsiasi momento e in qualsiasi luogo?
Come spiegato anche nell'thread linkato precedentemente, si può utilizzare Hamachi che crea una rete privata virtuale (
VPNwiki,
Virtual
Private
Network) sfruttando tecniche di UDP hole punching. Tuttavia il grosso limite di questa soluzione è che chiunque voglia raggiungere il PC situato nella rete Fastweb deve installare e configurare il client di Hamachi.
Non è quindi una soluzione adatta ad un utilizzo pubblico, quando, per esempio, si ha la necessità di far accedere al PC più utenti.
Perchè invece non appoggiarsi ad un server esterno dotato di IP Pubblico, sfruttando poi una VPN fra questo e il PC nella rete Fastweb?
L'ideaQuindi la soluzione proposta sta nel configurare un server esterno dotato di IP Pubblico in modo che dialoghi attraverso una VPN con il PC situato all'interno della rete Fastweb e successivamente impostare adeguate regole al gestore di pacchetti affinché le richieste vengano inoltrate correttamente.
Ok, ma dove lo trovo un server con IP Pubblico?
- se un amico/parente ha una connessione ad Internet con IP Pubblico è possibile utilizzarla per i nostri scopi
- se non si ha questa possibilità, online esistono migliaia di offerte di server, tuttavia spesso il costo è proibitivo; recentemente però nel mercato nell'hosting una nuova categoria di offerte ha fatto la sua apparizione: i
VPSwiki (
Virtual
Private
Server)
Il VPS è un modo di dividere un server fisico in più computer indipendenti tra loro. Il prezzo varia dal servizio offerto (banda, prestazioni, garanzie etc...).
Tuttavia si possono trovare VPS lowcost a prezzi davvero irrisori se paragonati al servizio di IP Pubblico offerto da Fastweb.
Un esempio sono le offerte di
vps4less.de che propongono VPS a partire da
3.99€ al mese!Come si può leggere, i sistemi operativi supportati sono basati su kernel
Linuxwiki, il cui utilizzo, almeno a livello base, è un requisito
necessario.
La praticaNella pratica i passi da seguire sono:
- procurarsi un server (dedicato o virtuale) con IP Pubblico
- installare e configurare una VPN
- impostare il gestore di pacchetti
Analizziamo gli ultimi 2 punti, avendo già trattato il primo e lasciando all'utente la scelta di come procedere. C'è solo da specificare che non tutti i VPS vanno bene, poichè dipende dal livello di virtualizzazione e dai moduli supportati nel kernel. La cosa migliore è chiedere direttamente allo staff se siano supportate le caratteristiche di cui abbiamo bisogno.
Nel caso venga richiesto un dominio, è possibile, se non se ne possiede già uno, registralo gratuitamente con servizi tipo
www.dyndns.com
VPNPer creare una VPN su Linux suggerisco 2 modi
- installare
HamachiwikiNon è eccessivamente difficile e consiglio la lettura di questa guida:
HOWTO: Hamachi Linux Guide (2.4.x and 2.6.x) (in inglese)
- installare
OpenVPNwikiUna guida alla configurazione è disponibile qua:
OpenVPN (in italiano)
Gestore di pacchetti, ovvero Netfilterwiki, alias IPtablesImpostare la VPN non è sufficiente in quanto bisogna anche fare in modo che i pacchetti vengano correttamente instradati
Bisogna quindi configurare il packet filter di Linux, ovvero IPtables
Regole:
per abilitare il forwardecho 1 > /proc/sys/net/ipv4/ip_forward
per impostare il redirectiptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -t nat -A PREROUTING -i eth0 -j DNAT --to-destination <ip>
dove al posto di
<ip> ci va l'IP della VPN del PC Fastweb
La seconda regola è quella che effettivamente reinoltra le richieste fatte al server con IP Pubblico verso il PC situato nella rete Fastweb.
La regola così creata è generica e redirige tutto, ma è possibile specificare regole più particolari, ad esempio
iptables -t nat -A PREROUTING -p tcp --dport www -j DNAT --to-destination <ip>
che redirige solo il traffico tcp relativo alla porta web (poichè ad esempio si vuole pubblicare sul web un proprio server web altrimenti inacessibile)
Le regole vanno impostate ad ogni avvio del sistema o alternativamente si può creare uno script che le esegua al boot
Un esempio:
#!/bin/sh
#=============================================================================
IP="/sbin/iptables"
FASTWEB=""
case $1 in
#=============================================================================
start)
#=============================================================================
echo 'Reset filter table'
$IP -F
$IP -X
$IP -Z
echo 'Reset nat table'
$IP -t nat -F
#=============================================================================
echo 'Set default policy'
$IP -P INPUT ACCEPT
$IP -P OUTPUT ACCEPT
$IP -P FORWARD ACCEPT
$IP -t nat -P PREROUTING ACCEPT
$IP -t nat -P POSTROUTING ACCEPT
#=============================================================================
echo 'Set kernel variables'
echo 1 > /proc/sys/net/ipv4/ip_forward
#=============================================================================
echo 'Set Masquerading'
$IP -t nat -A POSTROUTING -o eth0 -j MASQUERADE
$IP -t nat -A PREROUTING -i eth0 -j DNAT --to-destination $FASTWEB
;;
#=============================================================================
stop)
#echo 'Reset filter table'
$IP -F
$IP -X
$IP -Z
#echo 'Reset nat table'
$IP -t nat -F
;;
#=============================================================================
esac
exit 0
N.B: in
FASTWEB="" va inserito l'IP della VPN del PC Fastweb
Lo script va messo (se si usa Debian) in
/etc/init.d/ e reso avviabile con
chmod +x nomescriptper avviarlo
invoke-rc.d nomescript start
per stopparlo
invoke-rc.d nomescript stop
per fare in modo che si carichi all'avvio
update-rc.d nomescript defaults
Altre configurazioni sono ovviamente possibili ed è anche possibile condividere la propria VPN con altri utenti.
Work in progess