quinta-feira, 29 de maio de 2014

Aprenda a instalar e configurar o FreeRadius (Parte II)

Um dos melhores serviços de Autenticação, Autorização e Registo.
Um servidor de autenticação permite autenticar utilizadores, máquinas, serviços, etc. Numa rede de dados é muito comum existirem servidores de autenticação de forma a que, por exemplo, só os utilizadores autorizados possam aceder aos mais diversos serviços da rede.
No segmento dos servidores de autenticação, o FreeRadius destaca-se como sendo uma óptima opção já que é bastante completo e disponibiliza variadíssimas funcionalidades. Depois da apresentação, hoje vamos ensinar a instalar e configurar o FreeRadius.
freeradius_08

A instalação do FreeRadius envolve um conjunto de passos. Para este tutorial vamos considerar que as credenciais dos utilizadores ficam guardadas no MySQL , simplificando a gestão do mesmo. De referir que é possível ligar o FreeRadius  com um Active Directory/ LDAP.
Requisitos
  • Para proceder à elaboração deste tutorial recorremos a uma máquina virtual com CentOS 6.5.
  • Disco: 15 GB
  • RAM: 2 GB
Como instalar o FreeRadius e o MySQL?
Para instalar o freeradius e MySQL, basta que usem o seguinte comando:
yum install freeradius freeradius-mysql freeradius-utils mysql-server –y
Configuração do MySQL
Vamos agora proceder à configuração do MySQL. Para começar vamos arrancar o serviço:
service mysql start
Para configurar uma password de acesso ao MySQL com o utilizador root, deverá executar o seguinte comando:
/usr/bin/mysql_secure_installation
centos_01
Durante a configuração, devem seguir os seguintes passos:
Enter current password for root (enter for none): # DAR ENTER #
Set root password? [Y/n]     # DAR ENTER #
New password:                # Redefinir Password #
Re-enter new password:      # Redefinir Password #
Remove anonymous users? [Y/n]   Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n]  Y
Criar Base da dados e utilizador de acesso
Para criar um utilizador e a base de dados para guardar a informação dos utilizadores, das sessões, etc devem seguir os seguintes passos:
Nota: Para este exemplo vamos considerar os seguintes dados:
  • Nome da base de dados: radius
  • Utilizador: pplware
  • Password: radpass
root@pplware ~ $ mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 42
Server version: 5.5.31-0+wheezy1 (Debian)
Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement
mysql> create database radius;
Query OK, 1 row affected (0.00 sec)
mysql> create user pplware;
Query OK, 0 rows affected (0.01 sec)
mysql> set password for pplware = password(“radpass”);
Query OK, 0 rows affected (0.00 sec)
mysql> grant all PRIVILEGES on radius.* to pplware@localhost identified by ’radpass’;
Query OK, 0 rows affected (0.01 sec)
mysql> exit
Bye
Vamos agora importar uma estrutura modelo para a base de dados radius. Para isso vamos posicionar-nos na base de dados radius:
mysql> use radius;
e agora importamos o modelo de tabelas que faz parte do próprio freeradius
SOURCE /etc/raddb/sql/mysql/schema.sql
Vamos aproveitar e criar já de seguida um utilizador na tabela radcheck
mysql> INSERT INTO `radcheck` (`id`, `username`, `attribute`, `op`, `value`) VALUES (1,'pplware','User-Password',':=','123qwe');
Configuração do FreeRadius
Para interligarmos o FreeRadius com o MySQL devemos efectuar as seguintes configurações:
Abrimos o ficheiro /etc/raddb/sql.conf e definimos a seguinte configuração
# Connection info:
 server = "localhost"
 #port = 3306
 login = "pplware"
 password = "radpass"
 
 # Database table configuration for everything except Oracle
 radius_db = "radius"
freeradius_01
Depois editamos o ficheiro /etc/raddb/radiusd.conf e descomentamos a seguinte linha:
freeradius_02
Agora editamos o ficheiro /etc/raddb/sites-available/default e na secção authorize{} e accounting {}descomentamos a linha que tem indicação para o sql
freeradius_03
Por fim, para o client localhost, devem mudar a secret para algo diferente de testing123 no ficheiro/etc/raddb/clients.conf. Para este exemplo vamos considerar secretppl
Nota: Estamos a indicar que apenas a própria máquina poderá fazer autenticações no radius. Para clientes externos devem ser realizadas outras configurações que serão apresentadas em outros tutoriais
freeradius_04
Feitas as configurações, vamos iniciar o freeradius em modo debug, usando o comando
radiusd –X
freeradius_05
DEMO
Por fim, para verificar se tudo está a funcionar, vamos usar o comando radtest para testar uma autenticação.
freeradius_06
Aqui fica o pedido com sucesso de autenticação no serviço
freeradius_07