Radius - Freeradius com MySQL no Debian

Através deste artigo tento mostrar uma forma simples de se configurar o Freeradius com MySQL no Debian 3.1.

[ Hits: 188.126 ]

Por: Thalles Leonel em 19/07/2006


O que é RADIUS?



RADIUS é uma tecnológica empregada para autenticação, autorização e contabilidade para autorizar e validar recursos de rede e também manter registros de tempo, detalhes de conexão e duração de acesso em determinada rede, como hoje se faz através de autenticação a provedores de acesso a internet.

Softwares e tecnologia necessárias
  • Debian 3.1 (instalação default);
  • Acesso a internet banda larga.

    Próxima página

Páginas do artigo
   1. O que é RADIUS?
   2. Instalação
   3. Configuração
   4. Testes
Outros artigos deste autor

VMWare Server no Debian Linux 4.0 (Etch) (i386 e AMD64)

Colinux com Debian - Linux Rodando Dentro do Windows

Instalando e Configurado a ferramenta Swat no Debian

Leitura recomendada

Softmodem compatível com Smart Link em kernel Linux 2.6.24 ou superior

Solução para conexão Claro 3G no Linux Ubuntu 8.10

Redes de comunicação sem fio (Wireless)

IPv6 - Esclarecendo dúvidas

Acesso remoto fácil, sem necessidade de instalação de programa

  
Comentários
[1] Comentário enviado por thallesleonel em 20/07/2006 - 10:25h

Correção Pagina 4 Artigo.

O link da da Freeradius é:

http://www.freeradius.org/

e não:

http://www.freeradius.com.br

[2] Comentário enviado por fabio em 20/07/2006 - 11:12h

Olá Thalles,

Corrigido!

Um abraço

[3] Comentário enviado por redlight em 26/01/2007 - 17:43h

O meu nao está conseguindo conectar ele retorna a seguinte msg: Re-sending Access-Request of id 120 to 10.0.0.220:1812
User-Name = "usuario01"
User-Password = "^{COMENTARIO}00\217?\276\220\273@\244\214\315\314\353p\360\253"
NAS-IP-Address = mca
NAS-Port = 0

sabe me dizer o que aconteceu?

[4] Comentário enviado por lavoie em 13/02/2007 - 13:48h

segui seu tutorial e deu certo, queria saber onde coloco a velocidade de cada usuario, se pude ajudar valeu


[5] Comentário enviado por metabolicbh em 14/09/2007 - 00:48h

Muito bom o tutorial. Gostaria de acrescentar um erro ao criar as tabelas.
No console do MySQL digite:
source /usr/share/doc/freeradius/examples/db_mysql.sql;

T+

[6] Comentário enviado por leandro_ls em 25/10/2007 - 15:34h

Cara adorei seu post ta bem simples e direto eu instalei tudo certinho mas na hora que eu faço o teste com o rad test ele so autentica se eu uso o ip localhost 127.0.0.1 se eu uso outros ips la no clients.conf ele nao funciona, sabe onde eu errei?

valew

[7] Comentário enviado por rafasysop em 03/11/2007 - 07:46h

?comentario=radtest rafael rafael12 127.0.0.1:1812 0 rafael12
Sending Access-Request of id 52 to 127.0.0.1 port 1812
User-Name = "rafael"
User-Password = "rafael12"
NAS-IP-Address = 255.255.255.255
NAS-Port = 0
Re-sending Access-Request of id 52 to 127.0.0.1 port 1812
User-Name = "rafael"
User-Password = "rafael12"
NAS-IP-Address = 255.255.255.255
NAS-Port = 0
rad_recv: Access-Reject packet from host 127.0.0.1:1812, id=52, length=20
rad_verify: Received Access-Reject packet from client 127.0.0.1 port 1812 with invalid signature (err=2)! (Shared secret is incorrect.)



Aconteceu este problema comigo e eu fiz td certinho, depois desabilitei o mysql e co lokei nos files do systema e da a mesma coisa limpei as regras iptables a nada ainda o cliente.conf ta com ip localhost e senha secret rafael12

[8] Comentário enviado por thallesleonel em 08/11/2007 - 07:54h

Galera, vou fazer alguns testes e quando tiver solução coloco um post aqui.

