Pular para o conteúdo

Hotspot com Ubuntu Server 11.04 32-Bits

Configuração de um servidor Hostspot com o Ubuntu Server 11.04 praticamente do zero.
Eduardo Vit'Angelo edu.vitangelo
Hits: 87.179 Categoria: Linux Subcategoria: Internet
  • Indicar
  • Impressora
  • Denunciar

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
   1. Fazendo as instalações
   2. Configurações
   3. Testando e Finalizando
Nenhum artigo encontrado.

Virtual Host e Virtual Host Mod_Proxy

ProFTPD + MySQL - Servidor FTP com usuários em banco de dados

Newsbeuter Feed Reader - Instalação e configuração

Blockmail: um filtro de anexos de e-mail

Configuração básica de rede + proxy Linux

#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.
#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
#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

Entre na sua conta para comentar.