Portal Captvo Chillispot

11 08 2008

Chillispot es un portal captivo que funciona con autenticación Web, es decir, garantiza que solo navegen por internet usuarios autorizados/registrados

El sistema de autenticación chillispot consta de dos partes principales, una es el demonio Chillispot que se encarga de gestionar los clientes de la subred y pedirles autenticación y la otra consta del servidor radius llamado freeradius que es quien realiza la autenticación en este caso con el servidor LDAP.

Software y equipo Necesario:

  • Chillispot

  • Radius server, en este caso es utilizado el Freeradius

  • Servidor Web, Apache2.

  • Soporte ssl para el servidor web, apache-ssl.

  • Access point inalámbrico o Router inalámbrico

La topología de la red propuesta para el sistema es el siguiente:

Topologia de red para chillispot

Topología de red para chillispot

Chillispot crea una interfaz de red virtual que se vale de la interfaz de red física por el cual esta conectada la red inhalambrica, por esta interfaz virtual chillispot habilita su propio servidor DHCP.

Instalación Chillispot

Antes de instalar chillispot se debe verificar que el kernel soporta interfaces virutales:

# apt-get install modconf Chillispot
# modconf
Kernel/drivers/net —>
tun [Universal TUN/TAP device driver support] —>
# modprob tun

Ahora hay que decirle al kernel que inicie el modulo al arrancar

# vi /etc/modules
Añadir al final:
tun

Habilitar el forwarding para hacer NAT.

# echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward
# vi /etc/sysctl
La linea:
#net.ipv4.conf.default.rp_filter=1
Se le quita el # para que se habilite

Ahora si instalamos chillispot:

# apt-get install chillispot

Acá pide configuración del servidor chillispot
servidor radius: 127.0.0.1
contraseña compartida del radius: pasword
Interfaz ethernet para el servicio DHCP: ponemos la interfaz de red conectada al access point
URL del servidor de autenticación: https://192.168.182.1/cgi-bin/hotspotlogin.cgi
Página de inicio de UAM: http://192.168.182.1:3990/prelogin
Contraseña compartida entre chillispot y el servidor web: password

Instalación del freeRadius y su soporte para ldap:

# apt-get install freeradius freeradius-ldap

Copiar la página de inicio de chillispot en la carpeta ‘/usr/lib/cgi-bin’

# cp /usr/share/doc/chillispot/hotspotlogin.cgi.gz /usr/lib/cgi-bin
# gunzip /usr/lib/cgi-bin/hotspotlogin.cgi

Configuracioń del apache

Es necesario que el apache soporte ssl, de no ser así el chillispot no funcionará.:

# apt-get install apache2 apache-ssl

Ahora generar el certificado de apache-ssl:

# make make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache-ssl/apache.pem

Se llena con los datos que pide y despues se habilita el modúlo:

# a2enmod ssl

Decirle al apache que escuche también por el puerto del apache-ssl:

# echo “Listen 443” >> /etc/apache2/ports.conf

Crear y habilitar el sitio SSL:

# cp /etc/apache2/sites-available/default /etc/apache2/sites-available/ssl
# vi /etc/apache2/sites-available/ssl

Debe quedar algo así:

NameVirtualHost *:443
<virtualhost *:443>
ServerAdmin webmaster@localhost

SSLEngine On
SSLCertificateFile /etc/apache2/ssl/apache.pem

DocumentRoot /var/www/
<directory />
Options FollowSymLinks
AllowOverride None
</directory>

<directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
# This directive allows us to have apache2’s default start page
# in /apache2-default/, but still have / go to the right place
# Commented out for Ubuntu
#RedirectMatch ^/$ /apache2-default/
</directory>

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<directory “/usr/lib/cgi-bin”>
AllowOverride None
Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</directory>

ErrorLog /var/log/apache2/error.log

# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn

CustomLog /var/log/apache2/access.log combined
ServerSignature On

Alias /doc/ “/usr/share/doc/”
<directory “/usr/share/doc/”>
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</directory>

</virtualhost>

Habilitamos el nuevo sitio SSL:

# a2ensite /etc/apache2/sites-available/ssl

Archivos de configuración

Es necesario editar los archivos: ‘/etc/chilli.conf’, ‘/etc/freeradius/radiusd.conf’, ‘/etc/freeradius/clients.conf’

En /etc/chilli.conf: Los parámetros necesarios son:

