59278727 Ubuntu Hotspot Coovachilli Free Radius Lamp

30
Servidor de RADIUS Autoria de Tiago Maia

Transcript of 59278727 Ubuntu Hotspot Coovachilli Free Radius Lamp

Page 1: 59278727 Ubuntu Hotspot Coovachilli Free Radius Lamp

Servidor de RADIUS

Autoria de Tiago Maia

Page 2: 59278727 Ubuntu Hotspot Coovachilli Free Radius Lamp

Índice

Introdução .................................................................................................................................................................... 1

Servidor de Radius ........................................................................................................................................................ 2

Instalação do Ubuntu Server 10.04.2 LTS ................................................................................................................. 3

Configuração inicial do Ubuntu Server ................................................................................................................... 11

Root .................................................................................................................................................................... 11

Configuração da rede ......................................................................................................................................... 11

Actualizar Ubuntu ................................................................................................................................................... 12

Instalações de componentes básicos ................................................................................................................. 12

Instalação de freeRADIUS e a Base de Dados ......................................................................................................... 13

Criar base de dados ............................................................................................................................................ 13

Configuração freeRADIUS ................................................................................................................................... 13

Mudar a autorização para SQL ........................................................................................................................... 15

Adicionar e testar utilizador ............................................................................................................................... 16

Instalação do CoovaChilli ........................................................................................................................................ 17

Configuração do CoovaChilli ............................................................................................................................... 17

Testar a configuração ......................................................................................................................................... 19

Configuração da página de Login ........................................................................................................................ 19

Instalação e configuração do Haserl ................................................................................................................... 21

WEB interfaces ....................................................................................................................................................... 23

DaloRADIUS ........................................................................................................................................................ 23

Webmin .............................................................................................................................................................. 26

Page 3: 59278727 Ubuntu Hotspot Coovachilli Free Radius Lamp

Introdução

1

Introdução

Neste documento provém fundamentalmente de um trabalho proposto, montagem e configuração de um

servidor de RADIUS. Desta forma, explico nas próximas páginas a instalação e configuração passo por passo.

Neste servidor, o objectivo é ter a aplicação CoovaChilli operacional a distribuir IPs (serviço DHCP) e a página de

autenticação aos utilizadores que se liguem via Wireless (sem fios) ao servidor. Onde a aplicação freeRADIUS

encarrega-se do registo e verificação da autenticação.

O freeRADIUS é uma implementação de RADIUS modular, de alta performance e rica em opções e

funcionalidades. Esta inclui servidor, cliente, bibliotecas de desenvolvimento e muitas outras utilidades. Pode ser

instalada em sistemas Linux e Machintosh. Devido a estas características e tendo em conta o facto de ser uma

aplicação open source (código aberto) esta será a implementação de RADIUS utilizada para o desenvolvimento do

trabalho.

Page 4: 59278727 Ubuntu Hotspot Coovachilli Free Radius Lamp

Servidor de Radius - Hotspot

2

Servidor de Radius

O RADIUS é um protocolo que visa a autenticação, autorização e gestão de utilizadores, para acesso à rede ou

serviços de rede (conceito AAA). RADIUS é normalmente usado para gerir e tornar mais seguro o acesso à Internet

ou a redes internas. O Protocolo RADIUS baseia-se num sistema cliente/servidor. O Servidor de RADIUS utiliza o

conceito AAA para gerir o acesso à rede. Este conceito refere-se aos processos de autenticação e autorização e

contabilização (accounting) que são utilizados para estabelecer uma ligação à Internet ou utilizar aplicações de

acesso à rede. Uma rede ou serviço de rede que utilize o protocolo RADIUS necessita de autenticação para

permitir a ligação deste utilizador/dispositivo a esta. Após autenticação é determinado quais são os privilégios a

que o utilizador autenticado está autorizado, e é contabilizado (accounting) e gravado o acesso deste no servidor

RADIUS, de modo a haver uma melhor gestão e controle de acessos. O RADIUS tornou-se assim numa ferramenta

necessária para controlo e segurança de acessos à rede de Internet ou redes internas.

Page 5: 59278727 Ubuntu Hotspot Coovachilli Free Radius Lamp

Servidor de Radius - Hotspot

3

Instalação do Ubuntu Server 10.04.2 LTS

1- Seleccionar o leitor de CD/DVD para arranque de boot, e arrancar o cd do Ubuntu em boot.

2- Seleccionar a língua que pretende e “Install Ubuntu Server” para inicializar a instalação.

3- Seleccionar a localização e o layout do teclado seguindo as instruções.

4- Permitir que a “instalador” detecte o hardware do computador, onde vai ser instalado.

5- Visto que o computador tem duas placas de rede, vai perguntar qual delas quer como primário.

a. Eth0 – Rede externa, conectado à internet e aos outros pcs da rede.

b. Eth1 – Rede local, vai disponibilizar internet mas vai estar distinta de toda a rede.

Page 6: 59278727 Ubuntu Hotspot Coovachilli Free Radius Lamp

Servidor de Radius - Hotspot

4

6- Quando se pedir um hostname, escolhe-se algo descritivo para a sua localização. Este nome é usado para

identificar o sistema de suporte remoto. Como exemplo defini o hostname de wifiserver.

7- De seguida fará a configuração do relógio. Caso esteja automaticamente seleccionada e errada, basta

seleccionar a correcta e confirmar.

Page 7: 59278727 Ubuntu Hotspot Coovachilli Free Radius Lamp

Servidor de Radius - Hotspot

5

8- Próximo passo o “instalador” questiona sobre o particionamento do disco.

a. Escolhe-se a primeira opção, usar o particionamento guiado e usar todo o disco para instalação.

b. Depois dessa etapa pede para confirmar as alterações que pede para escrever no disco, segundo

as instruções.

9- Irá então iniciar a instalação do sistema base, após a confirmação das alterações que irão ser feitas no disco.

Page 8: 59278727 Ubuntu Hotspot Coovachilli Free Radius Lamp

Servidor de Radius - Hotspot

6

10- A instalação do Ubuntu Server inicializa. O tempo de demora da instalação vai depender do hardware que o

computador constitui, onde está a ser instalado.

11- Após concluído a instalação adicionar o nome completo à nova conta de utilizador.

Page 9: 59278727 Ubuntu Hotspot Coovachilli Free Radius Lamp

Servidor de Radius - Hotspot

7

12- Adicionar agora, nesta etapa, o nome de utilizador que vai ser usar para login.

13- Depois inserir a password que o utilizador vai precisar para o acesso ao sistema operativo e aos serviços

do server:

a. Reintroduzir novamente a password, para a confirmação.

Page 10: 59278727 Ubuntu Hotspot Coovachilli Free Radius Lamp

Servidor de Radius - Hotspot

8

14- Neste passo irá questionar se quer a directoria /home encriptada, mas como não será um computador

pessoal então não terá essa necessidade, desta forma, aqui escolha No.

15- Caso tenha servidor Proxy adicione o endereço conforme a representação standard. Se não tem ou tem

dúvidas, deixe em branco, pois mais tarde pode-o reconfigurar.

Page 11: 59278727 Ubuntu Hotspot Coovachilli Free Radius Lamp

Servidor de Radius - Hotspot

9

16- Convém optar por escolher, neste próximo passo, No Automatic Updates. Isto é, prevenir que não haja

actualizações automáticas, com forma de prevenir também uma futura manutenção no sistema. Pois,

algumas actualizações actuais poderão vir a ser instaladas e poderão não ser compatíveis com as

aplicações “antigas” que estão instaladas no sistema.

17- Em Software Selection seleccione o pacote de software LAMP Server (Linux Apache Mysql PHP) e o

OpenSSH Server. OpenSSH é um conjunto de programas que usam o protocolo SSH para aceder

remotamente noutro computador ao Server (ou vice-versa) por vários meios. Quanto ao Mysql, durante a

sua configuração automática vai pedir para definir uma palavra-chave, guarde-a em algum lugar para que

não se esqueça, pois vai necessitar para completar alguns passos.

Nota: Por exemplo, no Windows, pode aceder ao servidor Ubuntu por SSH, use aplicação Putty e/ou WinSCP.

Page 12: 59278727 Ubuntu Hotspot Coovachilli Free Radius Lamp

Servidor de Radius - Hotspot

10

18- Para finalizar a instalação e configuração do sistema Ubuntu Server, instale o GRUB boot loader to the

master boot record escolhendo Yes.

19- E pronto, a instalação do sistema base já está completa. Pressione Continue e remova o disco do leitor de

CD/DVD.

Page 13: 59278727 Ubuntu Hotspot Coovachilli Free Radius Lamp

Servidor de Radius - Hotspot

11

Configuração inicial do Ubuntu Server

Root

Para fazer as instalações mais fáceis e ter permissões e privilégios para pequenas alterações, tem que criar o

superutilizador (root):

$sudo passwd root

Enter new UNIX password:

Retype new UNIX password:

$su root

Password:

Depois, basta fazer logout e entrar como root ou digitar:

$su

Enter password:

#

Configuração da rede

A rede está configurada por DHCP, mas podemos reconfigurar para IP estático. Editando o script interfaces,

