Servidor FreeRADIUS

De IFRS Campus Canoas
Revisão de 13h28min de 23 de setembro de 2015 por Vinicius.alves (Discussão | contribs)

(dif) ← Edição anterior | Revisão atual (dif) | Versão posterior → (dif)
Ir para: navegação, pesquisa

Instalação do pacote FreeRADIUS no Debian

Esta instalação foi realizada no Debian 8, mas é compatível com o Debian 7, A atual a versão do FreeRADIUS encontrada nos repositórios do Debian é a 2.2.5 .

# apt-get install freeradius freeradius-ldap

Virtual Servers

Para separar as conexões, funções e configurações, o freeradius utiliza o conceito de Virtual Servers, similar ao Virtual Hosts do Apache, os arquivos de exemplos de configurações estão na pasta /etc/freeradius/sites-available/ e os Virtual Servers ativos estão na pasta /etc/freeradius/sites-enabled/ que nada mais é que links simbólicos de arquivos do diretório sites-available.

Por padrão dois virtual servers são ativados na instalação, Default e Inner-Tunnel, para uma configuração customizada será necessário desativar o virtual server Default apenas removendo o link simbólico.

# rm /etc/freeradius/sites-enabled/default

e criar um arquivo que armazenará um virtual server contendo configurações personalizadas e específicas para a rede de Téc. Administrativos do câmpus:

# nano /etc/freeradius/sites-available/administrativos

Link para o arquivo de configuração - Administrativos.

e outro arquivo específico para rede de Alunos:

# nano /etc/freeradius/sites-available/alunos

Link para o arquivo de configuração - Alunos.

Módulo LDAP

Editar o arquivo do módulo LDAP:

# nano /etc/freeradius/modules/ldap

Link para o arquivo de configuração.

Configurações Finais

Editar o arquivo principal do freeradius e comentar as seguintes linhas:

# nano /etc/freeradius/radiusd.conf
#listen {
#       type = auth
#       ipaddr = *
#       ipv6addr = ::   # any.  ::1 == localhost
#       port = 0
#       interface = eth0
#       clients = per_socket_clients
#}
#listen {
#       type = acct
#       ipaddr = *
#       ipv6addr = ::
#       port = 0
#       interface = eth0
#       clients = per_socket_clients
#}

Demais parâmetros pode-se deixar em seus valores padrão.


Habilitar os dois virtuais servers criando links simbólicos:

# ln -s /etc/freeradius/sites-available/administrativos /etc/freeradius/sites-enabled/administrativos
# ln -s /etc/freeradius/sites-available/alunos /etc/freeradius/sites-enabled/alunos

Reiniciar o serviço para carregar as configurações:

#  invoke-rc.d freeradius restart
ou
# systemctl restart freeradius

Serviço de Contabilidade (Accounting)

Habilitar o serviço de contabilidade (Accounting) é opcional.

Este procedimento irá armazenar as sessões dos usuário em um banco de dados MySQL para fins de auditoria.

# apt-get install freeradius-mysql

Criar o banco de dados "radius", usuário e atribuir as permissões:

# mysql -h IP-MYSQL-SERVER -u login -p

mysql> CREATE DATABASE radius;
mysql> CREATE USER 'login'@'IP-FREERADIUS';
mysql> SET PASSWORD FOR 'login'@'IP-FREERADIUS' = PASSWORD('senha');
mysql> GRANT SELECT ON radius.* TO 'login'@'IP-FREERADIUS';
mysql> \q;

e criar as tabelas necessárias:

# mysql -h IP-MYSQL-SERVER -u login -p -b radius < /etc/freeradius/sql/mysql/schema.sql

Descomentar a seguinte linha no arquivo /etc/freeradius/radiusd.conf:

$INCLUDE sql.conf

Configurar os seguintes parâmetros no arquivo /etc/freeradius/sql.conf:

database = "mysql"
server = "IP-MYSQL-SERVER"
port = 3306
login = "login"
password = "senha"
radius_db = "radius"

Criar um Virtual Server para receber conexões do tipo accounting:

# nano /etc/freeradius/sites-available/accounting

Link para o arquivo de configuração.

E por último habilitar o virtual server criando um link simbólico:

# ln -s /etc/freeradius/sites-available/accounting /etc/freeradius/sites-enabled/accounting

Debug

Arquivo de log:

 # tail -f /var/log/freeradius/radius.log

Identificar se as portas configurados estão ativas:

#  netstat -anp | grep freeradius

Iniciar o freeradius em modo debug:

# /usr/sbin/freeradius -X

Possíveis problemas

Devido a um bug, é possível que o freeradius pare de autenticar usuários em uma semana de uso do software, ao analisar os logs identificou-se que o problema ocorre no rotacionamento dos logs, abaixo a alteração necessária no arquivo de configuração:

# nano /etc/logrotate.d/freeradius
/var/log/freeradius/*.log {
       weekly
       rotate 52
       compress
       delaycompress
       notifempty
       missingok
       postrotate
               /etc/init.d/freeradius reload > /dev/null        # Substituir reload por restart.
       endscript
}