Mudanças entre as edições de "Servidor FreeRADIUS"

De IFRS Campus Canoas
Ir para: navegação, pesquisa
 
 
(2 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 64: Linha 64:
  
 
== Serviço de Contabilidade (Accounting) ==
 
== Serviço de Contabilidade (Accounting) ==
Habilitar o serviço de contabilidade (Accounting) é opcional
+
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.
 
Este procedimento irá armazenar as sessões dos usuário em um banco de dados MySQL para fins de auditoria.
Linha 73: Linha 73:
  
 
  # mysql -h IP-MYSQL-SERVER -u login -p
 
  # mysql -h IP-MYSQL-SERVER -u login -p
 
+
 +
mysql> CREATE DATABASE radius;
 
  mysql> CREATE USER 'login'@'IP-FREERADIUS';
 
  mysql> CREATE USER 'login'@'IP-FREERADIUS';
 
  mysql> SET PASSWORD FOR 'login'@'IP-FREERADIUS' = PASSWORD('senha');
 
  mysql> SET PASSWORD FOR 'login'@'IP-FREERADIUS' = PASSWORD('senha');
 
  mysql> GRANT SELECT ON radius.* TO 'login'@'IP-FREERADIUS';
 
  mysql> GRANT SELECT ON radius.* TO 'login'@'IP-FREERADIUS';
 +
mysql> \q;
  
 
e criar as tabelas necessárias:
 
e criar as tabelas necessárias:
Linha 91: Linha 93:
 
  login = "login"
 
  login = "login"
 
  password = "senha"
 
  password = "senha"
 +
radius_db = "radius"
  
 
Criar um Virtual Server para receber conexões do tipo accounting:
 
Criar um Virtual Server para receber conexões do tipo accounting:
Linha 97: Linha 100:
 
   
 
   
 
[[ Servidor_FreeRADIUS/Accounting | Link para o arquivo de configuração. ]]
 
[[ Servidor_FreeRADIUS/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 ==
 
== Debug ==

Edição atual tal como às 13h28min de 23 de setembro de 2015

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
}