localizado na directoria /etc/network/.

#nano /etc/network/interfaces

Em princípio o script está assim definido por defeito:

auto lo iface lo inet loopback # The primary network interface auto eth0 iface eth0 inet dhcp auto eth1

Se quiser definir como IP estático, edite para esta forma com IPs de exemplo:

# The primary network interface auto eth0 iface eth0 inet static address 192.168.10.1 netmask 255.255.255.0 gateway 192.168.10.254 network 192.168.10.0 broadcast 192.168.10.255 auto eth1

Para a placa eth1 não define por DHCP nem por STATIC, define-a por MANUAL. Pois, a aplicação CoovaChilli vai-se

encarregar de configurar automaticamente o DHCP, irá ver mais à frente.

auto eth1

Page 14: 59278727 Ubuntu Hotspot Coovachilli Free Radius Lamp

Servidor de Radius - Hotspot

12

iface eth1 inet manual

Guarde, feche e reinicie a rede para actualizar as configurações definidas.

#/etc/init.d/networking restart

Para visualizar o IP que a máquina tem ou obteve:

#ifconfig

Ou:

#ip addr

Actualizar Ubuntu

Se não estiver “logado” como root precisa de digitar “sudo” antes do comando para poder ter executa-lo com

privilégios:

$sudo apt-get update && sudo apt-get upgrade

Instalações de componentes básicos

Antes de iniciar a instalação e a configuração das aplicações importantes para o funcionamento do Hotsopt, vai

ser necessário alguns componentes essenciais para essas aplicações, pelo terminal o seguinte comando.

$sudo aptitude install apache2 ssl-cert php5-gd php-db php-pear libapache2-mod-php5

mysql-server mysql-client freeradius freeradius-mysql phpmyadmin freeradius-utils

gcc

Depois do Apache2 estar instalado, execute cada comando sucessivamente, “logado” como root:

#a2enmod ssl

# a2ensite default-ssl # service apache2 restart

Page 15: 59278727 Ubuntu Hotspot Coovachilli Free Radius Lamp

Servidor de Radius - Hotspot

13

Instalação de freeRADIUS e a Base de Dados

Criar base de dados

A base de dados é o “local” onde vai estar alojado todos os dados dos utilizadores que serão definidos para

autenticação no freeRADIUS. Estes dados já tem tabelas definidas por defeito, de meio caminho andado basta só

apenas instalar no Mysql.

Sessão iniciada como “root”, crie a Base dados pelo terminal:

#mysql –u root –p

Enter password:

mysql> CREATE DATABASE radius;

mysql> quit;

Instalar/inserir as tabelas da base de dados, radius, que foi acabada de criar. Novamente pelo terminal:

# mysql -u root -p radius < /etc/freeradius/sql/mysql/schema.sql

# mysql -u root -p radius < /etc/freeradius/sql/mysql/nas.sql

Adicionar privilégios na base de dados:

# mysql -u root -p Enter password:mysqladminsecret

mysql> GRANT ALL PRIVILEGES ON radius.* TO 'radius'@'localhost' IDENTIFIED BY

'mysqlsecret';

mysql> FLUSH PRIVILEGES;

mysql> quit;

Nota: Substituía entre pliques ‘mysqlsecret’ pela sua palavra-chave (senha) do Mysql, aquela que definiu quando

instalou.

Configuração freeRADIUS

A configuração do freeRADIUS baseia-se na edição de alguns scripts files, com forma de poder aceder ao controlo

do programa. Poderá consultar ajuda na página oficial http://freeradius.org/doc/ ou pelo comando man

freeradius.

Usando um editor pelo terminal, por exemplo Nano ou Vi irá editar o arquivo /etc/freeradius/sql.conf:

# nano -w /etc/freeradius/sql.conf

Edite as linhas que contêm o seguinte conteúdo entre aspas, pelos dados que optou para o Mysql:

server = "localhost" login = "root" password = "mysqlsecret"

Edite agora o arquivo /etc/freeradius/clients.conf editando e definindo a palavra-chave em “secret” para o

Freeradius:

client localhost { ipaddr = 127.0.0.1

Page 16: 59278727 Ubuntu Hotspot Coovachilli Free Radius Lamp

Servidor de Radius - Hotspot

14

secret = radiussecret }

Nota: radiussecrect →Pode ser a mesma palavra-chave que tem definido para o Mysql (“mysqlsecret”).

Edite o arquivo /etc/freeradius/users desfazer o comentário, isto é, apagar os cardinais (#) no arquivo para que

programa não ignora as linhas que estavam comentadas:

#nano -w /etc/freeradius/users

Nas seguintes linhas, apague o comentário (o cardinal, “#”):

# "John Doe" Auth-Type := Local, User-Password == "hello" # Reply-Message = "Hello, %u"

De maneira ficar apenas assim:

"John Doe" Auth-Type := Local, User-Password == "hello" Reply-Message = "Hello, %u"

Reinicie o sistema para que afecte as alterações feitas:

#reboot

Inicie a sessão como root, pare a execução do freeRADIUS, de forma poder executar o debug para visualizar se há

algum erro:

#sudo /etc/init.d/freeradius stop

#sudo freeradius -XXX

Após o debug executado, irá surgir com sucesso o seguinte resultado no terminal:

Nota:(Control+C para sair ou cancelar)

Se aqui neste passo, surgiu algum erro. Então, o resultado do debug indicará a origem do erro e dessa forma terá

corrigir consoante o file e a linha de código que indicará.

Seguidamente, teste a autorização de password para o ficheiro, de forma se o freeRADIUS está aceitar

autorizações para prosseguir para o próximo passo:

$sudo radtest "John Doe" hello 127.0.0.1 0 radiussecret

Irá surgir um resultado parecido como o seguinte:

Page 17: 59278727 Ubuntu Hotspot Coovachilli Free Radius Lamp

Servidor de Radius - Hotspot

15

Sending Access-Request of id 136 to 127.0.0.1 port 1812 User-Name = "John Doe" User-Password = "hello" NAS-IP-Address = 255.255.255.255 NAS-Port = 0 rad_recv: Access-Accept packet from host 127.0.0.1:1812, id=136, length=37 Reply-Message = "Hello, John Doe"

Explicar a lógica do comando:

radtest → comando útil para testar login do freeRADIUS "John Doe" → utilizador que foi activado no arquivo hello → senha do utilizador localhost → maquina ou IP onde de encontra o servidor de Radius 1812 → porta onde está a escutar radiussecret → palavra secreta do freeRADIUS

Se neste ponto, o retorno dos testes surgiram negativos. Convém fazer uma revisão nos arquivos editados e

verificar o problema, para que nos próximos passos se suceda sem qualquer problema.

Mudar a autorização para SQL

Se os testes anteriores estão a funcionar correctamente, então já pode fazer alteração da autorização do “file”

para “sql”. Isto é, ligar as contas e autorizações dos utilizadores no freeRADIUS à base dados (radius) que criou no

Mysql.

Vá novamente a este arquivo /etc/freeradius/sql.conf:

#nano –w /etc/freeradius/sql.conf

Tire o cardinal (#) na seguinte linha:

#readclients = yes

Ficando da seguinte forma, salve e feche:

readclients = yes

Edite agora o arquivo /etc/freeradius/sites-enabled/default. Este arquivo é mais extenso e convém ter atenção à

sua edição. Em primeiro lugar irá adicionar o cardinal (#), comentar a linha de código onde se encontra a palavra

“files” e depois terá que remover todos cardinais onde encontram as palavras “sql” nas respectivas secções:

authorize { files # sql } accounting { # sql } session { # sql }

Page 18: 59278727 Ubuntu Hotspot Coovachilli Free Radius Lamp

Servidor de Radius - Hotspot

16

Ficando da seguinte forma:

authorize { # files sql } accounting { sql } session { sql } Já para finalizar a configuração da autorização, terá que editar o seguinte arquivo /etc/freeradius/radiusd.conf:

#nano /etc/freeradius/radiusd.conf

E tirar o cardinal (#) na seguinte linha:

#$INCLUDE sql.conf

De forma ficar assim:

#$INCLUDE sql.conf

Nota: Esta edição no arquivo /etc/freeradius/radiusd.conf só se aplica à versão 2.X.X do freeRADIUS.

Adicionar e testar utilizador

Agora teste o funcionamento de registo de utilizadores no Mysql para autenticação no freeRADIUS, registando

um utilizador e verificar a conexão:

#mysql –u root -p

Enter password:

mysql>use radius;

mysql>INSERT INTO radcheck (UserName, Attribute, Value) VALUES ('utilizadorteste',

'Password', 'passteste');

mysql>exit;

bye

Agora reinicie o freeRADIUS e teste a conexão:

#/etc/init.d/freeradius restart

#radtest utilizadorteste passteste 127.0.0.1 1812 radiussecret

Se obteve um resultado positivo, como exemplo:

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

Então, o freeRADIUS e o Mysql já estão configurados! Caso contrário, terá que rever passo por passo até

encontrar o problema.

Page 19: 59278727 Ubuntu Hotspot Coovachilli Free Radius Lamp

Servidor de Radius - Hotspot

17

Instalação do CoovaChilli

O CoovaChilli é aplicação que fará a distribuição de IP (o serviço DHCP), e fornece a página de autenticação para o

utilizador, registado no freeRADIUS, entrar com os seus dados.

O CoovaChilli não se encontra nos repositórios do Ubuntu nem do Debian, portanto terá que descarregar da

página oficial: http://coova.org/CoovaChilli

Mas, facilitando as coisas pode descarregar e instalar pelo terminal rapidamente pela seguinte forma:

#cd /tmp && wget 'http://ap.coova.org/chilli/coova-chilli_1.2.5_i386.deb' && dpkg -i

coova-chilli_1.2.5_i386.deb

Em certos casos, terá que instalar as dependências que favorecem o correcto funcionamento do CoovaChilli. Use

estes comandos caso seja pedido para corrigir as dependências:

#cd /tmp

#wget http://security.ubuntu.com/ubuntu/pool/main/o/openssl/libssl-dev_0.9.8g-

4ubuntu3.13_i386.deb

#dpkg -i libssl*deb

#aptitude install libssl-dev

#wget http://ftp.es.debian.org/debian/pool/main/o/openssl/libssl0.9.8_0.9.8g-

15+lenny11_i386.deb

#dpkg -i libssl0.9*.deb

Configuração do CoovaChilli

Uma vez, já instalado, é hora de o configurar. Para isso, basta copiar o arquivo defaults que está na directoria

/etc/chilli/ para o nome config e neste edita-lo a sua configuração.

#cp /etc/chilli/defaults /etc/chilli/config

Nota: Pode visualizar ajuda dos manuais do CoovaChilli em http://coova.org/CoovaChilli/ManPages. Ou usar o

comando man chilli.

Edite o arquivo config que acabou de criar, a partir da linha 12 até a 85 – troque pelos valores que deseja atribuir:

HS_WANIF=eth0 # WAN Interface toward the Internet HS_LANIF=eth1 #Subscriber Interface for client devices HS_NETWORK=10.1.0.0 #HotSpot Network (must include HS_UAMLISTEN) HS_NETMASK=255.255.255.0 # HotSpot Network Netmask HS_UAMLISTEN=10.1.0.1 # HotSpot IP Address (on subscriber network) HS_UAMPORT=3990 # HotSpot UAM Port (on subscriber network) HS_UAMUIPORT=4990 #HotSpot UAM "UI" Port (on subscriber network, for embedded portal) #HS_DYNIP= #HS_DYNIP_MASK=255.255.255.0 #HS_STATIP= #HS_STATIP_MASK=255.255.255.0 #HS_DNS_DOMAIN= #OpenDNS Servers HS_DNS1=192.168.2.1

Page 20: 59278727 Ubuntu Hotspot Coovachilli Free Radius Lamp

Servidor de Radius - Hotspot

18

HS_DNS2=192.168.3.57 HS_NASID=nas01 HS_RADIUS=localhost HS_RADIUS2=localhost HS_UAMALLOW=10.1.0.0/24,192.168.10.11 HS_RADSECRET=radiussecret # Set to be your RADIUS shared secret HS_UAMSECRET=palavra.secreta.chilli # Set to be your UAM secret HS_UAMALIASNAME=chilli #The server to be used in combination with HS_UAMFORMAT to #create the final chilli 'uamserver' url configuration. HS_UAMSERVER=$HS_UAMLISTEN #Use HS_UAMFORMAT to define the actual captive portal url. #Shell variable replacement takes place when evaluated, so here #HS_UAMSERVER is escaped and later replaced by the pre-defined #HS_UAMSERVER to form the actual "--uamserver" option in chilli. HS_UAMFORMAT=https //:\$ HS_UAMSERVER/cgi-bin/hotspotlogin.cgi #Same principal goes for HS_UAMHOMEPAGE. HS_UAMHOMEPAGE=http //:\$ HS_UAMLISTEN :\$ HS_UAMPORT/www/coova.html #This option will be configured to be the WISPr LoginURL as well #as provide "uamService" to the ChilliController. The UAM Service is #described in: http://www.coova.org/CoovaChilli/UAMService HS_UAMSERVICE=https://10.1.0.1/cgi-bin/hotspotlogin.cgi

Nota: Todo o IP usado na configuração (10.1.0.1) pode troca-lo conforme o IP que deseja ser atribuído à rede local.

Desta forma terá que substituir sempre este IP de exemplo, pelo pretendido.

Crie duas directorias em /etc/chilli/www com nome images e uam, como a seguinte forma:

#cd /etc/chilli/www

#mkdir images uam

Descarregue os seguintes arquivos ficheiros na directoria /etc/chilli/www/uam:

#cd /etc/chilli/www/uam

#wget http://ap.coova.org/uam/

#wget http://ap.coova.org/js/chilli.js

Ainda na mesma directoria onde descarregou os ficheiros, agora edite-os. Começando pelo arquivo index.html:

#nano index.html

Adicione o IP que atribuiu para rede local, substituindo o de exemplo, 10.1.0.1, por volta da linha 85 no arquivo:

<script id='chillijs' src='http://10.1.0.1/uam/chilli.js'></script>

Edite arquivo chilli.js:

#nano ChilliLibrary.js

Page 21: 59278727 Ubuntu Hotspot Coovachilli Free Radius Lamp

Servidor de Radius - Hotspot

19

Por volta da linha 81, edite os campos host e port, com os respectivos valores para igualar à forma do exemplo

seguinte, deixando o campo uamService em branco:

if (!chilliController || !chilliController.host) var chilliController = { interval:30 , host:"10.1.0.1" , port:3990 , ident:'00' , ssl:false , uamService: };

Active o arranque automático do CoovaChilli durante o boot do Sistema Operativo:

#nano -w /etc/default/chilli

Trocando o valor 0 pelo 1:

START_CHILLI=1 CONFFILE="/etc/chilli.conf"

Testar a configuração

Execute o debug para verificar se existe algum problema na configuração:

#chilli –f –d

Nota: Caso, no debug, indique que o IP já está em uso. Use o comando netstat –pnl para verificar o PID do

processo que o está usar. Depois disso, basta usar o comando kill -9 para matar esse processo.

Configuração da página de Login

No entanto falta mesmo configurar a página de login onde os utilizadores deverão inserir os dados para estarem

autenticados na rede.

O CoovaChilli já tem essa página por defeito em exemplos, bastando apenas executar o seguinte comando:

#zcat -c /usr/share/doc/coova-chilli/hotspotlogin.cgi.gz > /usr/lib/cgi-bin/hot

spotlogin.cgi

Edite a página de login, configurando a uamsecret para os valores que configurou anteriormente no

/etc/chilli/config:

#nano –w /usr/lib/cgi-bin/hotspotlogin.cgi

$uamsecret = "palavra.secreta.chilli"; $uamsecret = "palavra.secreta.chilli"; Nota: Pode sempre alterar a palavra-chave (uamsecret) que configurou no arquivo config do chilli, mas não se

esqueça que também tem que a alterar nos outros arquivos onde definiu.

Page 22: 59278727 Ubuntu Hotspot Coovachilli Free Radius Lamp

Servidor de Radius - Hotspot

20

Neste momento, terá que configurar um VirtualHost para aceitar as conexões ao servidor. Criando um arquivo

com o comando touch na directoria /etc/apache2/sites-available/ e abra-o com o comando nano.

#touch /etc/apache2/sites-available/hotspot

#nano –w /etc/apache2/sites-available/hotspot

E copie todo este conteúdo abaixo e cole-o no arquivo hotspot que acabou de criar e abrir com o comando nano.

NameVirtualHost 10.1.0.1:443 <VirtualHost 10.1.0.1:443> ServerAdmin [email protected] DocumentRoot "/var/www/hotspot" ServerName "10.1.0.1" <Directory "/var/www/hotspot/"> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> Alias "/dialupadmin/" "/usr/share/freeradius-dialupadmin/htdocs/" <Directory "/usr/share/freeradius-dialupadmin/htdocs/"> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </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/hotspot-error.log LogLevel warn CustomLog /var/log/apache2/hotspot-access.log combined ServerSignature On SSLEngine on SSLCertificateFile /etc/apache2/ssl/apache.pem </VirtualHost>

Agora active, com o comando seguinte e posteriormente reinicie o apache2:

#a2ensite hotspot

#/etc/init.d/apache2 restart

Page 23: 59278727 Ubuntu Hotspot Coovachilli Free Radius Lamp

Servidor de Radius - Hotspot

21

Copie o conteúdo de /etc/chilli/www/ para a directoria /var/www/ e copie a imagem coova.jpg para a pasta

images dentro da directoria /var/www/hotspot/:

#cp -R /etc/chilli/www/ /var/www/hotspot

#cp /var/www/hotspot/coova.jpg /var/www/hotspot/images/

Posteriormente mude as permissões desta forma, comando após comando:

# chown -R www-data.www-data /var/www/hotspot/

# chown -R www-data.www-data /var/www/hotspot/*

# chown -R www-data.www-data /usr/lib/cgi-bin/hotspotlogin.cgi

# chmod 777 /usr/lib/cgi-bin/hotspotlogin.cgi

Instalação e configuração do Haserl

Haserl é uma pequena aplicação que usa shell ou Lua script para criar scripts .cgi em páginas web. É um

complemento necessário para o funcionamento da autenticação do CoovaChilli. Visto que, é necessário suporte

para visualização da página onde o utilizador fará a autenticação (hotspotlogin.cgi).

Comece por descarregar com o seguinte comando:

#cd /tmp && wget http://downloads.sourceforge.net/project/haserl/haserl-

devel/0.9.27/haserl-0.9.27.tar.gz

Agora, extraia e instale a aplicação, facilmente com os seguintes comandos.

#tar –xzf haserl-0.9.27.tar.gz && cd /tmp/haserl-0.9.27

#./configure

#make

#make install

Configurando o Haserl no CoovaChilli, edite o arquivo /etc/chilli/wwwsh:

#nano /etc/chilli/wwwsh

Comente a seguinte linha de código:

#haserl=$(which haserl 2>/dev/null) haserl="/usr/local/bin/haserl"

E adicione a baixo da mesma linha a seguinte linha de código, como exemplo:

#haserl=$(which haserl 2>/dev/null) haserl="/usr/local/bin/haserl"

Edite agora o arquivo /etc/chilli/up.sh, adicionando as seguintes linhas de código no final do arquivo:

# may not have been populated the first time; run again [ -e "/var/run/chilli.iptables" ] && sh /var/run/chilli.iptables 2>/dev/null # force-add the final rule necessary to fix routing tables iptables -I POSTROUTING -t nat -o $HS_WANIF -j MASQUERADE

Page 24: 59278727 Ubuntu Hotspot Coovachilli Free Radius Lamp

Servidor de Radius - Hotspot

22

Para terminar, actualize os scripts para que tomem as funções definidas, com o seguinte comando:

#sudo update-rc.d chilli defaults

Pronto! Reinicie o computador e verifique no Bootlog se os serviços (chilli + freeradius + apache2 ) estão a iniciar

com êxito. Ligue-se ao servidor através de wireless ou pela interface eth1 do servidor e verifique se o CoovaChilli

está a distribuir IP e a fornecer a página de autenticação. Se sim, tem o Hotspot configurado com sucesso!

Nota: É possível personalizar a página web em html, editando o arquivo hotspotlogin.cgi em /usr/lib/cgi-bin/

como também a página de “splash” que redirecciona para a página de autenticação (/etc/chilli/www/coova.html).

Page 25: 59278727 Ubuntu Hotspot Coovachilli Free Radius Lamp

Servidor de Radius - Hotspot

23

WEB interfaces

DaloRADIUS

DaloRADIUS é uma ferramenta de gestão de servidor de RADIUS avançada destinado a manuseamento de

Hotspots e implementação geral de ISP. Possui gestão de utilizadores, relatórios gráficos, contabilidade,

facturamento e um motor de pesquisa de localização geográfica do GoogleMaps.

Instalação

Para poder instalar o DaloRADIUS terá que o descarregar da página oficial , ou facilmente pelo terminal:

#cd /tmp

#wget http://downloads.sourceforge.net/project/daloradius/daloradius/daloradius0.9-

9/daloradius-0.9-9.tar.gz

A instalação é nada mais nada menos que extrair o conteúdo e movê-lo para a directoria /var/www:

#tar –xzf daloradius-0.9-9.tar.gz

#mv /tmp/daloradius-0.9-9 /var/www/daloradius

Page 26: 59278727 Ubuntu Hotspot Coovachilli Free Radius Lamp

Servidor de Radius - Hotspot

24

Configuração

A configuração do DaloRADIUS é feita a partir da edição do arquivo daloradius.conf.php localizado na directoria

/var/www/daloradius/library/. Conforme os dados que definiu nos serviços, os mesmos são alterados nos

respectivos campos que fazem interface com os serviços que foram instalados anteriormente como o Mysql e o

freeRADIUS:

$configValues['FREERADIUS_VERSION'] = '2;' $configValues['CONFIG_DB_ENGINE'] = 'mysql;' $configValues['CONFIG_DB_HOST'] = 'localhost;' $configValues['CONFIG_DB_PORT'] = '3306;' $configValues['CONFIG_DB_USER'] = 'root;' $configValues['CONFIG_DB_PASS'] = 'radiussecret;'! $configValues['CONFIG_DB_NAME'] = 'radius;' $configValues['CONFIG_PATH_DALO_VARIABLE_DATA'] = '/var/www/daloradius/var;' $configValues['CONFIG_DB_PASSWORD_ENCRYPTION'] = 'cleartext;'

$ configValues['CONFIG_LOG_PAGES'] = 'yes;' $configValues['CONFIG_LOG_ACTIONS'] = 'yes;' $configValues['CONFIG_LOG_QUERIES'] = 'yes;' $configValues['CONFIG_DEBUG_SQL'] = 'yes;' $configValues['CONFIG_DEBUG_SQL_ONPAGE'] = 'yes;' $configValues['CONFIG_LOG_FILE'] = '/var/log/freeradius/radius.log;' $configValues['CONFIG_IFACE_PASSWORD_HIDDEN'] = 'no;' $configValues['CONFIG_IFACE_TABLES_LISTING'] = '25;' $configValues['CONFIG_IFACE_TABLES_LISTING_NUM'] = 'yes;' $configValues['CONFIG_IFACE_AUTO_COMPLETE'] = 'yes;' $configValues['CONFIG_MAINT_TEST_USER_RADIUSSERVER'] = '127.0.0.1;' $configValues['CONFIG_MAINT_TEST_USER_RADIUSPORT'] = '1812;' $configValues['CONFIG_MAINT_TEST_USER_NASPORT'] = '0;' $configValues['CONFIG_MAINT_TEST_USER_RADIUSSECRET'] = 'radiussecret;'!

Pronto!

Basta abrir o navegador, digitar o endereço do servidor na rede http://ip.do.seu.servidor/daloradius/ e iniciar a sessão com os dados de autenticação por defeito, do DaloRADIUS:

Username: administrator

Password: radius

Page 27: 59278727 Ubuntu Hotspot Coovachilli Free Radius Lamp

Servidor de Radius - Hotspot

25

Gestão de utilizadores

Adicionar um utilizador. Na secção Management seleccione “New User” ou “New User – Quick Add”:

Basta depois inserir os dados de utilizador (username e password), tem também outras opções conforme queira

adicionar o utilizador.

Para visualizar a actividade do utilizador no servidor enquanto Online, na secção Reports seleccione Online Users.

Page 28: 59278727 Ubuntu Hotspot Coovachilli Free Radius Lamp

Servidor de Radius - Hotspot

26

Webmin

Webmin é uma interface que permite administrar o seu Unix/Linux a partir de um navegador Web. É uma

poderosa interface, com ferramentas essenciais onde nele pode fazer toda a gestão de serviços. Tem a

possibilidade de ser aceder ao Webmin remotamente com apenas o uso de um navegador.

Tudo é feito a partir de uma interface simples e fácil de utilizar. Todas as tarefas realizadas com Webmin podem

também ser realizadas por telnet.

Instalação

Pode descarregá-lo através do Website oficial: http://www.webmin.com/index.html

Page 29: 59278727 Ubuntu Hotspot Coovachilli Free Radius Lamp

Servidor de Radius - Hotspot

27

Ou por outro lado, seguir facilmente os seguintes comandos, no terminal. Para satisfazer a instalação do Webmin

tem que instalar 1º algumas dependências:

#apt-get install libnet-ssleay-perl libauthen-pam-perl libio-pty-perl libapt-pkg-

perl apt-show-versions

Posteriormente, descarregue e instale:

#cd /tmp && wget http://prdownloads.sourceforge.net/webadmin/webmin_1.550_all.deb

#dpkg -i webmin_1.550_all.deb

Instalação com êxito:

Webmin install complete. You can now login to https://localhost:10000/ as root with your root password, or as any user who can use sudo to run commands as root.

Pronto!

Vá até ao navegador insira o seu endereço de IP juntamente com a porta 10000, entre com os dados de utilizador

ou administrador do seu sistema operativo: https://ip.do.seu.servidor:10000/

SERVIDOR PRONTO E FINALIZADO!

Page 30: 59278727 Ubuntu Hotspot Coovachilli Free Radius Lamp

Webgrafia

28

Webgrafia

https://help.ubuntu.com/community/WifiDocs/CoovaChilli

http://wiki.freeradius.org/RADIUS-Clients

http://coova.org/search/node/index.php/CoovaChilli

http://coova.org/CoovaChilli/Documentation

http://www.vivaolinux.com.br/artigo/Hotspot-rapido-com-Coovachilli/

https://help.ubuntu.com/community/CategoryNetworking/daloRADIUS

http://linux.xvx.cz/2010/03/debian-wi-fi-hotspot-using-coovachilli-freeradius-mysql-and-daloradius/

http://www.multiplicity.dk/2006/10/chillispot-howto/

http://www.pdfwindows.com/pdf/freeradius-ubuntu-pdf/