net 192.168.182.0/24
dynip 192.168.182.0/24
dns1 ipDNS1 # Servidor DNS1 Real
dns2 ipDNS2 # Servidor DNS2 Real
radiusserver1 127.0.0.1
radiusserver2 127.0.0.1
radiusauthport 1812
radiusacctport 1813
radiussecret password # Contraseña manejada entre el chillispot y freeradius
dhcpif eth1 # interfaz de red conectada a la red inhalambrica
uamhomepage http://192.168.182.1:3990/prelogin
uamsecret password
uamlisten 192.168.182.1
uamport 3990
# uamallowed son las páginas permitidas sin autenticación
# Por lo menos debe estar las dns reales y en las que se desee navegar sin autenticación
uamallowed ipDNS1
uamallowed ipDNS2

En /etc/freeradius/clients.conf:

client 127.0.0.1 {
secret = password
shortname = localhost
nastype = other # localhost isn’t usually a NAS…
}
# La red de chillispot
client 192.168.182.0/24 {
secret = password
shortname = redChilli
}

En /etc/freeradius/radiusd.conf: Editamos este archivo para que soporte la autenticación con LDAP.
Buscamos la parte del modúlo LDAP:

ldap {
server = “IP Servidor LDAP”
port = 389
password = password
basedn = “cn=users,dc=empresa,dc=com,dc=co”
authtype = ldap
password_attribute = “userPassword”
filter = “(uid=%{Stripped-User-Name:-%{User-Name}})”
start_tls = no
ldap_connections_number = 5
timeout = 4
timelimit = 3
net_timeout = 1
}
En el modúlo authenticate:
authenticate {

Auth-Type PAP {
pap
}
Auth-Type CHAP {
chap
}
Auth-Type MS-CHAP {
mschap
}
unix
Auth-Type LDAP {
ldap
}
eap

}

En hotspotlogin.cgi habilitamos las lineas ‘$uamsecret’ y ‘userpassword’

$uamsecret = “password”;
$userpassword=password;

Ahora solo se procede a editar la parte html del hotspot.cgi para personalizar la presentación.

Para hacer nat, al instalar chillispot se crea una carpeta en /usr/share/doc/chillispot donde esta el archivo firewall.iptables, se revisa y se verifica que la variable $EXTIF corresponda a la interfaz de red corresponda a la interfaz de salida y la varibale $INTIF corresponda a la interfaz de red conectada al access point. Ya hecho esto se ejecuta y esto pone las reglas de iptables para NAT.

Ya teniendo listo todo, por ultimo un pequeño paso, al subir chillispot con ejecutando /etc/init.d/chillispot start nos dice que editemos un archivo para que se habilite, lo hacemos y todo listo.


Acciones

Information

29 responses

13 08 2008
Andres

Hola
gracias por el tutorial tengo montado en ubuntu pero no autentica y la contraseña compartida esta correcta no se que sera el error ayuda porfa

14 08 2008
jpill

Saludos.
Intenta el modo debug entonces del freeradius.
Primero paras el demonio de freeradius: /etc/init.d/freeradius stop
Luego lo inicias en modo debug: freeradius -x
observas su salida y pruebas con el comando radtest en otra consola.
Observas la salida cuando lo haces y por favor nos muestras la salida.

Gracias

14 10 2008
Erick

Hola que tal. Esta muy bueno el documento, coy novato en esto y lo voy a provar a ver como me va.

cualquier cosa espero me puedas dar respuestas OK

GRACIAS…

31 10 2008
Jose

Hola, como veo que dominas el tema me gustaria hacerte una pregunta, tengo hotspots montados con coova y m gustaria montar un portal general para todos, el tema es que consigo redirecciónar pero la autentificación uam no me funciona.
Error “Login must use encrypted connection” Chillispot login failded-

En ese servidor tengo el apache rulando con php para la web de login “hotspotlogin.php”.

Es necesario instalar chillispot en ese server tambien?

Gracias de antemano!

30 05 2009
manu

Hola estoy con probando tu manual.. y tengo unos problemillas..
te explico la configuracion
Hard:
debian lenny + dhcp + chilli + freeradius + ap dlink_2100ap
eth0 estatica (donde viene internet)
eth1 pinchada al ap.
eth1 y ap configurados para que cojan la ip por dhcp

Instalacion:
Los paquetes se han instalado perfectamente sin sacar por el syslog ningun mensaje a parte de los que te dice que tienes que configurar.

