Hotspot com Ubuntu Server 11.04 32-Bits

Configuração de um servidor Hostspot com o Ubuntu Server 11.04 praticamente do zero.

[ Hits: 85.882 ]

Por: Eduardo Vit'Angelo em 23/08/2011


Fazendo as instalações



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
    Próxima página

Páginas do artigo
   1. Fazendo as instalações
   2. Configurações
   3. Testando e Finalizando
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Linux em Router Wireless (WRT54G Vs OpenWrt)

Integrando Apache 2 com Tomcat 5

Redes, Modelos de Referência, suas Camadas e seus Protocolos

Balanceamento de carga e alta disponibilidade com Bonding Driver e Iproute2

Qualidade de Serviços para Gateways Linux (QoS)

  
Comentários
[1] Comentário enviado por removido em 23/08/2011 - 10:18h

Gostei. Vou testar !

[2] Comentário enviado por wagnerfs 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

[4] Comentário enviado por edu.vitangelo em 24/08/2011 - 10:39h

magnored, o tutorial trata de uma instalação a partir do ubuntu. não tenho conhecimento em centos, porem no tuto o endereço para acesso do daloradius é https://192.168.182.1/daloradius/ em https e não o http://192.168.1.192/daloradius/. da uma conferida nas suas configuracoes.....
Eduardo

[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 ?

[19] Comentário enviado por fabiomattes2011 em 22/06/2012 - 11:03h

com o meu aconteceu isso no Chrome quando vou abrir o login:
"Erro de conexão SSL
Não foi possível estabelecer uma conexão segura com o servidor. Pode ser um problema com o servidor ou pode ser necessário um certificado de autenticação de cliente que você não tem.
Erro 107 (net::ERR_SSL_PROTOCOL_ERROR): Erro de protocolo SSL"

Tenho que gerar algum certificado?

[20] Comentário enviado por skldias em 03/08/2012 - 10:19h

Pessoal alguem sabe me dizer se vou ter problemas usando o ubuntu 12.04 ?? muito obrigado

[21] Comentário enviado por gessesp em 16/09/2012 - 16:14h

O meu problema é o mesmo do stephanosouza fiz tudo certinho mas não consigo logar se alguem poder me da uma força para por o Chillipost no Ubuntu 11 64bit eu agradeço

[22] Comentário enviado por andyblessing em 24/09/2012 - 21:59h

Olá Depois de instaldo e funcionando, como faço para compartilhar em outro pc ???

[23] Comentário enviado por wrgaspar em 12/01/2013 - 15:31h

Olá, não entendi como configurar o access point, voce poderia me dar uma dica. Obrigado.

[24] Comentário enviado por wrgaspar em 12/01/2013 - 15:31h

Olá, não entendi como configurar o access point, voce poderia me dar uma dica. Obrigado.

[25] Comentário enviado por fmabuti em 24/04/2013 - 11:42h

Pessoal,
Quando tento criar as tabelas necessárias, com o comando:

mysql -p radius < /var/www/daloradius/contrib/db/fr2-mysql-daloradius-and-freeradius.sql


Occore o erro:

ERROR 1064 (42000) at line 128: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(14) NOT NULL,
PRIMARY KEY (id)
)' at line 6


Alguém pode me ajudar?


Obrigado.

[26] Comentário enviado por thiiagofernando em 09/06/2013 - 21:43h

quando vo criar as tabela da o seguinte erro

ERROR 1064 (42000) at line 128: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(14) NOT NULL,
PRIMARY KEY (id)
)' at line 6

[27] Comentário enviado por edu.vitangelo em 12/06/2013 - 08:38h

talvez esse link te ajude thiago:
http://sourceforge.net/p/daloradius/discussion/684102/thread/2b137c4a

[28] Comentário enviado por andyblessing em 23/06/2013 - 20:42h

Olá muito bom o tutorial, show de bola, mas tenho algumas dúvidas, como por exemplo, eu usar um ip nas duas interfaces de rede ao invéns de ppoe.

[29] Comentário enviado por suportetisgaf em 13/08/2013 - 21:33h

Olá galera do vol. sou novo aqui nno vol, Uso um link da unitelco, e tenho ip fixo na minha internet, e gostaria de na placa que distribui a internet eu colocar dhcp, tem como? se possivel como configuro isso.
Agradeço desde já abço a todos

[30] Comentário enviado por andyblessing em 25/09/2013 - 21:37h

Olá tem como bloquear sites???

[31] Comentário enviado por condealisson em 07/02/2014 - 14:45h

Olá pessoal!

Após instalar o daloradius me deparei com o seguinte problema ao me logar via web:

Database error
Error Message: DB Error: no such table
Debug info: SELECT id, username FROM operators WHERE username = 'Administrador' AND password = 'radius' [nativecode=1146 ** Table 'radius.operators' doesn't exist]

Solução:

# mysql -u root -p radius < /var/www/daloradius/contrib/db/mysql-daloradius.sql
--> Será necessário digitar a senha do root do mysql para concluir o comando.

Fonte: http://forum.mikrotik.com/viewtopic.php?f=10&t=52830#p350650

Abraços!

[32] Comentário enviado por suportetisgaf em 25/02/2014 - 21:36h

Olá como faz pra ter relatorio de acesso dos usuarios???


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts