Attenzione:
questo howto presuppone che abbiate una conoscenza di base dei sistemi informatici Linux. Non si tratterà in questo howto su come configurare un pc linux. In questa guida io farò riferimento alla distribuzione Gentoo linux per un paio di motivi . Il primo sicuramente perchè è la distribuzione che io uso correttamente su tutte le macchine che installo , la seconda che esiste un ebuild gia pronto di chillispot.
Presupposti:
- il vostro server è installato e funzionante nella configurazione base
- avete installato 3 schede di rete
- il vostro server è in grado di accedere ad internet tramite un router adsl.
Inizio:
Seguendo i presupposti sopra , le vostre schede di rete sono così determinate :
- eth0 interfaccia pubblica a cui assegnerete un indirizzo ip 192.168.0.2 netmask 255.255.255.0 default gateway 192.168.0.1 (indirizzo ip del vostro router adsl)
- eth1 interfaccia LAN con ip 192.168.1.1 netmask 255.255.255.0 alla quale andranno collegati tutti i vostri computer tramite uno switch
- eth2 interfaccia WLAN ip 192.168.2.1 netmask 255.255.255.0 alla quale andra collegato un access point qualsiasi (usati su ebay li potete trovare per una pipa di tabacco )
Firewall:
Per un corretto routing e firewalling dovremo costruire delle regole di iptables . Noi che siamo delle persone pigre e svogliate , useremo shorewall , un set di script che consente di costruire un ottimo firewall editando semplicemente dei files di configurazione.
Installiamo shorewall con
emerge shorewall .
Cominciamo ad editare i files che si trovano in
/etc/shorewall cominciamo con il file
interfaces .
editatelo in modo che assomigli a questo :
#ZONE INTERFACE BROADCAST OPTIONS
net eth0 detect routefilter,norfc1918
loc eth1 detect dhcp
air eth2 detect dhcpin questo modo definiamo la tipologia delle nostre interfacce nel nostro firewall.
Prendiamo ora in esame il file
masq e rendetelo simile a questo
#INTERFACE SUBNET ADDRESS
eth0 eth1
eth0 eth2Così facendo la nostra linuxbox farà da masquerading ai pacchetti in arrivo alla eth0 (la nostra interfaccia net ) verso eth1 e eth2 (la nostra rete privata)
il prossimo file da editare è
policy. Il file policy è importante perchè deciderà il comportamento di base del nostro firewall vediamolo
#SOURCE DEST POLICY LOG LEVEL LIMIT:BURST
loc net ACCEPT info
air net DROP
# If you want open access to the Internet from your Firewall
# remove the comment from the following line.
fw net ACCEPT
# Also If You Wish To Open Up DMZ Access To The Internet
# remove the comment from the following line.
#dmz net ACCEPT
net all REJECT info
# THE FOLLOWING POLICY MUST BE LAST
all all DROP infoAllora la prima riga ci dice che i pacchetti (tutti ) in partenza dalla rete locale alla rete internet saranno sempre accettati. La seconda riga negherà ogni traffico dalla rete wireless all rete internet (spiegherò poi perchè).La terza regola permette all'host che stiamo trasformando in un router (il PC con linux) di accedere ad internet. La quarta riga rifiuta i pacchetti provenienti dall'esterno , verso la rete locale . L'ultima regola sega tutti i pacchetti che non corrispondono alle regole precedentemente scritte.
Ancora un file da editare
zones#ZONE DISPLAY COMMENTS
net Net Internet
loc Local Local Networks
air Wireless Wireless interfacequesto è abbastanza chiaro , definiamo il nome delle zone del nostro firewall.
Bene , a questo punto il nostro firewall è pronto . Tutte le varie personalizzazioni possono essere fatte tramite il file rules dove possiamo definire quello che ci pare. Fate ripartire lo script shorewall e controllate che tutto funzioni.In specialmodo , controllate che tramite interfaccia wireless non riusciate ad accedere , ne all'internet , ne alla vostra rete locale.
Chillispot:
E' giunto il momento di installare chillispot , il pezzo di software che ci permetterà di autenticarci presso il server radius di Fon ed attivare il nostro hotspot fatto in casa.
Per prima cosa dobbiamo vedere se il nostro kernel abbia i moduli del Universal TUN/TAP . Facilmente verificabile con
modprobe tun. Se non vi dice niente il modulo viene caricato ed esiste , se vi dice FATAL: Module tun not found lo dovete compilare .
Nel caso dobbiate compilare il modulo , questo è il menu del menuconfig che dovrete attivare ( non mi adentro sulla compilazione del kernel , come avevo premesso all'inizio di questo howto)
[*] Network device support
<M> Universal TUN/TAP device driver supportA cosa ci serve questo Tunnel ? (il Caparezza a poco a che fare) A creare una vpn che chillispot userà per i suoi loschi scopi !
Una volta accertata la presenza del modulo , facciamo in modo che venga caricato ad ogni riavvio editando il file /etc/modules.autoload.d/kernel-2.6 in questo modo
nano -w /etc/modules.autoload.d/kernel-2.6
tunOra installiamo chillispot
emerge -v chillispot editiamo il file /etc/chilli.conf in questo modo
radiusserver1 213.134.45.32
radiusserver2 213.134.45.32
radiussecret garrafon
dns1 212.245.255.2
dhcpif eth2
uamallowed 192.168.182.1,212.245.255.2,www.fon.com,www.paypal.com,www.paypalobje
cts.com,www.skype.com,www.martinvarsavsky.net,213.134.45.0/24
uamserver https://login.fon.com/cp/index.php
uamsecret garrafon
radiusnasid 00-40-XX-XX-XX-XX
uamanydnsora aggiungiamo chillispot al nostro runlevel di default in modo che parta ad ogni riavvio
rc-update add chillispot default
A questo punto siamo ad un passo dal successo.
Ricordate quando nella parte firewall ho indicato questa configurazione nelle policy ?
air net DROP
E' una regola del firewall per evitare che chiunque assegni un indirizzo fisso ai dispositivi wireless possa navigare senza autorizzazione. Vogliamo che le navigazione internet avvenga unicamente tramite Tunnel e per fare questo , dobbiamo rieditare i file di configurazione del nostro shorewall.
file interfaces aggiungete alla fine questa riga :
tun tun0 detectfile masq aggiungete alla fine questa riga :
eth0 tun0file policy aggiungete all'inizio questa riga:
tun net ACCEPTfile zones aggiungete alla fine questa riga:
tun chilli ChillispotDobbiamo anche inserire alcune righe al file rules per permettere il corretto funzionamento del chillispot.
Ecco le righe da aggiungere
ACCEPT tun fw udp domain
ACCEPT net tun tcp 3990
ACCEPT tun all tcp 3990
ACCEPT all all tcp 3990
ACCEPT net tun tcp 443
ACCEPT fw tun icmp 11,8
A questo punto un reboot alla macchina , non veramente necessario , in quanto potete dare un
modprobe tun e
/etc/init.d/chillispot start e tutto dovrebbe funzionare.
Ora collegatevi con un dispositivo wireless . Dovrebbe prendere automaticamente un indirizzo ip del tipo 192.168.182.X e alla richiesta di una pagina web , dovrebbe indirizzarvi nel portale di login di fon. Inserite le vostre credenziali e registrate l'hotspot.
Credits:
Il mio post originale nel forum in inglese di
Fon HOWTO Chillispot with FreeRadius and MySQL