Commentare: 12:32 domenica, aprile 15 2007
Per il completamento dell'hotspot sono necessari dei servizi "di contorno", fondamentali per la migliore gestione degli accessi:
- FreeRadius: Servizio fondamentale perche' viene usato come database delle credenziali di tutti gli utenti.
- Apache: Attraverso apache sara' possibile accedere alla pagina di autenticazione dell'hotspot
- Squid Proxy: viene usato per fare la registrazione delle pagine web visitate dagli utenti (per aderire al DECRETO-LEGGE 27 luglio 2005, n.144 "Misure urgenti per il contrasto del terrorismo internazionale", articolo 6)
Ah, non dimentichiamo la configurazione di iptables, fondamentale per far funzionare tutto.
Freeradius
Fortunatamente la configurazione di freeradius e' veramente minima. In primis dobbiamo modificare il file /etc/freeradius/clients.conf in modo da avere una parte come questa:
client 127.0.0.1 {
secret = theradiussecret
shortname = localhost
nastype = other
}
ovviamente potete modificare sia l'ip del client (nel nostro caso a scuola sara' anche 172.16.200.157, l'ip del server chillispot).
Salviamo e riavviamo il servizio
Apache
Apache ha bisogno di una configurazione veramente minima: basta creare un virtualhost con SSL e riavviare. Mi raccomando: obbligatoriamente SSL altrimenti il login manager non funzionera' (e ha ragione).
Squid Proxy
Squid richiede un po' di piu' di conoscenze del servizio. Faccio notare che non e' fondamentale per il funzionamento di tutto, pero' e' richiesto per legge se l'hotspot e' pubblico.
Il file interessato alla modifica e' /etc/squid/squid.conf, l'unico file di configurazione del servizio.
Prima di tutto e' necessaria la configurazione come transparent proxy e bisogna agganciarlo solo all'ip di eth1:
http_port 192.168.10.73:3128 transparent
Poi e' necessario definire una ACL per fare in modo che sia possibile utilizzare il proxy da un certo ip. Nel nostro caso l'ip sara' quello di eth1, poiche' con le regole di nat del firewall per obbligare il passaggio per il proxy, dobbiamo alterare l'ip di provenienza dei pacchetti con DNAT (Destination Network Addres Translation).
La acl e' la seguente:
acl localmachine src 192.168.10.73
http_access allow localmachine
In fine, per far funzionare correttamente il transparent proxy (ho incontrato dei problemi nell'utilizzo del caching) aggiungiamo questa riga:
always_direct allow localmachine
Salviamo il file e riavviamo il proxy.
IpTables
Le regole di iptables per far funzionare tutto sono 4, piu' una modifica del sistema con sysctl per abilitare il forwarding dei pacchetti.
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.10.0/24
-j MASQUERADE
Questa prima regola si occupa di fare in modo che i pacchetti che provengono dalla rete degli access point appaiano con l'ip dell'hotspot.
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.182.0/24
-j MASQUERADE
Questa seconda e' del tutto uguale alla prima solo che altera i pacchetti provenienti dalla rete virtuale creata da chillispot.
iptables -A PREROUTING -t nat -i eth1 -p tcp --dport 80
-j REDIRECT --to-port 3128
iptables -A PREROUTING -t nat -i eth1 -p tcp --dport 443
-j REDIRECT --to-port 3128
Queste ultime 2 regole, invece, si occupano di spedire tutto il traffico destinato alle porte 80 (http) e 443 (https) a SQUID, in modo che il traffico possa essere registrato.
L'ultimo comando necessario per completare il tutto e':
sysctl -w net.ipv4.ip_forward=1
che permette l'inoltro di pacchetti tra un interfaccia e l'altra.