[9] Comentário enviado por andrelz em 27/11/2007 - 07:58h

Muito bacana o tutorial Thales. Fiz a instalação e configuração e ao tentar autenticar no servidor, vendo o log do servidor apareceu esse erro:
Error: rlm_sql: Failed to create the pair: Unknown value bl-Van-Jacobsen-TCP-IP for attribute Framed-Compression

Alguém sabe dizer o que é isso? Já procurei nos radius.conf e no sql.conf e não achei nada. To dependendo disso para apresentar meu projeto final de graduação.
Abraço a todos.
André Luis

[10] Comentário enviado por thallesleonel em 27/11/2007 - 09:56h

Execute no mysql o seguinte comando que provavelmente não irá acontecer mais o erro:

delete * from radgroupreply where GroupName´= 'Discado' and Attribute = 'Framed-Compression' and Value = 'Van-Jacobsen-TCP-IP'

Att, Thalles Leonel

[11] Comentário enviado por andrelz em 28/11/2007 - 10:14h

E aí Thalles,

Só uma observação: Quando instalei o RADIUS e estava inserindo os dados na tabela radgroupreply no mysql eu não inclui nada sobre 'discado' usei apenas o grupo 'Bandalarga'.
usei o comando que vc sugeriu e não deu resultado.
Fiz o teste com o radtest e obtive o resultado de que está tudo ok.
acha que ainda posso tentar mais alguma coisa

Fico no aguardo.
Grato pela ajuda
André Luis

[12] Comentário enviado por carlosleonardo em 22/02/2008 - 16:59h

nao funfouuso o debian 4 e queria dicas por favor. quando starto o freeradus ele faz certinho sem erros mas quando starto o mysql ai baba checking for corrupt, not cleanly closed and upgarde needing tables... outra coisa quando fizer essa budega funcionar tenho umamaquina com o linux debian 4 eoutra com windows onde deixo as duas em rede pra estudo . funcionando quando entrar no no internet explorer verei uma tela de autenticação é isso. souleigo mas tometendo a cara ajuda ai vlw..........

[13] Comentário enviado por ribeiro_br em 10/04/2008 - 19:14h

Estou começando no linux e, a mais ou menos duas semanas estou tentando configurar o radius com o mysql, mas estou empacando nessa parte:

Criar a estrutura do banco de dados radius:

# gunzip /usr/share/doc/freeradius/examples/db_mysql.sql.gz
# mysql -u root radius < /usr/share/doc/freeradius/examples/db_mysql.sql

só que o arquivo db_mysql.sql.gz não existe no diretório. Alguem pode me dar uma luz!?

[14] Comentário enviado por fabriciomontelo em 15/07/2008 - 11:52h

OLá amigo, não estou conseguindo utilizar senhas criptografas no mysql, pois o freeradius não processa. Quando coloco senhas em formato de texto puro ai funciona. Existe algo a ser configurado no freeradius para que ele aceite senhas criptografadas?

Excelente artigo!

[15] Comentário enviado por noiseand em 16/10/2008 - 17:59h

Idem, estou com o mesmo problema.

Mesmo alterando no radiusd.conf para "encryption_scheme = crypt", "require_encryption = yes"
e "require_strong = yes", não consigo autenticar.

Abçs

[16] Comentário enviado por gzanatta00 em 29/10/2008 - 17:46h

aonde eu coloco o dictionary.mikrotik???

[17] Comentário enviado por mgn5005 em 06/11/2008 - 18:01h

Amigo boa tarde

Segui seu tutorial a risca porem quando eu faço o test com o radtest no log do radius sai o seguinte erro

rlm_sql (sql): No matching entry in the database for request from user


Voce poderia me ajudar?


Abraços

[18] Comentário enviado por GanG_ em 11/09/2009 - 11:05h