me gustaria enviarte los ficheros de configuracion, dhcp.conf, apache2,chilli,radius,y el interfaces por si ves alguna cosa..

Un saludo y muchas gracias por anticipado!!

30 05 2009
jpill

Saludos Manu.

No es necesario que instales servidor DHCP, ya que chillispot tiene el suyo propio.
También te recomiendo que intentes instalar el coova chilli, es del mismo desarrollador de chillispot, con chillispot encontré punto de quiebre al autenticar desde windows vista, con coovachilli no tengo ese problema, puedees usar el mismo archivo de configuración de chillispot.

Cuentame si desabilitando el servidor dhcp de tu lenny solucionas el problema que tienes.
Éxitos

25 09 2009
eduardo

buen tuto :S pero soy mas novato de lo que crei, entonces espero me puedas indicar un poco mas despacio los pasos mi servidor sera un pentium 4 con linux ubuntu 5, 1 puerto de red lan interno de targeta madre y el otro de red lan en pci, disculpame, help me.

la idea es realizar este servidor y enviar internet inalambrico a otras personas pero que esten registrados, de lo contrario no obtendran el servicio, gracias de antemano

22 10 2009
mustek

Ola…. necesitaria contactar contigo por correo para que me eches 1 cable! Toda la informacion sobre coova, etc esta en ingles!

Saludos.

22 10 2009
domen

aloja amigos me gustaria saber si funciona con equipos en mesh usando robin u otro similar para no meter meraki

23 10 2009
JPill

Saludos Domen.

Yo creeria que si, de todas formas el servidor de autenticación es uno solo

8 02 2010
oggy_1820

buen tuto pero mi pregunta es que el chillispot no me autentica, deseo implementar un hotspot en mi Universidad con LDAP pero no logro autenticar sera que me puedes ayudar JPill de antemano gracias…saludos desde Loja

8 02 2010
JPill

Saludos oggy.

Recomiendo ahora usar el Coova chilli.

Dime que obtienes al usar el comando para debug:
freeradius -x

así inicias el freeradius y ves lo que pasa por el.

Pon la salida acá

9 02 2010
oggy_1820

no tengo nada de respuesta estoy utilizando freeradius en debian, instale desde las fuentes make install…el problema es que trato de hacer pruebas locales con chillispot y nada que ver lo anterior (freeradius+ldap) funcionan bien pero no logro autenticar con chillis sera que me puede ayudar de antemano gracias..

coova chilli estoy probando y lo mismo que puedo hacer?

5 04 2010
javier

hola , quisiera saber como se hace para cambiar el puerto de donde esta escuchando el servidor dhcp del coovachilli, si es posible claro, gracias abrazo

23 05 2010
george

hola yo instale el chillispot pero tengo un problema cuando me conecto al servidor me asigna ip y todo perfecto hasta hay pero cuando habro el navegador no navega y me redirreciona hacia el chilli donde pide usuario y clave me gustaria que me ayudaran con esto si alguien sabe la respuesta y saber si hay que instalar el servicio de dns o el propio chillis tiene servicio de dns tambien.

23 05 2010
JPill

Gabriel.

Has instalado el chillispot desde repositorios?, ya que al hacerlo así se crea un archivo de IPTables para NAT, busca ese archivo y ponlo a ejecutar siempre que inciie la máquina

23 05 2010
foot

Hola,
my name’s Andrea i have a problem with freeradius and ldap authentication.
When i make debug with this command: freeradius -X
I have this error after i type “radtest foot andrea localhost 0 password”:

[rlm_ldap]: LDAP login failed: check identity, password settings in ldap section of radiusd.conf

but the password is same password.

Sorry for my english.
compliments for this how-to

23 05 2010
JPill

Andrea.

It looks like the password of the base dn doesn’t correspond in ldap server and freeradius.conf

See the parameters of the radtest command, maybe that is wrong.
Please allow us to know your advance.

Thanks

25 05 2010
rickygm

Hola muy interesante el manual , talvez puedas ayudarme un poco yo estoy tratando de montar un HotSpot con coova-chilli y Daloradius , pero lo raro es que cuado levanto el coova-chilli me bota la conexion local de la red ….

osea veo que me borra por alguna razon la interfaz lan , dejandomela sin ip

alguna idea?

26 05 2010
Andrea

Hola a todos!!

I’ve solved my problem.
I have a debian lenny machine, i have installed a freeradius 2.0.4 with apt-get command.
In this release, the section authorized and authenticate are stored in /etc/freeradius/site-avaible/default and not in /etc/freeradius/radius.conf
I have changed some parameters and now the authentication work very well.

Now i have a new problem with chillispot,because not redirect my browser to login page.

if you want, i can send my configuration file for update your how-to.

Greetings
Andrea

18 09 2010
David Armando

Muy buenas tardes.
Antes que nada presentarme mi nombre es Armando Pomez y soy estudiante de Ing. Informatica del 10 ciclo.
Mi cosulta es he instalado un freeradius en Linux Ver. Centos 5.4 Final.
El escenario de la red es Una estacion Base con cuatro Paneles sectoriales y un Radio, de transmisor,marca NetKroom.
Esos equipos se configuran con un software de la marca llamado NMS pero me parecio ke era insuficiente para la red wireless que pretendo implementar.
En conclusion decidi instalar 2 servidores un Proxy y un Radius a fin de administrar una cantidad mayor de usuarios se instalo un servidor detallado al inicio del post y el enlace en 2 interfaces de red.
El enlace a la estaciones es perfecto cuando pingneo mi red local el enlace es estable pero al administrar mi linea de internet los dns no resuelven a la 6 estacion.
Mi linea es un servicio empresarial de 5 Mgb al 25% speedy adsl y no creo que sea ancho debido a que he probado la interface 1 en momentos de colapso y en esa interface los dns si resuelven.

25 11 2010
arturo

que tal mi nombre es arturo ortiz y vi su manual y segui los pasos pero no me autentitca, si me asigna ip pero no me manda a la pagina de chillispot, no se que esta pasando ya me estoy desesperando al momento de reiciniar el servicio de red me sale esto
SIOCSIFNETMASK: Cannot assign requested address
Failed to bring up eth1

no se a que se debe ya llevo dias por no decir semanas con este problema espero me pueda ayudar
la eth1 tiene asiganad ala ip 0.0.0.0 /8

18 01 2011
arturo

tengo un problema realizo toda la configuracion, y al momento de conectarme me asigana ip y en el syslog me muestra que me conecta y asigana ip pero al momento de navegar me muestra un error de las ssl

29 03 2011
Esteban

Hola buen tutorial, y tengo una duda, digamos que estamos en alguna hotel o lugar publico, pero ps es dificil tener a todos registrados hay alguna forma de usar un usuario “invitado” que se pueda o “cliente” donde se pueda utilizar varias veces?, logicamente este seria una de los mas restringidos

6 04 2011
jhon

hola que takl esta bueno el tutorial pero tengo una pregunta como haria para agregarle un limite de tiempo por usuario jemplo:

usuario:jeruiz solo pueda navegar por 30 dias y 5 dias antes le envie un msj a ese usuario que le quedan 5 dias para vencer su clave de usuario y como regularle el ancho de banda y si con este programa puedo tambien baleancear cargas con dos lineas adsl

18 02 2012
george

Buenas se que este post es algo viejo pero tengo una duda el cual quisiera saber como hago para saber que ip tiene asignada cada usuario debido a que quiero limitarles el ancho de banda a cada uno y no todos van a usar el mismo ancho entonces lo tengo pensado hacer con tc y htb pero no se como saber que ip tiene cada usuario asignada

14 03 2012
ninigpr

en la terminal escribe
arp -a (a qui te salen la ip de cada usuario conectado), si esto no te convence en la terminal ejecuta ifconfig y te dirá la ip de esa pc
cualquier cosa escríbeme
ninigpr@gmail.com

5 05 2012
Leonel

HOLA, Estuve leyendo tu info..Interesante..tengo una consulta..tengo 1 maquina con 3 tarjetas de red..actualmente están funcionando con 2, como router compartiendo internet a 5 pc´s alambrados,,quiero conectar 1 AP en la tarjeta 3, pero no tengo claro las reglas Iptables..cuando ejecuto el iptables..me tumba la red alambrada..y solo queda funcionando el AP por la tarjeta 3.. Si me pudieras dar una orientación al respecto agradecería..

22 05 2013
auto insurance

Excellent blog! Do you have any recommendations for aspiring writers?
I’m hoping to start my own site soon but I’m a little lost on everything.
Would you suggest starting with a free platform like
Wordpress or go for a paid option? There are so many choices out there that I’m completely overwhelmed .. Any suggestions? Many thanks!

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s




A %d blogueros les gusta esto: