De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.
Colaboração: Jean Carlos Oliveira Guandalini
Data de Publicação: 25 de Novembro de 2004
Você precisa de um servidor MySQL funcionando corretamente. Eu usei um Slackware 9.1 para fazer essa instalação.
Vamos lá!
Faça o Download da versão estável do freeradius de http://www.freeradius.org/getting.html Quando fiz esse tutorial a versão estável era: 1.0.1
# wget ftp://ftp.freeradius.org/pub/radius/freeradius-1.0.1.tar.gz
Agora vamos descompactar o arquivo que baixamos
# tar zxvf freeradius-1.0.1.tar.gz
Entre no diretório criado do freeradius
# cd freeradius-1.0.1
Vamos compilar e instalar o programa
# ./configure --prefix=/usr --with-logdir=/var/log --with-radacctdir=/var/log/radacct --with-raddbdir=/etc/raddb # make # make install
Agora vamos decidir qual porta usar para o radius
# vi /etc/services
Você deve achar umas linhas assim:
#radius 1645/udp #RADIUS authentication protocol (old) #radacct 1646/udp #RADIUS accounting protocol (old)
ou
radius 1812/udp #RADIUS authentication protocol (IANA sanctioned) radacct 1813/udp #RADIUS accounting protocol (IANA sanctioned)
Descomente a linha que você irá usar para o radius, no meu caso usei as portas 1812 e 1813. Lembre-se que precisa ser duas portas. E não se deve deixar as 4 linhas descomentadas. Essas portas serão configuradas nos equipamentos que vão acessar o servidor de radius.
Faça um teste para ver se o radius está instalado corretamente:
# /usr/sbin/radiusd -X
Se o resultado desse comando terminar com as linhas abaixo está tudo OK:
Listening on authentication *:1812 Listening on accounting *:1813 Listening on proxy *:1814 Ready to process requests.
Lembrando que as portas vão depender de qual você estiver usando no /etc/services de CRTL+C para terminar o radiusd
Os arquivos de configuração foram instalados em /etc/raddb, lá estão todos os arquivos necessários que iremos precisar para deixar o radius funcionando de acordo com o que é preciso.
Agora iremos criar o esquema do banco de dados que o radius vai utilizar para autenticação Se seu mysql não estiver rodando, inicie-o Entre na pasta onde está descompactado o source do freeradius e depois na pasta a seguir:
# cd src/modules/rlm_sql/drivers/rlm_sql_mysql
Edite /etc/raddb/radiusd.conf e deixe conforme o exemplo abaixo para que a autenticação no mysql funcinoe corretamente:
authorise { preprocess chap mschap #counter #attr_filter #eap suffix sql #files #etc_smbpasswd } authenticate { authtype PAP { pap } authtype CHAP { chap } authtype MS-CHAP{ mschap } #pam #unix #authtype LDAP { # ldap #} } preacct { preprocess suffix #files } accounting { acct_unique detail #counter unix sql radutmp #sradutmp } session { radutmp }
Crie o banco de dados:
# mysql -u root -p > CREATE DATABASE radius
E Agora jogue o arquivo db_mysql.sql para o MySQL
# mysql -u root -p senhadorootnomysql radius < db_mysql.sql
Se tudo correr OK, a base de dados está completa e vazia.
Precisamos popular nosso banco de dados, para que funcione as conexões. Logue no mysql:
# mysql -u root -p > use radius;
Nossa base de teste será que criaremos um grupo de usuários chamado discados com dois usuários teste1 e teste2, vamos supor que esses usuários se conectam em um RAS e depois é jogado para o radius de nosso servidor.
Primero vamos criar os usuários:
> INSERT INTO ``usergroup``(``id``, ``UserName``, ``GroupName``) VALUES ('', 'usuario1', 'discado'); > INSERT INTO ``usergroup``(``id``, ``UserName``, ``GroupName``) VALUES ('', 'usuario2', 'discado');
Acima criamos dois usuários no grupo discado.
Agora criaremos as senhas para esses usuários:
> INSERT INTO ``radcheck``(``id``, ``UserName``, ``Attribute``, ``op``, ``Value``) VALUES('', 'usuario1', 'Password', '==', 'user1'); > INSERT INTO ``radcheck``(``id``, ``UserName``, ``Attribute``, ``op``, ``Value``) VALUES('', 'usuario2', 'Password', '==', 'user2');
usuario1 ficou com a senha user1. usuario2 ficou com a senha user2.
Vamos atribuir o tipo de Autenticação Local:
> INSERT INTO ``radgroupcheck``(``id``,``GroupName``,``Attribute``,``Op``, ``Value``) VALUES('','discado', 'Auth-Type', ':=', 'Local');
Criando as propriedades das conexões:
> INSERT INTO ``radgroupreply``(``id``,``GroupName``, ``Attribute``, ``Op``, ``Value``, ``Prio``) VALUES('', 'discado', 'Framed-Compression', ':=', 'Van-Jacobsen-TCP-IP', ''); > INSERT INTO ``radgroupreply``(``id``,``GroupName``, ``Attribute``, ``Op``, ``Value``, ``Prio``) VALUES('', 'discado', 'Framed-Protocol', ':=', 'PPP', ''); > INSERT INTO ``radgroupreply``(``id``,``GroupName``, ``Attribute``, ``Op``, ``Value``, ``Prio``) VALUES('', 'discado', 'Service-Type', ':=', 'Framed-User', ''); > INSERT INTO ``radgroupreply``(``id``,``GroupName``, ``Attribute``, ``Op``, ``Value``, ``Prio``) VALUES('', 'discado', 'Framed-MTU', ':=', '1500', '');
Precisamos agora configurar o arquivo dos clientes do radius, que pode ser nosso "RAS" imaginário. Mas poderia ser qualquer aparelho que iria mandar a autenticação para nosso radius.
Edite o arquivo /etc/raddb/clients.conf: # vi /etc/raddb/clients.conf
Vamos ao final do arquivo, poderemos verificar que no arquivo inteiro, tem vários exemplos de configuração. Colocaremos assim:
client 192.168.0.1 { secret = senhateste shortname = teletubies nastype = other }
Coloque o ip de sua máquina(procure não colocar o ip do localhost, pois já tem uma configuração no clients.conf do 127.0.0.1 se não tiver outro ip, muda configuração do 127.0.0.1 no clients.conf), coloca um secret que será a comunicação com o cliente do radius e o servidor e o tipo de equipamento que está sendo cliente, no nosso caso como iremos testar de nossa máquina mesmo, vamos colocar other, mas poderia ser um portslave, cisco, tc, max40xx... e por aí vai. Olhando o arquivo você vai ver que tem muito mais configurações para fazer nesse quesito de clientes, mas não irei me aprofundar nisso.
Ok, configuração básica feita, podemos testar para ver se está tudo funcionando. Digite:
# radiusd
Isso fará com que o radius inicie. veja se o radius está rodando:
# ps aux radiusd
Se não estiver tente dar uma olhada nos logs ver o que pode ter saído errado, e qualquer coisa refaça todo o tutorial.
Vamos fazer nosso teste de autenticação.
# radtest usuário1 user1 192.168.0.1:1812 0 senhateste
Esse comando tem a seguinte sintaxe: radtest nomeusuario senhausuario ipdoserverradius:porta portadeconexao secretdoradius
Sending Access-Request of id 25 to 192.168.0.1:1812 User-Name = "usuario1" User-Password = "user1" NAS-IP-Address = 192.168.0.1 NAS-Port = 0 rad_recv: Access-Accept packet from host 192.168.0.1:1812, id=25, length=44 Service-Type = Framed-User Framed-Protocol = PPP Framed-Compression = Van-Jacobson-TCP-IP Framed-MTU = 1500
Se a saida de seu comando for parecida com a acima, provavelmente seu radius está funcionando corretamente.
Este tutorial foi o mais básico possivel, procurando mostrar somente as configurações mínimas para um funcionamento, em breve irei fazer uma continuação deste, com mais explicações sobre recursos e features do freeradius.
This policy contains information about your privacy. By posting, you are declaring that you understand this policy:
This policy is subject to change at any time and without notice.
These terms and conditions contain rules about posting comments. By submitting a comment, you are declaring that you agree with these rules:
Failure to comply with these rules may result in being banned from submitting further comments.
These terms and conditions are subject to change at any time and without notice.
Comentários