daniel-xavier
(usa Debian)
Enviado em 07/08/2013 - 08:11h
Olá.
Bom tenho alguns problemas ainda com o Coova, mas com senhas em texto puro consegui fazer funcionar.
Caso eu posso te ajudar mande ai suas perguntas.
Aqui vou te passar um tutorial que montei a partir de várias informações coletadas, então pode ter alguma coisa fora de lugar, vamos nos falando e nos ajudando.
Espero que te ajude:
Primeiro é preciso instalar o Debian 7 em 32 bits.
Faça a instalação básica, na seleção de pacotes só coloquei como extra o servidor ssh.
Após a instalação e o reinicio do servidor entre com o usuário e senha fornecido durante a instalação e atribua uma senha ao usuário root:
Configuração de rede inicial
Logue-se como root, verifique as configurações de rede:
Edite o arquivo /etc/network/interfaces, deixando da seguinte forma ( mude os IPs da ETH0 e DNS para a faixa da sua rede a ETH1 não tem necessidade de mexer):
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
# Interface WAN
allow-hotplug eth0
iface eth0 inet static
address 10.19.20.248
netmask 255.255.255.0
network 10.19.20.0
broadcast 10.19.20.255
gateway 10.19.20.222
# Interface LAN
auto eth1
iface eth1 inet static
address 10.19.100.5
netmask 255.255.255.0
broadcast 10.19.100.255
network 10.19.100.0
# dns-* options are implemented by the resolvconf package, if installed
dns-nameservers 10.19.20.222 8.8.8.8
dns-search coova.com.br
Inverta os cabos de rede se necessário, reinicie a rede e verifique novamente:
# reboot
Estando tudo ok, grave bem o IP da interface eth0 caso for utilizar o putty.
Atualização e pré-instalação dos pacotes
A partir desse ponto eu utilizei o putty no Windows, devido a mobilidade, você pode fazer o mesmo. Fica mais fácil copiar e colar os comandos, execute a atualização:
Edite o arquivo source.list, deixe assim:
# nano /etc/apt/sources.list
#
# deb cdrom:[Debian GNU/Linux 7.0.0 _Wheezy_ - Official i386 CD Binary-1 20130504-15:20]/ wheezy main
#deb cdrom:[Debian GNU/Linux 7.0.0 _Wheezy_ - Official i386 CD Binary-1 20130504-15:20]/ wheezy main
deb
http://ftp.br.debian.org/debian/ wheezy main
deb-src
http://ftp.br.debian.org/debian/ wheezy main
deb
http://security.debian.org/ wheezy/updates main
deb-src
http://security.debian.org/ wheezy/updates main
# wheezy-updates, previously known as 'volatile'
deb
http://ftp.br.debian.org/debian/ wheezy-updates main
deb-src
http://ftp.br.debian.org/debian/ wheezy-updates main
# Repositorio para Webmim
deb
http://download.webmin.com/download/repository sarge contrib
deb
http://webmin.mirror.somersettechsolutions.co.uk/repository sarge contrib
# apt-get update
# apt-get upgrade
Baixe o pacote do logo
apt-get install linuxlogo
Faça cópia de segurança do arquivo original
cp /etc/issue /etc/issue.bak
Faça a troca pelo arquivo novo
cp /etc/issue.linuxlogo /etc/issue
E instale os pacotes:
# apt-get install mysql-server phpmyadmin freeradius freeradius-utils freeradius-mysql apache2 php-pear php-db mc bind9 liblua5.1-0 dpkg-dev debhelper libssl-dev haserl
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
apt-get install mysql-server phpmyadmin freeradius freeradius-utils freeradius-mysql apache2 php-pear php-db phpmyadmin mc bind9 liblua5.1-0
Lendo listas de pacotes... Pronto
Construindo árvore de dependências
Lendo informação de estado... Pronto
Os pacotes extra a seguir serão instalados:
apache2-mpm-prefork apache2-utils apache2.2-bin apache2.2-common bind9utils dbconfig-common fontconfig-config freeradius-common libaio1
libapache2-mod-php5 libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap libdbd-mysql-perl libdbi-perl libffi5 libfontconfig1 libfreeradius2
libgd2-xpm libglib2.0-0 libglib2.0-data libhtml-template-perl libjpeg8 libltdl7 libmcrypt4 libmysqlclient18 libnet-daemon-perl libonig2 libpcap0.8
libperl5.14 libplrpc-perl libpng12-0 libpython2.7 libqdbm14 libxpm4 mc-data mysql-client-5.5 mysql-common mysql-server-5.5 mysql-server-core-5.5 php5-cli
php5-common php5-gd php5-mcrypt php5-mysql shared-mime-info ssl-cert ttf-dejavu-core unzip
Pacotes sugeridos:
apache2-doc apache2-suexec apache2-suexec-custom bind9-doc resolvconf ufw virtual-mysql-client mysql-client postgresql-client freeradius-ldap
freeradius-postgresql freeradius-krb5 libgd-tools libipc-sharedcache-perl libmcrypt-dev mcrypt zip arj xpdf pdf-viewer dbview odt2txt gv catdvi
djvulibre-bin imagemagick python-boto python-tz libterm-readkey-perl tinyca php5-dev openssl-blacklist
Os NOVOS pacotes a seguir serão instalados:
apache2 apache2-mpm-prefork apache2-utils apache2.2-bin apache2.2-common bind9 bind9utils dbconfig-common fontconfig-config freeradius freeradius-common
freeradius-mysql freeradius-utils libaio1 libapache2-mod-php5 libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap libdbd-mysql-perl libdbi-perl
libffi5 libfontconfig1 libfreeradius2 libgd2-xpm libglib2.0-0 libglib2.0-data libhtml-template-perl libjpeg8 libltdl7 liblua5.1-0 libmcrypt4
libmysqlclient18 libnet-daemon-perl libonig2 libpcap0.8 libperl5.14 libplrpc-perl libpng12-0 libpython2.7 libqdbm14 libxpm4 mc mc-data mysql-client-5.5
mysql-common mysql-server mysql-server-5.5 mysql-server-core-5.5 php-db php-pear php5-cli php5-common php5-gd php5-mcrypt php5-mysql phpmyadmin
shared-mime-info ssl-cert ttf-dejavu-core unzip
0 pacotes atualizados, 61 pacotes novos instalados, 0 a serem removidos e 0 não atualizados.
à preciso baixar 35,9 MB de arquivos.
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
Durante a instalação dos pacotes será solicitada uma senha para o servidor mysql grave bem essa senha.
Configuração do apache2
Habilite o modulo ssl no apache2
# a2enmod ssl
# a2ensite default-ssl
# /etc/init.d/apache2 restart
E vamos ao primeiro teste. No navegador de internet digite
http://xxx.xxx.xxx.xxx, onde xxx.xxx.xxx.xxx é o ip o seu servidor. Deve aparecer a página inicial do apache, em seguida digite
https://xxx.xxx.xxx.xx, deve aparecer a mesma página anterior ou a mensagem de erro de certificado.
Instalação do daloradius
Agora vamos instalar o daloradius, uma interface gráfica em web para auxiliar na criação de usuários:
# cd /tmp
# wget 'http://downloads.sourceforge.net/project/daloradius/daloradius/daloradius-0.9-8/daloradius-0.9-8.tar.gz'
# tar xvzf daloradius-0.9-8.tar.gz
# mv /tmp/daloradius-0.9-8 /var/www/daloradius
# chown -R www-data:www-data /var/www/daloradius
# cp -r /var/www/daloradius/contrib/chilli/portal2/* /var/www/
# rm /var/www/index.html
Próxima página >>
Configurações
Configuração do freeradius
Agora vamos configurar o freeradius:
# nano /etc/freeradius/clients.conf
Dentro da sessão "cliente localhost {", troque a senha da linha secret conforme o exemplo:
secret = testing123
Edite o arquivo /etc/freeradius/sql.conf, alterando os parâmetros:
server =
login =
password = ( aqui você coloca a senha do mysql fornecida durante a instalação do mysql)
# nano /etc/freeradius/sql.conf
# Connection info:
server = "localhost"
#port = 3306
login = "root"
password = "XXXXXXX" senha do banco
No arquivo /etc/freeradius/sites-available/default, descomente as linhas sql dentro das sessões "authorize {" e "accounting {":
# nano /etc/freeradius/sites-available/default
authorize {
sql
}
accounting {
sql
}
No arquivo /etc/freeradius/radiusd.conf descomente a linha #$INCLUDE sql.conf:
# nano /etc/freeradius/radiusd.conf
$INCLUDE sql.conf
Habilite isso na seção logs do radiusd.conf para acompanhar a autenticacao do usuarios:
auth = yes
auth_badpass = yes
auth_goodpass = yes
Criação do banco de dados
Agora vamos criar o banco de dados do radius no mysql:
# mysql -u root -p
Entre com a senha do mysql e digite os seguintes comandos:
mysql> CREATE DATABASE radius;
mysql> exit
Com o banco de dados criado vamos criar as tabelas necessárias:
OBS: dentro do arquivo deve-se trocar a palavra timestamp por varchar, antes de rodar o comando abaixo
# nano /var/www/daloradius/contrib/db/fr2-mysql-daloradius-and-freeradius.sql
# mysql -u root -p radius < /var/www/daloradius/contrib/db/fr2-mysql-daloradius-and-freeradius.sql
Configuração do daloradius
Modifique o arquivo /var/www/daloradius/library/daloradius.conf.php:
nano /var/www/daloradius/library/daloradius.conf.php
$configValues['DALORADIUS_VERSION'] = '0.9-8';
$configValues['FREERADIUS_VERSION'] = '1';
$configValues['CONFIG_DB_ENGINE'] = 'mysql';
$configValues['CONFIG_DB_HOST'] = '127.0.0.1';
$configValues['CONFIG_DB_USER'] = 'root';
$configValues['CONFIG_DB_PASS'] = 'senha do banco'; # Senha no MySQL
$configValues['CONFIG_DB_NAME'] = 'radius';
$configValues['CONFIG_DB_TBL_RADUSERGROUP'] = 'radusergroup';
No arquivo /var/www/signup-free/index.php troque "User-Password" por "Cleartext-Password" e troque "==" por ":=" :
# nano /var/www/signup-free/index.php
$sql = "INSERT INTO ".$configValues['CONFIG_DB_TBL_RADCHECK']." (id, Username, Attribute, op, Value) ".
" VALUES (0, '$username', 'Cleartext-Password', ':=', '$password')";
E vamos preparar o daloradius para comunicar com o chillispot:
# nano /var/www/hotspotlogin/hotspotlogin.php
Troque a senha na linha abaixo:
$uamsecret = "uamsecret";
Testando e Finalizando
Teste do freeradius
Reinicie o freeradius:
# /etc/init.d/freeradius restart
Vamos testar, no navegador vá para
https://10.19.20.248/daloradius/ entre com o usuário administrator e senha radius,
vá em Management,
depois em new user,
forneça um nome de usuário
e uma senha, por exemplo: usuário dxavier e senha 123.
Em password type escolha ClearText-Password e
clique em apply, no terminal execute:
# radtest dxavier 123 localhost 0 testing123
Se aparecer:
Sending Access-Request of id 240 to 127.0.0.1 port 1812
User-Name = "dxavier"
User-Password = "123"
NAS-IP-Address = 10.19.20.248
NAS-Port = 0
Message-Authenticator = 0x00000000000000000000000000000000
rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=240, length=20
Está tudo ok!
Caso contrário revise as configurações.
Instalação e configuração do coovachilli
#####################################################################################
Vamos lá:
#cd /tmp
# wget
http://ap.coova.org/chilli/coova-chilli_1.2.6_i386.deb
# dpkg -i coova-chilli_1.2.6_i386.deb
OBS: caso de erros baixe o seguinte, verifique a mensagem pode estar faltando este pacote abaixo
wget
http://ftp.br.debian.org/debian/pool/main/o/openssl/libssl0.9.8_0.9.8o-4squeeze14_i386.deb
Execute o comando abaixo:
dpkg -i libssl0.9.8_0.9.8o-4squeeze14_i386.deb
Repita o passo
# dpkg -i coova-chilli_1.2.6_i386.deb
Edite o arquivo
# nano /etc/init.d/chilli e mude a linha
START_CHILLI=0
para
START_CHILLI=1
Pronto, Coova instalado!
#####################################################################################
Pare o freeradius:
# /etc/init.d/freeradius stop
Logo após, digite:
# insserv -vf chilli
Vamos para a configuração do CoovaChilli. Primeiro copie o arquivo padrão para o de configuração:
# cp -a /etc/chilli/defaults /etc/chilli/config
Segundo, mude para ativo a inicialização do arquivo /etc/default/chilli:
START_CHILLI=1
Edite o arquivo /etc/chilli/config
Nesta versão do Coova, alterei uma configuração, pois o restante estava tudo "no padrão", apenas a variável que diz onde o Coova vai trabalhar o servidor primário de DNS:
HS_LANIF=eth1 # Verificar qual sua ETH é sua placa de LAN
HS_DNS1=10.19.20.222
Crie um arquivo com nome "firewall.coova" dentro da pasta /etc/ com o seguinte conteudo:
# nano /etc/firewall.coova
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
#!/bin/bash
#
### BEGIN INIT INFO
# Provides: firewall
# Required-Start: $network
# Required-Stop: $network
# Default-Start: S
# Default-Stop: 0 1 6
# Short-Description: Provides Firewall Rules based on Iptables IPV4
### END INIT INFO
#
IFACEWAN=eth0
IFACECOOVA=eth1
NETCOOVA=10.1.0.0/24
#
## RULES STARTS -->
# Chains off CoovaChilli ...
iptables -N coova-INPUT &> /dev/null
iptables -N coova-FORWARD &> /dev/null
iptables -t mangle -N coova-FORWARD &> /dev/null
iptables -t nat -N coova-PREROUTING &> /dev/null
# Active traffic on Interfaces
echo 1 > /proc/sys/net/ipv4/ip_forward
# disabling Reverse Path Filter used to check if the
# packets are leaving the server are returns by same interface ...
echo 1 > /proc/sys/net/ipv4/conf/default/rp_filter
# Load Module IpTable
modprobe iptable_nat
#####################################################
## FILTER INPUT RULES ##
#####################################################
# DEFAULT POLICY TO INPUT PACKETS AND CLEAN RULES
iptables -t filter -F INPUT
iptables -t filter -P INPUT ACCEPT
iptables -t filter -P INPUT DROP
# SSH Accept Everything
iptables -t filter -A INPUT -p tcp --dport 22 -j ACCEPT
# Ping - ICMP packets
iptables -t filter -A INPUT -p icmp -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
iptables -A INPUT -p icmp --icmp-type destination-unreachable -j ACCEPT
iptables -A INPUT -p icmp --icmp-type time-exceeded -j ACCEPT
# Established outgoing TCP connections
iptables -t filter -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
# Local and Loopback
iptables -t filter -A INPUT -i lo -j ACCEPT
iptables -t filter -A INPUT -s 127.0.0.0/8 -j ACCEPT
# from proto & port
iptables -t filter -A INPUT -p tcp --dport 53 -j ACCEPT
iptables -t filter -A INPUT -p udp --dport 53 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 80 -j ACCEPT
# DHCP
iptables -t filter -A INPUT -p tcp --dport 67:68 -j ACCEPT
iptables -t filter -A INPUT -p udp --dport 67:68 -j ACCEPT
# Coova
iptables -A INPUT -j coova-INPUT
# Fecha conexao na Interface de acesso ao Hotspot
iptables -t filter -A INPUT -i ${IFACECOOVA} -j DROP
iptables -t filter -A INPUT -s ${NETCOOVA} -j coova-INPUT
#####################################################
## FILTER FORWARD RULES ##
#####################################################
# DEFAULT POLICY TO FORWARD PACKETS AND CLEAN RULES
iptables -t filter -F FORWARD
iptables -t filter -P FORWARD ACCEPT
# Established TCP connections
iptables -t filter -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
# Coova
iptables -A FORWARD -j coova-FORWARD
# Bloqueia pacotes vindos do Hotspot destinados as redes ADM
iptables -t filter -A FORWARD -o ${IFACECOOVA} -j DROP
iptables -t filter -A FORWARD -i ${IFACECOOVA} -j DROP
iptables -t filter -A FORWARD -s ${NETCOOVA} -p tcp --dport 53 -j ACCEPT
iptables -t filter -A FORWARD -s ${NETCOOVA} -p udp --dport 53 -j ACCEPT
#######################################################
## NAT PREROUTING RULES ##
#######################################################
# DEFAULT POLICY TO NAT PREROUTING PACKETS AND CLEAN RULES
iptables -t nat -F PREROUTING
# Nao faz nat para redes locais
LOCALNET="192.168.0.0/16 172.16.0.0/12 10.19.100.5/24"
for n in ${LOCALNET}; do
iptables -t nat -A PREROUTING -s ${n} -d 192.168.0.0/16 -j RETURN
iptables -t nat -A PREROUTING -s ${n} -d 172.16.0.0/12 -j RETURN
iptables -t nat -A PREROUTING -s ${n} -d 10.19.100.5/24 -j RETURN
done
# Nat CoovaChilli
iptables -t nat -A PREROUTING -j coova-PREROUTING
#######################################################
## NAT POSTROUTING RULES ##
#######################################################
# DEFAULT POLICY TO NAT POSTROUTING PACKETS AND CLEAN RULES
iptables -t nat -F POSTROUTING
# Nao faz nat para redes locais
LOCALNET="192.168.0.0/16 172.16.0.0/12 10.19.100.5/24"
for n in ${LOCALNET}; do
iptables -t nat -A POSTROUTING -s ${n} -d 192.168.0.0/16 -j RETURN
iptables -t nat -A POSTROUTING -s ${n} -d 172.16.0.0/12 -j RETURN
iptables -t nat -A POSTROUTING -s ${n} -d 10.19.100.5/24 -j RETURN
done
# Mascara Qualquer saida para a Internet
iptables -t nat -A POSTROUTING -o ${IFACEWAN} -j MASQUERADE
#######################################################
## MANGLE PREROUTING RULES ##
#######################################################
# MANGLE PREROUTING PACKETS AND CLEAN RULES
iptables -t mangle -F PREROUTING
#######################################################
## MANGLE FORWARD RULES ##
#######################################################
# MANGLE FORWARD PACKETS AND CLEAN RULES
iptables -t mangle -F FORWARD
# Mangle CoovaChilli
iptables -t mangle -A FORWARD -j coova-FORWARD
#######################################################
## MANGLE OUTPUT RULES ##
#######################################################
# MANGLE OUTPUT PACKETS AND CLEAN RULES
iptables -t mangle -F OUTPUT
#######################################################
## MANGLE POSTROUTING RULES ##
#######################################################
# MANGLE POSTROUTING PACKETS AND CLEAN RULES
iptables -t mangle -F POSTROUTING
exit 0
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
De permissão para ser executado
chmod +x firewall.coova
Depois coloque o caminho no final do texto dentro do arquivo bootmisc
# nano /etc/init.d/bootmisc.h
/etc/firewall.coova
OBS: este é apenas um modelo de firewall, você pode mudar suas configurações depois
*********************************************************************************************************************************************
INFORMAÇÔES DAS TABELAS:
Tabela com as senhas dentro da databese "radius":
use radius;
select * from radcheck; # senhas
*******************************************************************************************************************************************