Freeradius 2.x no Debian Lenny (Tutorial)
Bom gente, como tive muita dificuldade em implementar o freeradius da primeira vez que montei meu primeiro server no provedor aqui, ainda nesta epoca com o freeradius 1.x.
Agora na versão atual as dificuldades aumentaram, pois os desenvolvedores do freeradius colocaram os arquivo de configuração espalhados no diretório do freeradius.
Bom pra começar vamos preparar o terreno para instalação do freeradius.
Passo 1: Edite o arquivo /etc/apt/source.list e adicione o seguinte source.
deb ftp://ftp.br.debian.org/debian/ lenny main contrib
Salve o arquivo e rode o seguinte comando.
#apt-get update
para que possa atualizar nosso repositório com o novo source.
Passo 2: Faça a instalação do freeradius.
#apt-get install freeradius freeradius-mysql
Passo 3: Veja que já instalamos o freeradius vamos partir para a configuração propriamente dita. Mas antes vejamos onde fica os arquivo responsavés pelo funcionamento e configuração do freeradius.
/etc/freeradius = pasta padrão onde foi feita a instalação do freeradius.
/etc/freeradius/clients.conf = arquivo de texto contendo todos os NAS do freeradius, isso quer dizer, em meu caso meus aps com Mikrotik.
/etc/freeradius/users = arquivo de texto contendo os clientes em si, podendo ser usado tanto com hotspot, dhcp e ppoe.
/etc/freeradius/sql.conf = possui a configuração com variaveis para conexão com banco de dados, ao final desse arquivo faz a chamada a um outro arquivo, que é responsavel pela autenticação e contabilidade dos clientes.
/etc/freeradius/radius.conf = principal arquivo de configuração do radius, o qual não irei entrar em detalhe, mais sugiro para os iniciantes, ler o seguinte artigo ( Linux: Freeradius - servidor radius eficiente e completo [Artigo] ).
/etc/freeradius/sql/banco/ = diretório com arquivos de configuração do freeradius, também de suma importância, pois em um deles esta todas as SQL que serão usadas para o funcionamente do freeradius com MySQL e também script para criação do banco.
/etc/freeradius/sites-enabled = arquivo contendo configurações utéis do freeradius, sendo um complemento do radius.conf.
/usr/share/freeradius/ = pasta onde estão os arquivos de dictionary do freeradius, nesta nova versão já esta incluso o dictionary do mikrotik, não necessitando adiciona-lo, apesar de que eu nunca precisei adicionar esse dictionary, pois ele sempre esteve la, por default.
Existe outros arquivos dentro do diretório do freeradius, porém foge do escopo desse tutorial, para quem quizer se aprofundar pode visitar o site do freeradius.org que encontrará mais informações.
Edite o arquivo /etc/freeradius/sites-enabled/default
Na sessão authorize deixe as seguintes opções:
- preprocess,
- chap,
- mschap,
- suffix,
- eap,
- sql.
Na sessão preacct:
- preprocess,
- acct_unique,
- suffix.
Na sessão accouting:
- detail,
- unix,
- radutmp,
- sql.
Na sessão session:
- radutmp,
- sql.
Na sessão post-auth:
- sql.
Pronto default configurado.
Nesse ponto se você rodar o radius em modo debug irá lhe retornar um erro, tal como:
/etc/freeradius/sites-enabled/default[152]: Failed to find module "sql".
/etc/freeradius/sites-enabled/default[62]: Errors parsing authorize section.
Deu um sufoco, mais com muita força e esperança( rsrs ) consegui resolver.
O erro acontece devido ao módulo do SQL que não está sendo reconhecido, mais depois de perder longas noite de sono, descobri que isso causado por um comentário da linha 1321 do meu radius.conf que estava assim.
#$INCLUDE sql.conf
retire o comentário dela ficando assim:
$INCLUDE sql.conf
Bom tinha resolvido um problema, mais me surgiu outro, o famoso:
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
O que na verdade não considero um erro e sim uma aviso ( apesar do ERRO com letras maiúsculas ). O freeradius está nos avisando que possui um outro processo escutando na porta 1821, engraçado não é, pois e a mesma porta que está ouvindo o freeradius, sendo que acabei de instalar o Linux agora, achei estranho e fui em busca de respostar, notei em um outro servidor meu, que possui o freeradius porém em sua versão 1.7, instalado através dos fontes que era necessário startar o processo manualmente, senão ninguém conseguia autenticar nele. Sempre que reiniciava o servidor, deveria rodar o comando radius pra poder começar a operar efetivamente, apartir daí já não rodava em modo debug mais, e me apresentava o mesmo erro, fui então que notei que o freeradius não rodava dois processos ao mesmo tempo sendo em modo debug um segundo processo a ouvir a mesma porta. Porém na versão 2.x, instalada apartir do apt não era necessário fazer todo esse processo manual, o freeradius já startava automaticamente depois de sua instalação, e é onde gera esse erro, pois ao rodar o freeradius em debug estará gerando um segundo processo a ouvir na mesma porta, ocasionando o conflito. Para ver em modo debug então deveria matar o processo pra poder funcionar. Daí pra frente ficou fácil.
Passo 4: Com o MySQL instalando crie o banco que terá os dados do freeradius, com os seguintes comandos.
#mysql -u root -p
digite a senha: senhadomysql
mysql> CREATE DATABASE radius;
mysql>quit;
#mysql -u root -p radius < /etc/freeradius/sql/mysql/schema.sql
Passo 5: Configure o arquivo /etc/freeradius/sql.conf
server=”localhost” //endereço do servidor MySQL.
login=”root”// usuário do MySQL
senha=”senha”//senha do MySQL
radius_db=”radius” //database criando anteriormente com o MySQL
Com isso termina as configurações do Freeradius, espero ter ajudado ao pessoal que tenha alguma dúvida e me coloco a disposição para qualquer dúvida, e só posta e o mais breve estarei respondendo.
Sugiro continuar a leitura dos seguinte post ( https://under-linux.org/f96721-mikro...ip-login-senha ) para implementação com Mikrotik mais Hotspot.
Existe material de sobre na internet para tais configurações e só com uma boa busca no google que encontrará mais material..
Um grande abraço a todos e sucesso.
[email protected]