|
Configuració d'un Linksys WRT54G com a portal captiu amb Chillispot i OpenwrtVersió en pdf Objectius: Instal.lar en un Linksys WRT54G un sistema de gestió d'usuaris basat en el portal captiu chillispot. L'autenticació dels usuaris es farà contra un servidor freeradius. Un cop configurat, els clients rebran per DHCP la configuració de xarxa i en obrir el seu navegador web, seran redirigits a una plana de login.El procés de login està encriptat amb ssl. Podem autoritzar als usuaris no enregistrats a accedir a determinades planes d'internet o de la nostra LAN, com per exemple, els recursos que es van creant dins d'una xarxa sense fils ciutadana. Què necessitem? -Un Linksys WRT54G versió 2. Amb d'altres versions no s'assegura que funcioni. -Un Ordinador amb una tarja ethernet 10/100. Amb un ordinador reciclat podríem tirar. CONFIGURACIÓ EN EL LINKSYS: 1-Instal.lar l'Openwrt Podem descarregar l'última versió ja compilada de: http://openwrt.org/downloads/snapshots/ Ens connectem al Linksys per qualsevol dels 4 ports de la LAN. Actualitzem el firmware per l'interficie web. Administration--->Firmware upgrade Un cop actualitzat el firmware podem connectar al Linksys només per telnet amb la ip que tenia.El telnet no té procés de login o sigui que l'haurem de deshabilitar més tard: telnet 192.168.1.1
Un cop dins activarem el boot_wait:
nvram set boot_wait=on
nvram commit
després comprovarem que s'hagi particionat i formatat
correctament l'espai de disc (ara disposem de 2 Mb en ROM per escriure
els fitxers que vulguem!!)
Ho comprovem fent:
df -h
si no apareix això:
/dev/mtdblock/4 on / type jffs2 (rw)
haurem d'executar la comanda:
firstboot
2-Configurem la xarxa mínimament, per tenir connectivitat a internet.
Per exemple, podem afegir una interfície virtual fent:
ifconfig br0:1 192.168.0.2
route add default gw 192.168.0.1
En el cas que la nostra pasarel.la a internet tingués la ip 192.168.0.1
3-Instal.lar el modul Tun/tap
ipkg update
ipkg list
ipkg install kmod-tun
Editem l'arxiu /etc/init.d/S10boot
i afegim:
insmod tun
Els arxius de configuració són un enllaç a un arxiu que està a
la memòria rom però que només tenim permís de lectura. Haurem de copiar
el contingut de l'enllaç a la nostre partició jffs de 2 Mb, en la que
sí tenim permís d'escriptura.
-esborrem l'enllaç
rm /etc/init.d/S10boot
-Copiem l'arxiu cap a on apuntava l'enllaç a la nostra partició:
cp /rom/etc/init.d/S10boot /etc/init.d/S10boot
-Ja podem editar l'arxiu guardant els canvis:
vi /etc/init.d/S10boot
4-Configurar la xarxa.
L'Openwrt acabat d'instal.lar té les següents interfícies de xarxa:
eth0: LAN Switch. es fa servir com a punt de connexió de les VLANs?. Millor que no l'utilitzis directament.
eth1: Interfície sense fils
vlan1: Virtual LAN: Internet
vlan0: Virtual LAN: Port 1 a 4
br0: Pont entre vlan0 i eth1
-Per trencar el Pont entre vlan0 i eth1 podem fer:
nvram set lan_ifnames=""
nvram set lan_ifname="vlan0"
nvram commit
/etc/init.d/S40network restart
5-Instal.lar el Chillispot.
-anem al directori temporal
cd /tmp
-descarreguem el paquet del chilli
wget http://www.chillispot.org/download/chillispot_0.99-1_mipsel.ipk
-l'instal.lem
ipkg install chillispot_0.99-1_mipsel.ipk
6-Configurar el tallafocs.
rm /etc/init.d/S45firewall
cp /etc/firewall.openwrt /etc/init.d/S45firewall
chmod 755 /etc/init.d/S45firewall
i modifiquem a:
vi /etc/init.d/S45firewall
WANIF=$(nvram_get wan_ifname)
per
WANIF="vlan1"
Això últim és un “arreglo” lleig. Segur que es pot fer d'un altre manera però així funciona ;-)
7-Per configurar el port WAN:
nvram set wan_ifname=vlan1
nvram set wan_ipaddr=192.168.0.100
nvram set wan_netmask=255.255.255.0
nvram set wan_gateway=192.168.0.1
nvram set wan_proto=static
nvram commit
8-Configurar l'arxiu /etc/chilli.conf
Necessitarem adaptar les següents línies de configuració al nostre cas:
radiusserver1 ip_del_servidor_radius
radiusserver2 ip_del_servidor_radius
radiussecret clau_compartida_entre_el_radius_i_el_chilli
dhcpif eth1
uamserver https://ip_del_servidor_web/cgi-bin/hotspotlogin.cgi
Per donar accés a determinades planes i/o la intranet
uamallowed www.matarowireless.net,www.comesfa.org,10.35.168.128/27
I per especificar un adreçament diferent del que ens dona per
defecte a la interfície sense fils (192.168.182/24) podem canviar-ho
per exemple per:
net 10.35.168.128/27
9-Fer que el chilli arrenqui al iniciar.
editem /etc/init.d/S50services
i afegim:
sleep 5s
/usr/sbin/chilli
10-Protegir-nos d'atacs de diccionari:
Per tal de minimitzar els atacs de diccionari podem habilitar l'ús d'una clau compartida entre el chilli i el servidor web.
A /etc/chilli.conf hem d'introduir la mateixa clau compartida que a l'arxiu hotspotlogin.cgi del nostre servidor web.
Podem descomentar la linia i afegir la cadena de caracters que nosaltres volguem:
uamsecret ht2eb8ej6s4et3rg1ulp
CONFIGURACIÓ EN EL SERVIDOR:
Necessitem instal.lar apache-ssl i freeradius.La distribució escollida és debian
apt-get install freeradius apache-ssl
1-Configurant el servidor web.
Durant l'instal.lació del certificat contestem de la millor
manera possible a les preguntes que ens faci. Aquesta serà la
informació que veurà l'usuari quan li mostri el certificat. Descarreguem de http://www.chillispot.org/download.html
dpkg -i chillispot_VERSION.deb
Copiem /usr/share/doc/chillispot/hotspotlogin.cgi al nostre directori cgi /usr/lib/cgi.bin/
cp /usr/share/doc/chillispot/hotspotlogin.cgi /usr/lib/cgi.bin/
Només necessitem copiar l'arxiu hotspotlogin.cgi. Un cop copiat
podem desinstal.lar el chilli del nostre PC ja que ja ho hem fet en el
Linksys. Podem descomentar la linia “uamsecret” d'aquest arxiu per tal
d'evitar els atacs de diccionari esmentats anteriorment.
2-Configurant freeradius.
-Editem /etc/freeradius/users:
jordi Auth-Type := Local, User-Password == "possa_aqui_el_teu_password"
Amb això hem creat l'usuari “jordi” amb password “possa_aqui_el_teu_password". Pots copiar-ho i modificar-ho per afegir més usuaris. -Editem i afegim a /etc/freeradius/client.conf: client ip_del_chilli{
On “ip_del_chilli” serà la ip amb la que accedim al chilli des del freeradius i “secret” serà la mateixa que haurem posat a /etc/chilli.conf Conclusió: El sistema resultant ens permet tenir un mínim control a l'accés d'usuaris però no evita l'sniffing ni atacs del tipus man in the middle (cal anar amb compte amb els certificats que s'accepten).L'adreçament dels clients wireless és dinàmic. Si volem adreçament estàtic haurem d'especificar en la configuració dels clients del freeradius, la ip i la mac del client estàtic i habilitar a /etc/chilli.conf per que autentiqui per MACs?. Chillispot també té suport per WPA. Si tenim una xarxa sense fils ja creada, afegint un chilli i deshabilitant la resta de servidors DHCP, podríem gestionar l'accés d'usuaris nous i anònims des del chilli. Fonts i enllaços d'interés: -Documentació d'Openwrt: http://openwrt.org/OpenWrtDocs/ -Documentació de chillispot: http://www.chillispot.org/release.html -Com fer servir freeradius+mysql: http://www.frontios.com/freeradius.html -Com configurar un chillispot+freeradius+apache ssl en una sola màquina: http://www.linuca.org/body.phtml?nIdNoticia=288 -Presentació d'un anàlisis comparatiu de firmwares http://www.trilug.org/talks/2004-09-wrt54g/Hacking_The_WRT54G_Presentation.PDF Jordi Clopés 2005 jordi (a) matarosensefils net Aquest document està protegit per les llicencies Creative Commons http://creativecommons.org/licenses/by/2.0/es/deed.ca Ets lliure de copiar, distribuir i comunicar públicament l'obra, fer-ne obres derivades i fer un ús comercial de l'obra sota la condició de citar a l'autor. |