|
Para configurar este hotspot nos hemos decantado por chillispot por su sencillez en la instalación y por lo poco puntilloso que es a la hora de pedir requisitos de software y configuración de la red . (de hardware pocos, que es linux :P).
Si disponemos de un AP y queremos que los clientes que accedan a él sean recibidos por una web de presentación en la que ofrezcamos los servicios de nuestro NODO o información variada , podemos utilizar este software sin mayor problema, si necesitamos mas opciónes podemos obtar por alguno mas completo como nocat.
Cualquier petición http es redirigida por el firewall contra un script que presenta una web de bienvenida y toda la información que queramos. Una de las principales opciónes de este software es el acceso a la red. Se le puede configurar para permitir libre acceso a ciertos servicios y a ciertas ips. Asi como no permitir accesos no deseados a otras ips... De esta forma, podemos dejar libre acceso a desconocidos a la web de nuestro grupo o al servidor local pero no al resto de servicios (internet, ftp,....) El sistema controla en todo momento los accesos y presenta una pantalla con el estado del cliente logeado o no logeado .
Chillispot se encuentra en chillispot.org es open source y se mantiene bajo licencia GPL .
Tal y como informa en su web, es un portal captivo para control de accesos wireless a una red LAN. Soportando WPA. Tiene binarios creados para Redhat, Febora, Debian y OpenWRT (AP). Su configuración es sencilla y permite la instalación de todo el sistema sin problemas en un mismo equipo.
A continuación explicaremos su instalación sobre una maquina con Debian .Para mas info,la web oficial donde aparece la documentación completa y detallada. ..........
LOS REQUISITOS :
Tal y como aparece en su web principal, estos son los requisitos: # Internet connection # Wireless LAN access point # ChilliSpot software for your PC # Radius server # Web server
La conexión a internet la vamos a limitar solo para nosotros, los propietarios del nodo y demas familia, pues recordamos que entre otras cosas , "regalao se murió" :) y seria ilegal ceder la conexión de internet alegremente. ... por lo tanto, si queremos captar los equipos que accedan a nuestro NODO y presentarles una web informativa con toda la info... ok :)
- Necesitamos un S.O. Linux, en este caso , se ha instalado sobre Debian GNU/LINUX.
- Un servidor radius, en este caso, sobre freeradius, tal y como aparece en al documentación (es GPL y aparece en las sources debian)
- Un servidor web. Claramente APACHE. Necesita soporte para SSL para autenticación con el servidor radius. Podemos bien instalar el modulo ssl al apache o instalar el apache-ssl. (haremos lo segundo)
- Un punto de acceso wireless. (en este caso, el nodo funciona con un DLINK900AP+ a la intemperie :P) La configuración en general podria ser la siguiente : 
En nuestro caso, todos los servidores se encuntran sobre la misma maquina, pudiendo estar separados (seria lo mejor por temas de seguridad, pero no le pidamos peras al arbol... :) )
EL S.O. , CONFIGURACIONES VARIAS
Deberemos tener un Debian instalado. (mas info) descargamos el .deb de chillispot en la siguiente dirección http://www.chillispot.org/download.html --(el .deb).
nos marcamos alegremente un "apt-get install freeradius apache-ssl" configurando el apache con la configuración minima contestando todo lo bien que queramos a las preguntas necesarias para las ssl (lugar, nombre, mail....) que apareceran posteriormente en la info del certificado al acceder al nodo.
instalamos tambien el chillispot con "dpkg -i chillispot_VERSION.deb" los archivos de chillispot se localizan en /etc/chilli.conf y en /usr/share/doc/chillispot/
enredaremos en /etc/chilli.conf y en /usr/share/doc/chillispot/firewall.iptables y /usr/share/doc/chillispot/hotspotlogin.cgi
lo primero, vamos a hacerlo facil, copiemos hotspotlogin.cgi a nuestro sitio de cgi, /usr/lib/cgi.bin/
podemos tambien editar el firewall.iptables a nuestro gusto con reglas propias (en este caso no lo tocaremos). Lo que si debemos hacer es procurar que las reglas de firewall.iptables se carguen al arranque
editamos el /etc/network/options con ip_forward=yes reiniciamos la red con "/etc/init.d/networking restart"
y de esta parte , una cosa importante, tener configurado en el kernel el soporte para tun/tap para levantar el interface tun0 en este caso. p-t-p.
tal como aparece en la configuración realizaremos lo siguiente :
mkdir /dev/net mknod /dev/net/tun c 10 200 para crear el dispositivo
y ahora : añadir la siguiente linea a /etc/modules.conf "alias char-major-10-200 tun"
luego "depmod -a " para actualizar cambios.
ahora, ya tenemos configurado el equipo.
FREERADIUS
vamos a retocar la configuración del freeradius en /etc/freeradius/ : modificamos clients.conf y cambiamos la clave de secret= ...123 por una propia como por ejemplo "linuxpower":)(no está de mas aunque sea en local :) )
modificamos users para añadir los usuarios, para no dar muchas vueltas, copiemos y modifiquemos el usuario que sugiere chillispot , el usuario steve. En el pondremos nuestro propio nombre de usuario, quedando algo asi como :
clipse Auth-Type := Local, User-Password == "atitelovoyadecir" Service-Type = Framed-User, Framed-Protocol = PPP, Framed-IP-Address = 172.16.3.33, Framed-IP-Netmask = 255.255.255.0, Framed-Routing = Broadcast-Listen, Framed-Filter-Id = "std.ppp", Framed-MTU = 1500, Framed-Compression = Van-Jacobsen-TCP-IP
como se puede observar, basta con modificar user y password, para mas usuarios, copiamos lo mismo y cambiamos la IP-address
CHILLISPOT
ahora enredamos con el /usr/lib/cgi-bin/hotspotlogin.cgi para personalizarlo un poquillo entre otras cosas en él , observaremos partes de codigo como las siguientes : if (!($ENV{HTTPS} =~ /^on$/)) { print "Content-type: text/html\n\n meta http-equiv="\"Pragma\"" content="\"no-cache\""> h1 style="" center="">Acceso a hotspot erroneo. , pirate zaragatas /h1> p> NO ACEPTA ACCESOS NO AUTORIZADOS. NODO SANTOÑA/p> center> Se debe usar encriptación. /center> "; exit(0); }
es html puro y duro, asi que podemos modificarlo a nuestro gusto con la web que queramos, bien pegandolo en este archivo o incluyendolo desde otro archivo aparte con el tocho de html (en este caso, que es poco, lo dejamos)
ahora, lo que nos queda, editar /etc/chilli.conf para que case con la clave que hemos cambiado por si las moscas en el servidor radius, en este archivo se encuentra en el apartado de la configuración del servidor radius "radiussecret " donde pondremos la clave del freeradius "radiussecret linuxpower" :P .............................. y mas o menos ya estaria el asunto, :) , relanzamos todos los chismes por si las moscas /etc/init.d/freeradius restart (al loro con los mensaje que igual hace falta añadirle un -x para recargarlo) /etc/init.d/chilli restart y si quereis :) el apache tambien :)
, si asociamos cualquier cliente al AP y le decimos que obtenga la ip automaticamente mediante dhcp, las peticiones a cualquier web nos llevarian a la web de presentación que hemos metido en hotspotlogin.cgi (recordad que hotspotlogin almacena varias webs y solo una es la de presentación, el resto es para mensajes de error y aceptación) por defecto, las dns seran las configuradas en el servidor. y una de las cosas que tiene de bueno (que tambien lo tiene el resto de portales captivos como el nocat :) ) es el poder dejar acceso a ciertas paginas sin necesidad de estar logeado, para el resto de cosas , se puede editar la configuración del firewall.iptables.
si modificamos /etc/chilli.conf , al final del archivo : TAG: uamallowed # Comma separated list of domain names, IP addresses or network segments # the client can access without first authenticating. # Normally you do not need to uncomment this tag. #uamallowed www.chillispot.org,10.11.12.0/24 uamallowed www.cantabriawireless.net,www.linuca.org,www.delpuerto.com
dejamos acceso libre a estas webs. (shhhhhhhhhh pero no lo digais muy alto :) ) . y dejariamos a grandes rasgos configurado el sistema para cualquier petición.
terminando...
Uno de los grandes problemas del wifi, como siempre, la seguridad. Este sistema solo nos cubre de accesos no deseados , no de ser escaneados ni evitar el snifing. Tampoco de un man-in-the-middle y que nos vuelvan locos y se hagan de las passwords (recordad que el login y pass de acceso si viaja encriptado). Deberemos entonces estar al loro de aceptar el certificado correctamente y de si aparecen nuevos certificados de algun malo malisimo :) . Para asegurarlo mejor, se podria configurar un proxy seguro con un squid y ssl de forma que todas las peticiones al web esten encriptadas y procurar utilizar puertos seguros para el resto... pero eso es cantar de otro dia :)
... habra que esperar a que alguien lo intente para confirmar que está "correcto" el documento, recordad que la información sin errores :) está en la web oficial en ingles :P .
salu2 y suerte :)
Pedro Luis clipse en delpuerto.com
|