Estou tendo problemas na hora de autenticar com um AP da d`link,
segue o erro

alguem pode me ajudar ?


rad_recv: Access-Request packet from host 192.168.2.50 port 1042, id=0, length=198
Message-Authenticator = 0xf38c7c1b67c64de1873270e3038c3603
Service-Type = Framed-User
User-Name = "gang{COMENTARIO}00"
Framed-MTU = 1488
Called-Station-Id = "00-1B-11-C8-34-D9:Testing_radius"
Calling-Station-Id = "00-90-4B-9D-F1-10"
NAS-Identifier = "D-Link Access Point"
NAS-Port-Type = Wireless-802.11
Connect-Info = "CONNECT 54Mbps 802.11g"
EAP-Message = 0x020000090167616e67
NAS-IP-Address = 192.168.2.50
NAS-Port = 1
NAS-Port-Id = "STA port # 1"
+- entering group authorize
++[preprocess] returns ok
++[chap] returns noop
++[mschap] returns noop
rlm_realm: No '@' in User-Name = "gang", looking up realm NULL
rlm_realm: No such realm "NULL"
++[suffix] returns noop
rlm_eap: EAP packet type response id 0 length 9
rlm_eap: No EAP Start, assuming it's an on-going EAP conversation
++[eap] returns updated
++[unix] returns updated
++[files] returns noop
++[expiration] returns noop
++[logintime] returns noop
rlm_pap: Found existing Auth-Type, not changing it.
++[pap] returns noop
rad_check_password: Found Auth-Type EAP
auth: type "EAP"
+- entering group authenticate
rlm_eap: EAP Identity
rlm_eap: processing type md5
rlm_eap_md5: Issuing Challenge
++[eap] returns handled
Sending Access-Challenge of id 0 to 192.168.2.50 port 1042
EAP-Message = 0x0101001604106c6b730323bc68dfb61a3a0e8ad9f145
Message-Authenticator = 0x00000000000000000000000000000000
State = 0x9362934593639757ebfd9ef20ca49b69
Finished request 0.
Going to the next request
Waking up in 4.9 seconds.
rad_recv: Access-Request packet from host 192.168.2.50 port 1042, id=0, length=198
Sending duplicate reply to client User/16 port 1042 - ID: 0
Sending Access-Challenge of id 0 to 192.168.2.50 port 1042
Waking up in 2.0 seconds.
Cleaning up request 0 ID 0 with timestamp +89
Ready to process requests.

[19] Comentário enviado por wpereiratecno em 03/11/2009 - 09:10h

Senhores, quero dar minha contribuição ao VOL, em função desse artigo do Thalles Leonel.

Antes de dizer que algo funciona ou não, nessa ou naquela distribuição, é importante considerar, além da distribuição GNU/Linux ou BSD-like usada, as versões dos programas também.

No meu cenário eu tenho:
- Debian GNU/Linux lenny x86_64 kernel 2.6.26-2-amd64 (isso tudo significa Debian 64 bits)
- Freeradius 2.0.4
- MySQL 5.0.51a


Algumas considerações:


1. Eu não criei os tipos de autenticação para a tabela radgroupcheck e mesmo assim funcionou (aliás, é altamente recomendável não usar o atributo Auth-Type);
2. Na tabela radcheck o Attribute pode ser 'Crypt-Password' (que dá uma segurança maior);
3. Edite o arquivo /etc/freeradius/sites-enabled/default e, além de descomentar as linhas de sql recomendadas pelo Thalles, descomente a linha unix (isso fará com que o freeradius autentique via MySQL e não via /etc/passwd);
4. No mesmo arquivo /etc/freeradius/sites-enabled/default comente a linha radutmp, conforme abaixo:

# Session database, used for checking Simultaneous-Use. Either the radutmp
# or rlm_sql module can handle this.
# The rlm_sql module is *much* faster
session {
# radutmp

5. Na tabela radgroupreply, a coluna Prio não estava criada, então eu precisei criar com o comando ALTER TABLE radgroupreply ADD Prio VARCHAR(1); (rodei na base de dados criada o script de schema.sql e essa coluna Prio não foi criada, por isso a criei manualmente).

6. Nas propriedades de conexão da tabela radgroupreply, o Attribute Framed-Compression aceita tanto o Value Van-Jacobsen-TCP-IP quanto Van-Jacobson-TCP-IP (mas o recomendado pela IETF na RFC 1144 é o segundo).

7. Não esquecer de descomentar a linha $INCLUDE sql.conf do arquivo /etc/freeradius/radiusd.conf


Algumas recomendações:


1. Além do usuário root da base de dados MySQL, crie um usuário adicional, com privilégio USAGE e com senha diferente da do root, pois será necessário informar esses dados no arquivo /etc/freeradius/sql.conf, na sessão # Connection info; portanto, não é muito seguro deixar a senha do root nesse arquivo. Veja a seguir:

# Connection info:
server = "localhost"
login = "usuario_adicional"
password = "senha_usuario_adicional"

2. Verifique sempre se os serviços mysql e freeradius estão rodando. Se não estiverem, faça /etc/init.d/mysql start e /etc/init.d/freeradius start (você pode preferir automatizar essa tarefa com a ferramenta update-rc.d).

3. Algumas verificações que podem ser feitas para garantir que está tudo configurado corretamente:

a. ifconfig eth0 (comando para verificar o IP da interface eth0)
b. editar o arquivo /etc/hostname (para verificar se o nome do servidor está correto)
c. editar o arquivo /etc/hosts (para verificar se o IP e o hostname estão correspondendo)


HORA DE ALEGRIA:


Após toda a instalação e configuração, teste com o radtest:
Entre na pasta /etc/freeradius
Digite: radtest {username} {password} {hostname:port} 10 {radius_secret}

Se retornar a mensagem...

Sending Access-Request of id 174 to 10.0.0.1 port 1812
User-Name = "user"
User-Password = "teste"
NAS-IP-Address = 10.0.0.1
NAS-Port = 0
rad_recv: Access-Accept packet from host 10.0.0.1 port 1812, id=174, length=44
Framed-Compression = Van-Jacobson-TCP-IP
Framed-Protocol = PPP
Service-Type = Framed-User
Framed-MTU = 1500

...então é HORA DE ALEGRIA! Vamos sorrir e cantar! Funcionou! Aproveite para ir tomar um café sossegado : )

Obs.: o IP privado 10.0.0.1 foi usado para efeito didático apenas, portanto, esse IP será o do seu servidor onde está rodando o freeradius.

Agradeço o apoio inestimável dos colegas Boni, Ettore, Tati, Roberto e Sidinei; e a confiança do parceiro Rogério Herrera, por me confiar esse desafio.

Um grande abraço a todos e sucesso!

Wagner Pereira
wpereiratecnologia@gmail.com
twitter: @wpereiratecno

[20] Comentário enviado por lf_sm em 21/04/2010 - 11:27h

Olá

Estou necessitando instalar uma solulão onde terei uma VPN com GRE, cujo tenho que autenticar os usuarios no Radius e fornecer os IPS.
Pode me dar uma dica de como vincular as informações vindas da internet pela VPN/GRE para chegar ao Radius?
E como fazer um DHCP para a rede que se autentica no Radius?

[21] Comentário enviado por impacto em 04/09/2010 - 10:54h

Alguem mim da uma ajuda
Quando eu coloco o comando (freeradius -X ) ele apareçe este erro.

ERROR: Failed to open socket: cannot bind socket: Address already in use
/etc/freeradius/radiusd.conf[210]: Error binding to port for 0.0.0.0 port 1812

[22] Comentário enviado por removido em 04/07/2011 - 15:07h

NO meu tbm apareceu isso

[23] Comentário enviado por lf_sm em 04/07/2011 - 15:30h

No caso deste erro, olhe se o serviço do freeradius não está iniciado.
ps aux |grep freeradius
caso esteja,
killall -9 freeradius
após isso freeradius -X


espero ter ajudado

[24] Comentário enviado por marcospxd em 08/10/2012 - 16:25h

Eai Thalles

Instalei certinho o freeradius e mysql, mas na hora de entra no arquivo radius.conf não encontro ele dentro de /etc/freeradius só encontrei o arquivo radiusd.conf ! podes me ajudar ?


[25] Comentário enviado por betowassolowski em 07/12/2013 - 08:13h

fiz a instalação porem quando digito

# freeradius -X

nada acontece se tento instalar e fala que ja esta instalado,desculpe-me se for muito banal este problema mas so iniciante.

[26] Comentário enviado por pauloedson em 03/05/2017 - 22:30h

olá thalles! obrigado pelas informações! tira-me uma dúvida.:

01.: na linha (/etc/freeradius/clients.conf) vc acrescentou "client 10.1.1.200". por acaso, esse IP eh de onde?! da rede de sua casa... trabalho?!

02.: o que vem a ser o "shortname = testesomente" ?!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts