Aprenda a instalar e configurar o FreeRadius (Parte II)
Um dos melhores serviços de Autenticação, Autorização e Registo.
Um servidor de autenticação permite autenticar utilizadores, máquinas, serviços, etc. Numa rede de dados é muito comum existirem servidores de autenticação de forma a que, por exemplo, só os utilizadores autorizados possam aceder aos mais diversos serviços da rede.
No segmento dos servidores de autenticação, o FreeRadius destaca-se como sendo uma óptima opção já que é bastante completo e disponibiliza variadíssimas funcionalidades. Depois da apresentação, hoje vamos ensinar a instalar e configurar o FreeRadius.
A instalação do FreeRadius envolve um conjunto de passos. Para este tutorial vamos considerar que as credenciais dos utilizadores ficam guardadas no MySQL , simplificando a gestão do mesmo. De referir que é possível ligar o FreeRadius com um Active Directory/ LDAP.
Requisitos
- Para proceder à elaboração deste tutorial recorremos a uma máquina virtual com CentOS 6.5.
- Disco: 15 GB
- RAM: 2 GB
Como instalar o FreeRadius e o MySQL?
Para instalar o freeradius e MySQL, basta que usem o seguinte comando:
yum install freeradius freeradius-mysql freeradius-utils mysql-server –y |
Configuração do MySQL
Vamos agora proceder à configuração do MySQL. Para começar vamos arrancar o serviço:
service mysql start |
Para configurar uma password de acesso ao MySQL com o utilizador root, deverá executar o seguinte comando:
/usr/bin/mysql_secure_installation |
Durante a configuração, devem seguir os seguintes passos:
Enter current password for root (enter for none): # DAR ENTER #
Set root password? [Y/n] # DAR ENTER #
New password: # Redefinir Password #
Re-enter new password: # Redefinir Password #
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y
Criar Base da dados e utilizador de acesso
Para criar um utilizador e a base de dados para guardar a informação dos utilizadores, das sessões, etc devem seguir os seguintes passos:
Nota: Para este exemplo vamos considerar os seguintes dados:
- Nome da base de dados: radius
- Utilizador: pplware
- Password: radpass
root@pplware ~ $ mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 42
Server version: 5.5.31-0+wheezy1 (Debian)
Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement
mysql> create database radius;
Query OK, 1 row affected (0.00 sec)
mysql> create user pplware;
Query OK, 0 rows affected (0.01 sec)
mysql> set password for pplware = password(“radpass”);
Query OK, 0 rows affected (0.00 sec)
mysql> grant all PRIVILEGES on radius.* to pplware@localhost identified by ’radpass’;
Query OK, 0 rows affected (0.01 sec)
mysql> exit
Bye
Vamos agora importar uma estrutura modelo para a base de dados radius. Para isso vamos posicionar-nos na base de dados radius:
mysql> use radius; |
e agora importamos o modelo de tabelas que faz parte do próprio freeradius
SOURCE /etc/raddb/sql/mysql/schema.sql |
Vamos aproveitar e criar já de seguida um utilizador na tabela radcheck
mysql> INSERT INTO `radcheck` (`id`, `username`, `attribute`, `op`, `value`) VALUES (1,'pplware','User-Password',':=','123qwe'); |
Configuração do FreeRadius
Para interligarmos o FreeRadius com o MySQL devemos efectuar as seguintes configurações:
Abrimos o ficheiro /etc/raddb/sql.conf e definimos a seguinte configuração
# Connection info: server = "localhost" #port = 3306 login = "pplware" password = "radpass" # Database table configuration for everything except Oracle radius_db = "radius" |
Depois editamos o ficheiro /etc/raddb/radiusd.conf e descomentamos a seguinte linha:
Agora editamos o ficheiro /etc/raddb/sites-available/default e na secção authorize{} e accounting {} descomentamos a linha que tem indicação para o sql
Por fim, para o client localhost, devem mudar a secret para algo diferente de testing123 no ficheiro /etc/raddb/clients.conf. Para este exemplo vamos considerar secretppl
Nota: Estamos a indicar que apenas a própria máquina poderá fazer autenticações no radius. Para clientes externos devem ser realizadas outras configurações que serão apresentadas em outros tutoriais
Feitas as configurações, vamos iniciar o freeradius em modo debug, usando o comando
radiusd –X |
DEMO
Por fim, para verificar se tudo está a funcionar, vamos usar o comando radtest para testar uma autenticação.
Aqui fica o pedido com sucesso de autenticação no serviço
Por hoje é tudo. Esperamos que tenham gostado deste super tutorial. Num próximo artigo vamos ensinar como integrar o freeradius com equipamentos (ex. Access Point ou switch)…estejam atentos!
Este artigo tem mais de um ano
Muito bom!
Não é possivel, fazer isso no windows server 2012 R2?? É que dava – me jeito isso mas só tenho um servidor com o windows, e não me dava jeito por outro com o cent os.
Cumps
Bom dia Tchessetiger
Sim, podes usar o NPS – http://technet.microsoft.com/en-us/network/bb545879.aspx
A ver se instalo deste lado lado um Windows Server 2012 🙂
Boa tarde!!!
Obrigada!! 😀 Vou ver isso!!
Não e possivel instalar e configurar o FreeRadius em Ubuntu???
Daria jeito não so a mim mas também ao pessoal que so usa Ubuntu.
E Ja agora, se fosse possivel de integracao com Access Point e/ou com Switch 🙂
Sim, posso fazer tutorial se pedirem muito 🙂
A integração com Access Point/Switch ou outro é a parte 3 😀
Para conseguir autenticar o AP num servidor RADIUS o AP tem que suportar 802.1x caso contrário não é possível.
Muito bom, e muito útil! 🙂
A foto é de 2 ZYWALL’s da Zyxel! 😀
os 2 GB de RAM é condição obrigatória? tenho aqui um “charuto” PIV 2.8 80Gb HDD e 896RAM parado, é curto para testar?
A terceira parte sai quando ?
Obrigado.
Hora vamos lá testar FreeRadius…
até agora tudo bem no tuturial (Parabéns ao autor!)
# service mysql start
mysql: unrecognized service
#service mysqld start
Initializing MySQL database: Installing MySQL system tables…
OK
Filling help tables…
OK
😉
*Ora…
all done
“rad_recv: Access-Reject packet from host 127.0.0.1 port 1812, id=79, length=20
”
alem do que está neste manual, tive de abrir as duas portas no iptables
iptables -A INPUT -m state –state NEW -m udp -p udp –dport 1812 -j ACCEPT
iptables -A INPUT -m state –state NEW -m udp -p udp –dport 1813 -j ACCEPT
– e já agora aconselhava a porem os servicos no arranque, para que depois de reiniciar a máquina o serviço continuar a funcionar
chkconfig –list | grep radiusd
radiusd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
# chkconfig radiusd on
# chkconfig –list | grep radiusd
radiusd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
# chkconfig –list | grep mysqld
mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off
#
hum ….
“Access-Reject packet …” entao… ainda falta mais qq coisa 😉
os logs sao magníficos
# tail -f /var/log/radius/radius.log
(…)
Fri Jun 13 01:20:42 2014 : Error: rlm_sql_mysql: Mysql error ‘Unknown database ‘radius”
Fri Jun 13 01:20:42 2014 : Error: rlm_sql (sql): Failed to connect DB handle #4
(…)
logs magníficos 🙂
# tail -f /var/log/radius/radius.log
Fri Jun 13 01:20:42 2014 : Error: rlm_sql_mysql: Mysql error ‘Unknown database ‘radius”
Fri Jun 13 01:20:42 2014 : Error: rlm_sql (sql): Failed to connect DB handle #4
sou novo no freeradius e to seguindo exatamente o tutorial só que não consigo passar da seguinte parte.
mysql> grant all PRIVILEGES on radius.* to pplware@localhost identified by ’radpass’;
no local de @localhost eu devo colocar o meu DNS ou @localhost menos.
To com o mesmo problema do Thiago macedo
Eu aconselho colocar:
mysql> grant all PRIVILEGES on radius.* to pplware@localhost identified by ’radpass’;
mysql> grant all PRIVILEGES on radius.* to pplware@127.0.0.1 identified by ’radpass’;
mysql> grant all PRIVILEGES on radius.* to pplware@nomednsdasuamaquina identified by ’radpass’;
são 3 comandos, desta forma evita qquer problema!
A parte 3 já saiu?
Muito bom!! Já saiu o tutorial de como integrar o freeradius com equipamentos?
Boa tarde Luiz, também estou com esta duvida… Ainda não foi criado tutorial para integrar freeradius com AP ou switch?
Muito Bom mesmo,
o melhor tutorial que já vi,
simples, prático e detalhado no que é necessário.
Parabéns!!!
Boa tarde,
estou tentando realizar um teste com o comando radtest. Porem, ocorre o seguinte erro: “radclient: no response from server for ID 30 socket 3”
Alguém poderia me ajudar?
Realizei o procedimento passado pelo Ninja.pt e funcionou.
Obrigada!!!
A parte 3 sai quando? estou precisando integrar com o MIkrotik para uso de hotspot.
Parte 3 por favor!! Preciso integrar com um Access Point.
Olá, estou usando o centos 7, instalei o freeradius porém na pasta /etc/raddb não tem o sql.conf
estou com essa mesma duvida, voce resolveu?
estou com essa mesma duvida, voce resolveu o problema?
Olá,
Estou como uma dificuldade com login time. Gostaria de saber se é possível trabalhar com login time com bases sql de autenticação e sim. Como faço isso?
Então a parte 3…. ???
Hurry….
Muito obrigado pela sua explicação, achei varios artigos ensinando mas todos entravam em um loop no qual era dificil compreender, o seu foi pratico e direto consegui realizar a mesma configuração utilizando Debian 7.11
Bom dia! Teve a publicação da parte 3 em algum lugar!?