Hotspot - Atualização - CoovaChilli

Criei um artigo rápido que constitui na atualização, ou melhor, na instalação da versão mais nova do CoovaChilli. Espero que gostem!

[ Hits: 34.676 ]

Por: André Santos em 18/12/2012


Instalação do Coova



Bom, vamos lá.

Começamos baixando o Haserl, necessário para montar as páginas do CoovaChilli em tempo de execução, no caso, como estou usando Debian Squeeze, peguei o binário do Testing, não tive problemas.

Antes de instalar o Haserl, instale a dependência liblua:

# apt-get install liblua5.1-0

E depois:

# wget http://ftp.br.debian.org/debian/pool/main/h/haserl/haserl_0.9.29-3_i386.deb
# dpkg -i haserl_0.9.29-3_i386.deb

Pronto, instalado! Podemos preparar o Chilli.

Aqui existe um grande impasse, para o nosso artigo peguei a versão 1.3.0 compilada para o Ubuntu, não tive problemas, mas o interessante é que se você tiver um pouco de conhecimento em compilação de pacotes, pegue o fonte e compile para o Debian (coova.org/CoovaChilli/DistroBuilding), em meus clientes já fiz de ambos os modos.

Falo isso porque existe uma funcionalidade descontinuada, que é a com o "IE 6", nestas versões mais novas a autenticação não funciona com Internet Explorer 6. Para fazer funcionar, tive que mudar umas linhas no fonte do Coova. Mas para todos os efeitos, é melhor usar como está.

Vamos lá:

# wget http://ap.coova.org/chilli/coova-chilli_1.2.6_i386.deb
# dpkg -i coova-chilli_1.2.6_i386.deb

Pronto, Coova instalado!

O Coova vem com um pequeno problema, ele não carrega na inicialização por padrão, pelo menos no Debian encontrei este contratempo. Vamos alterar para ficar de acordo com o LSB (Linux Standard Base).

O script de inicialização do Coovachilli não vem por padrão com as tags LSB, tive que criar manualmente. Vamos lá.

Edite o arquivo: /etc/init.d/chilli

E logo após a entrada #! /bin/sh, dê uma quebra de linha e adicione o seguinte:

### BEGIN INIT INFO
#Provides: coovachilli
# Required-Start: $network  firewall  freeradius mysql
# Required-Stop:
# Default-Start: 2  3  4  5
# Default-Stop: 0  1  6
# Short-Description: Provides  Captive  Portal  using   Tickets
### END INIT INFO

Isso fará com que, quando instalarmos algum novo software que use a rede, o mecanismo que gerencia a ordem de boot saiba como ajustar essa ordem, de tal modo que cada software inicialize após suas dependências!

Logo após, digite:

# insserv -vf chilli

Pronto, instalamos o Coova e já ajustamos sua inicialização.

Agora, o FreeRADIUS e o MySQL!

FreeRADIUS e MySQL

Na sequência, rodamos o seguinte:

# apt-get install freeradius freeradius-mysql mysql-server

Isso instalará o último grupo de aplicativos e dependências que precisamos para o portal cativo. Não vou abordar a instalação do MySQL, apenas os ajustes que fiz para que o FreeRADIUS comunique legal com o MySQL.

Após instalar, vamos configurar o FreeRADIUS. Primeiro, vamos criar um banco de dados para o FreeRADIUS:

Acesse o MySQL e digite:

mysql> create database radius;
mysql> grant all privileges on radius.* to radiususer@'localhost' identified by 'senhadoradius';
mysql> flush privileges;

Vamos importar as tabelas do FreeRADIUS:

mysql> mysql -u radiususer -psenhadoradius radius < /etc/freeradius/sql/mysql/schema.sql
mysql> mysql -u radiususer -psenhadoradius radius < /etc/freeradius/sql/mysql/nas.sql
mysql> mysql -u radiususer -psenhadoradius radius < /etc/freeradius/sql/mysql/ippool.sql

Inserir um usuário para testar em seguida:

mysql> mysql -u radiususer -psenhadoradius radius
mysql> insert into radcheck (username, attribute, op, value) values ('usuario', 'Password', '==', 'senha') ;

* Importante: Pronto, agora configuramos o FreeRADIUS, edite o arquivo /etc/freeradius/radiusd.conf e descomente a linha (no meu arquivo aqui, era a linha 683):

$INCLUDE sql.conf

No arquivo /etc/freeradius/sql.conf, altere os dados conforme criamos no MySQL:

login = "radiususer"
password = "senhadoradius"

# Database table configuration for everything except Oracle
radius_db = "radius"

Agora, no arquivo /etc/freeradius/sites-enabled/default, altere o seguinte:
  • Sessão authorize → descomente a linha: sql
  • Sessão accounting → descomente a linha: sql
  • Sessão session → descomente a linha: sql
  • Sessão post-auth → descomente a linha: sql

Pronto, podemos reiniciar o FreeRADIUS:

# /etc/init.d/freeradius restart

E também testar se o nosso Radius vai comunicar com o MySQL:

# radtest usuario senha localhost 1813 testing123

Se receber algo como:

Sending Access-Request of id 235 to 127.0.0.1 port 1812
	User-Name = "usuario"
	User-Password = "senha"
	NAS-IP-Address = 127.0.1.1
	NAS-Port = 1813
rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=235, length=20

... quer dizer que funcionou.

    Próxima página

Páginas do artigo
   1. Instalação do Coova
   2. Configuração do Coova
   3. Firewall e ajustes finais
Outros artigos deste autor

Firewall funcional de fácil manipulação

Hotspot rápido com Coovachilli

Leitura recomendada

Desvendando as regras de Firewall Linux Iptables

Como bloquear o Ultrasurf - solução definitiva (iptables + Fail2ban)

Incrementando seu Firewall com o Layer 7 Filter

Entendendo a teoria do iptables

Controle de banda com Slackware 10 + CBQ + Iptables + DHCP

  
Comentários
[1] Comentário enviado por removido em 18/12/2012 - 19:15h

Parabens pelo post. Está bem explicado e fácil de intender. Meu TCC foi a respeito do freeradius, é uma otima ferramente de autenticação.
Irei testar seu tutorial assim que me sobrar um tempo. Abraços

[2] Comentário enviado por doomk em 21/12/2012 - 16:18h

Segui os passos! Deu tudo certo... na parte da instalação do coova-chilli, preferi compilar na mão como vc tinha recomendado.

Agora, um adendo: e se eu quiser deixar uma opção na tela de login para o manolo se registrar? é possível?

Parabéns pelo artigo.

[3] Comentário enviado por R.S.P Andre em 22/12/2012 - 08:26h


Agora, um adendo: e se eu quiser deixar uma opção na tela de login para o manolo se registrar? é possível?

Parabéns pelo artigo.


Aqui funcionou tudo certinho, mas tenho a mesma dúvida do doomk.

Ficou muito bom o artigo, achei simples e bem direto..
Meus parabéns!



[4] Comentário enviado por andfeh em 07/01/2013 - 09:42h

Bom dia, desculpem a demora, com os preparativos para o casamento, digo com toda certeza, não esta fácil!

Respondendo aos amigos, doomk e R.S.P Andre, é possível sim, os arquivos ficam dentro da pasta /etc/chilli/www , o único problema é que os autores do software usam um tal de haserl, que serve pra montar as páginas, ai tem que ir investigando página por pagina para alterar alguma coisa.
Tenho um cliente que é uma rede de hoteis local aqui na minha região, eu fiz para eles um centralização/pesonalização do hotspot, eu mudei o método usado, fiz assim: criei uma página com tudo que eles pediram e deixei um iframe que mostra somente os campos Login e Senha do hotspot, digo que não foi fácil deixar desse modo, mas ta funcionando até hoje, o restante da página tem alguns formulários que gravam informações direto no mysql, ai fica fácil!

Abraço, qualquer dúvida avisem!

Fiquem com Deus.

[5] Comentário enviado por pabloguerra em 08/02/2013 - 10:38h

Amigo, Ótimo tutorial. Tira-me uma dúvida, existe alguma aplicação tipo o daloradius para gerênciar usuário/senha para o coova-chilli?

Desde já agradeço.


Deus te abençoe.

[6] Comentário enviado por andfeh em 08/02/2013 - 11:14h

Bom dia, você tem que ter em mente que o CoovaChilli é o "autenticador", ele pede "tickets" para o FreeRadius, este por sua vez, segundo o artigo, busca informações que estão aramazenadas no MySql, e também colocando informações nas tabelas rad* ... Partindo deste principio o próprio Daloradius já tem uma interface Web PHP muito boa para gerencia destes dados, mas nada impede que você desenvolva uma sua com informações que você deseja, eu mesmo desenvolvi um código, bem simples e bem bagunçado usando GWT+PHP para alguns clientes.

Abraço,
André Carlim

[7] Comentário enviado por pabloguerra em 08/02/2013 - 13:23h

Ok meu caro... então vou aproveitar esse feriado pra quebrar a cabeça e desenvolver um esquema aqui pra empresa. Desde já agradeço. Se possível consegue postar um esboço do seu código ai?

abç.

Deus te abençoe.

[8] Comentário enviado por kdanilo em 12/08/2013 - 17:13h

pabloguerra boa tarde,
já estou a um tempo tentando configurar o coova e aos 45 do segundo tempo a coisa não vai.....
gostaria de saber em primeiro lugar onde se localiza o script padrão do coova para realizar a alteração que você indicou no tutorial.
Gostaria de saber se também é possível voce dar uma ajuda, se sim meu e-mail é kelson.uniesp.edu.br
desde ja agradeço
Att. Kelson

[9] Comentário enviado por marllonti em 26/11/2014 - 19:24h

Onde edito o arquivo que não foi mencionado no passo 5?


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts