Qui spiegheremo come configurare un tunnel vpn verso RiseUp su OpenWRT come descritto in queste slide: http://wiki.ninux.org/Presentazioni?action=AttachFile&do=get&target=VPN+RiseUp.odp
Partiamo da un router OpenWRT già configurato con olsr funzionante. Il router suddetto ha come default gateway assegnato una router connesso a internet e il traffico proveniente dall'hotspot deve transitare per forza attraverso il nostro router per poter uscire su internet (annunciamo la 0.0.0.0/0 fra le hna del router OpenWRT).
Iniziamo preparando il router OpenWRT installando i pacchetti necessari:
iptables (solitamente già installato) openvpn
Accediamo alla shell SSH del nostro router e diamo i seguenti comandi:
opkg update opkg install openvpn
A questo punto scarichiamo il file http://wiki.ninux.org/RiseUp_VPN?action=AttachFile&do=get&target=openvpn.zip All'interno troveremo:
riseup.ovpn (file di configurazione per openvpn specifico per riseup) riseup_auth.txt (contiene nostro nome utente, password o secret per VPN RiseUP) RiseupCA.pem (certificato vpn riseup) ruvpnrouteadd.sh (piccolo script che viene lanciato alla fine dell'avvio di openvpn ed abilita il traffico internet a passare per riseup)
Questi file devono essere copiati nella cartella /etc/openvpn/ del nostro router, l'unica modifica che dovremo fare e sostituire all'interno di riseup_auth.txt i valori username e password/secret con quelli forniti da RiseUP.
A questo punto andiamo nel nostro file di configurazione di olsr, solitamente si può trovare in /etc/config/olsrd. Dovremo aggiungere o sostituire (nel caso fossero già presenti) le seguenti 2 righe sotto option Ipversion nel file di configurazione:
option IpVersion '4' option 'RtTable' '222' option 'RtTableDefault' '223'
Fino a questo punto tutte le modifiche fatte sono comuni per la maggior parte degli scenari possibili, adesso vedremo come creare la configurazione specifica per i vari casi.
Supponiamo che la subnet assegnata alla radio del nostro Hotspot sia la 10.135.3.0/24
Il nostro default Gateway è il 10.135.2.1
Con la precedenti configurazioni abbiamo specificato:
le rotte interne a Ninux verranno inserite nella tabella 222
la default fornita da olsr sarà inserita nella tabella 223
la default fornita dal tunnel VPN verso RiseUP sarà inserita enlla tabella 235
modifichiamo il file /etc/rc.local del nostro router in questo modo:
eliminiamo l'ultima riga in cui è presente
exit 0
aggiungiamo subito dopo i seguenti comandi:
openvpn /etc/openvpn/riseup.ovpn > /dev/null 2>&1 & # tables: # 222 -> olsr # 223 -> olsr default # 235 -> vpn sleep 5 ip route add blackhole 10.0.0.0/8 ip route add blackhole 172.16.0.0/12 ip route add blackhole 192.168.0.0/16 ip route add blackhole 176.62.53.0/24 ip route add 198.252.153.26 via 10.135.2.1 dev eth0 #openvpn riseup ip rule add from all lookup 222 pref 1000 #ninux network ip rule add from 10.135.3.0/24 lookup 234 pref 2000 #hotspot subnet to ninux ip rule add from 10.135.3.0/24 lookup 235 pref 2500 #hotspot subnet to the Inter iptables -A POSTROUTING -t nat -o tun0 -j MASQUERADE exit 0
Modifichiamo indirizzo del nostro default gateway e della subnet dell'hotspot al file rc.local con quelli del nostro caso specifico. Salviamo. Riavviate il router.
Se abbiamo configurato tutto correttamente il traffico proveniente dall'hotspot verrà reindirizzato verso RiseUP. Enjoy!
Ringrazio Clauz per il supporto nella configurazione.