Hardware e instalação do Ubuntu
Hardware utilizado:
- Servidor com duas placas de rede;
- Notebook com conexão wireless e putty instalado;
- Roteador sem fio tp-link;
- Conexao ADSL pppoe.
Inicialmente o roteador esta acessando a internet, e fornecendo DHCP para a rede, o notebook está conectado ao roteador pela rede com fios, e navegando normalmente, o servidor esta conectado pela rede com fios.
Primeiro é preciso instalar o Ubuntu Server 11.04, versão 32 bits, não consegui instalar com a versão 64 bits.
Vá para
http://www.ubuntu.com/download/server/download, escolha a versão 32 bits e faça o download.
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:
# sudo passwd root
Configuração de rede inicial
Logue-se como root, verifique as configurações de rede:
# ifconfig
A interface eth0 deve estar ativa e com o IP fornecido pelo roteador, caso a interface eth1 esteja configurada e não a eth0, proceda a correção, primeiro pare a rede:
# /etc/init.d/networking stop
Edite o arquivo
/etc/network/interfaces, deixando da seguinte forma:
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
auto eth1
Inverta os cabos de rede se necessário, reinicie a rede e verifique novamente:
# etc/init.d./networking start
# ifconfig
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:
# apt-get update
E instale os pacotes:
# apt-get install mysql-server phpmyadmin freeradius freeradius-utils freeradius-mysql apache2 php-pear php-db phpmyadmin mc bind9
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
[1] Comentário enviado por
Thalysson S em 23/08/2011 - 10:18h:
Gostei. Vou testar !
[2] Comentário enviado por
sr. caridade em 23/08/2011 - 12:51h:
Muito bom. Vou testar assim que chegar em casa.
[3] Comentário enviado por
magnored em 24/08/2011 - 10:10h:
configurei td de acordo com o tuto...
porem qdo eu entro no
http://192.168.1.192/daloradius e digito o login e senha
ele fica numa tela em branco
http://192.168.1.192/daloradius/dologin.php
uso o centos 6 x86,...o que sera q pode ser?
os serviços mysqld, httpd e radiusd estao rodando perfeitamente sem erros
[5] Comentário enviado por
magnored em 24/08/2011 - 10:44h:
respondendo pra mim mesmo...
tive q instalar o repositorio EPEL no Centos para instalar o php-db, agora funcionou
[6] Comentário enviado por
fabianomoura em 29/08/2011 - 08:51h:
Ola Amigo,
fiz conforme descrito no artigo e funcionou perfeitamente, mais tenho um problema.... na tabela radius "radacct" nao esta registrando o acesso dos usuarios, alguma noção do que possa ser?
[7] Comentário enviado por
fabianomoura em 29/08/2011 - 10:42h:
falha minha, descobri o erro, pulei o passo
accounting {
sql
}
[8] Comentário enviado por
iamloco em 30/08/2011 - 12:13h:
tenho uma duvida testei até a parte do site do
https://192.168.182.1/daloradius/ deu tudo ok, criei o user joao e senha 123 e testei deu accept ok
porém tranquei na parte do pppoeconf, o meu modem já está configurado em pppoe tem necessidade de configurar o pppoe do ubuntu? e não tem como deixar ip statico na eth0 como 192.168.1.100 (q é o ip da rede) e eth1 192.168.10.1 e apartir dae espalhar ip's?
[9] Comentário enviado por
edu.vitangelo em 31/08/2011 - 22:14h:
tem sim iamloco, basta vc configurar a eth0 ou por ip estatico ou por dhcp. configurei como pppoe porque pretendo logar a navegacao no squid de modo transparente, lembre-se de mudar a regra do firewall,
um detalhe que nao coloquei no tuto, foi carregar o ipforward . ou no proprio firewall, ou no sysctl.
abraços
[10] Comentário enviado por
edu.vitangelo em 31/08/2011 - 22:20h:
estou desevolvendo um hotspot baseado somente em php, javascript e mysql. muito mais simples e totalmente em portugues, logo logo to publicando aqui, como o meu forte nao é desenvolvimento web, serão telas simples, por isso vou contar com vcs para melhorar o projeto, abraços
[11] Comentário enviado por
edu.vitangelo em 01/10/2011 - 14:18h:
o sistema em php já está bem adiantando
utilizei o debian 6
primeiro instalei o apache, php5, mysql e o phpmyadmin.
adcionei a seguinte linha no /etc/apache2/ports.conf
Listen 12000
no arquivo /etc/apache2/sites-enabled/000-default mudei o NameVirtualHost *:80 para NameVirtualHost * e <VirtualHost *:80> para <VirtualHost *> restartei o apache e testei pelo navegador http://localhost:12000
como resultado abriu a pagina de teste do apache.
instalei o pacote udhcpd e configurei no /etc/udhcpcd.conf:
start 192.168.192.2 # a placa de rede local sevidor é 192.168.192.254
end 192.168.192.20
opt dns 192.168.192.254 # o bind9 esta instalado no servidor como cache
option subnet 255.255.255.0
opt router 192.168.192.254
option lease 864000
inseri a linha /etc/init.d/hotspot no arquivo /etc/rc.local antes da linha exit 0
criei o arquivo /etc/init.d/hotspot:
interna = eth0 # minha placa de rede interna
externa = eth1 # minha placa de rede externa
# zera as regras
iptables -X
iptables -F
iptables -t nat -X
iptables -t nat -F
# carrega o modulo do kernel
modprobe iptable_nat
var=1
contador=2 # o 2 se refere ao primeiro ip fornecido pelo udhcpd
until [$var = "0"]; do
maquina="192.168.192.$contador"
echo -n $maquina
echo " redirecionando para o hotspot"
iptables - t nat -A PREROUNTING -s $maquina -p tcp --dport 80 - j REDIRECT --to-port 12000
if [$contador = 20]; then
var =0
fi
count = 'expre $contador +1 '
done
iptables -t nat -A POSTROUTING -o $externa -j MASQUERADE
exit 0
e tornei o aquivo executável chmod a+x /etc/init.d/hotspot
fiz o teste , conectei uma estacão ao servidor , reiniciei os serviços udhcpd apache e rc.local
ao tentar navegar pela estação foi apresentada a pagina inicial do apache. blz primeira parte pronta
agora onde eu sofro desenvolver a parte web.
[12] Comentário enviado por
edu.vitangelo em 01/10/2011 - 15:07h:
com o phpmyadmin crie um banco de dados nomeado com hotspot
criei uma tabela com o nome usuarios com os campos id (autoincrement) nome(varchar,255) senha(varchar,255) nivel (varchar,10)
inseri os valores adminstrador senhaadm e adm nos campos nome, senha, nivel respectivamente
criei uma pagina em php em /var/www nomeada admin.php, onde posso cadastrar usuarios do sistema
<?
$senha = $_POST['senha'];
$usuario = $_POST['usuario'];
if ($_POST['usuario']){
$mysql_id =mysql_connect('localhost', 'root', 'senha do root no mysql');
$bd = mysql_select_db ('hotspot', $mysql_id) ;
$result = mysql_query(SELECT * FROM usuarios where nome = '$usuario' and senha = '$senha');
$number = mysql_num_rows($result);
if ($number == 0){
echo '
<form action = "#" method = "post">
LOGIN incorreto
<br>
NOME: <input type="text" name="usuario" value="">
<br> SENHA: <input type=password name="senha" value="">
<br> <input type="submit name="submit" value="Enviar">
</form>
';
}else{
while ($x mysql_fecth_row($result)){
if ($x[3] == 'adm'){
$validar = 2;
session_start();
$_SESSION['user'] =$usuario;
$_SESSION['senha'] =$senha;
$_SESSION['validacao'] =$validar;
echo ' <meta http-equiv="refresh" content="1 ;url=cadfun.php">';
}else{
$validar = 1;
session_start();
$_SESSION['user'] =$usuario;
$_SESSION['senha'] =$senha;
$_SESSION['validacao'] =$validar;
echo ' <meta http-equiv="refresh" content="1 ;url=caduser.php">';
}
}
}
}else{
echo '
<br>
NOME: <input type="text" name="usuario" value="">
<br> SENHA: <input type=password name="senha" value="">
<br> <input type="submit name="submit" value="Enviar">
</form>
';
}
?>
após criar essa pagina criei uma tabela no banco de dados chamda hospede comos campos nome, senha,ip
agora vou criar o arquivo cadfun.php, onde vou cadastrar os usuarios do hotspot que vao poder controlar os hospedes, e o arquivo caduser.php onde vou criar os usuarios hospedes.
posto assim que terminar
[13] Comentário enviado por
hfsystem em 01/10/2011 - 23:59h:
Database connection error
Error Message: DB Error: no such database
Debug: [nativecode=1049 ** Unknown database 'root'] ** mysql://root:zadroqfim@127.0.0.1/root
pq esta dando esse erro. onde foi que eu deixe errado.
[14] Comentário enviado por
edu.vitangelo em 02/10/2011 - 17:25h:
posta o conteudo dos arquivos de configuração principalmente esse. /var/www/daloradius/library/daloradius.conf.php
[15] Comentário enviado por
leonardocruz em 14/10/2011 - 14:01h:
Fala galera, blz? seguinte....
Segui os passos deste post e meu Hotspot esta funcioando peerfeitamente. Mas tem um porem agora.
Minha estrutura com Squid e Dansguardian foram pro beleleuu.
O QUE DEVO FAZER PARA TRABALHAR COM O HOTSPOT CRIADO JUNTAMENTE COM O SQUID TRANSPARENT E DANSGUARDIAN? ISSO EH POSSIVEL OU DEVO ESQUECER?
ABRACOS A TODOS AGUARDO UMA AJUDA AEE.
[16] Comentário enviado por
waldson em 25/11/2011 - 17:25h:
Amigo hfsystem vc ainda esta com esse problema
Database connection error
Error Message: DB Error: no such database
Debug: [nativecode=1049 ** Unknown database 'root'] ** mysql://root:zadroqfim@127.0.0.1/root
preste atenção no arquivo que o amigo edu.vitangelo falou
neste arquivo vc deve colocar alguns parametros veja se esta assim.
$configValues['CONFIG_DB_USER'] = 'root';
$configValues['CONFIG_DB_PASS'] = 'suasenha';
$configValues['CONFIG_DB_NAME'] = 'radius';
[17] Comentário enviado por
stephanosouza em 12/12/2011 - 13:03h:
Bom dia,
Ótimo Artigo...
Esta funcionando tudo bem, porém no meu caso esta acontecendo que quando vou logar um usuário, ele da falha de login. Porém o usuário e senha estão corretos, eles passam no "radtest" e se eu ficar insistindo ele autentica. ( depois de umas 8 vezes ).
Nos logos não estão mostrando nada que seja um erro. Logs Analisados ( daloradius.log, freeradius, mysql e messeges ).
Alguém poderia dar uma orientação?
Obrigado.
Stephano Souza
[18] Comentário enviado por
ibarbusa em 10/01/2012 - 08:51h:
quando executo o chilli -f -d esta me dando uma mensagem unrecognized option '-- local.conf'
como resolver ?