Aprenda a instalar e configurar o FreeRadius (Parte II)

34 Comentários

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

Por hoje é tudo. Esperamos que tenham gostado deste super tutorial. Num próximo artigo vamos ensinar como integrar o freeradius com equipamentos (ex. Access Point ou switch)…estejam atentos!

Partilhar:
Tags:

Comentários

34

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *

  1. Avatar de Apaxe
    Apaxe

    Muito bom!

  2. Avatar de Tchessetiger
    Tchessetiger

    Não é possivel, fazer isso no windows server 2012 R2?? É que dava – me jeito isso mas só tenho um servidor com o windows, e não me dava jeito por outro com o cent os.

    Cumps

    1. Avatar de Pedro Pinto

      Bom dia Tchessetiger

      Sim, podes usar o NPS – http://technet.microsoft.com/en-us/network/bb545879.aspx

      A ver se instalo deste lado lado um Windows Server 2012 🙂

      1. Avatar de Tchessetiger
        Tchessetiger

        Boa tarde!!!

        Obrigada!! 😀 Vou ver isso!!

  3. Avatar de slb
    slb

    Não e possivel instalar e configurar o FreeRadius em Ubuntu???
    Daria jeito não so a mim mas também ao pessoal que so usa Ubuntu.
    E Ja agora, se fosse possivel de integracao com Access Point e/ou com Switch 🙂

    1. Avatar de Pedro Pinto

      Sim, posso fazer tutorial se pedirem muito 🙂
      A integração com Access Point/Switch ou outro é a parte 3 😀

    2. Avatar de HCruz
      HCruz

      Para conseguir autenticar o AP num servidor RADIUS o AP tem que suportar 802.1x caso contrário não é possível.

  4. Avatar de Pedro Rocha
    Pedro Rocha

    Muito bom, e muito útil! 🙂

    A foto é de 2 ZYWALL’s da Zyxel! 😀

  5. Avatar de travessak
    travessak

    os 2 GB de RAM é condição obrigatória? tenho aqui um “charuto” PIV 2.8 80Gb HDD e 896RAM parado, é curto para testar?

  6. Avatar de Pablo
    Pablo

    A terceira parte sai quando ?

    Obrigado.

  7. Avatar de Ninja.pt

    Hora vamos lá testar FreeRadius…

    até agora tudo bem no tuturial (Parabéns ao autor!)

    # service mysql start
    mysql: unrecognized service

    #service mysqld start
    Initializing MySQL database: Installing MySQL system tables…
    OK
    Filling help tables…
    OK

    😉

  8. Avatar de Ninja.pt

    all done

    “rad_recv: Access-Reject packet from host 127.0.0.1 port 1812, id=79, length=20

    alem do que está neste manual, tive de abrir as duas portas no iptables

    iptables -A INPUT -m state –state NEW -m udp -p udp –dport 1812 -j ACCEPT
    iptables -A INPUT -m state –state NEW -m udp -p udp –dport 1813 -j ACCEPT

    – e já agora aconselhava a porem os servicos no arranque, para que depois de reiniciar a máquina o serviço continuar a funcionar

    chkconfig –list | grep radiusd
    radiusd 0:off 1:off 2:off 3:off 4:off 5:off 6:off

    # chkconfig radiusd on

    # chkconfig –list | grep radiusd
    radiusd 0:off 1:off 2:on 3:on 4:on 5:on 6:off

    # chkconfig –list | grep mysqld
    mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off
    #

    1. Avatar de Ninja.pt

      hum ….
      “Access-Reject packet …” entao… ainda falta mais qq coisa 😉

      1. Avatar de Ninja.pt

        os logs sao magníficos

        # tail -f /var/log/radius/radius.log
        (…)
        Fri Jun 13 01:20:42 2014 : Error: rlm_sql_mysql: Mysql error ‘Unknown database ‘radius”
        Fri Jun 13 01:20:42 2014 : Error: rlm_sql (sql): Failed to connect DB handle #4
        (…)

  9. Avatar de Ninja.pt

    logs magníficos 🙂

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

    Fri Jun 13 01:20:42 2014 : Error: rlm_sql_mysql: Mysql error ‘Unknown database ‘radius”
    Fri Jun 13 01:20:42 2014 : Error: rlm_sql (sql): Failed to connect DB handle #4

  10. Avatar de Thiago macedo
    Thiago macedo

    sou novo no freeradius e to seguindo exatamente o tutorial só que não consigo passar da seguinte parte.

    mysql> grant all PRIVILEGES on radius.* to pplware@localhost identified by ’radpass’;

    no local de @localhost eu devo colocar o meu DNS ou @localhost menos.

    1. Avatar de Josué
      Josué

      To com o mesmo problema do Thiago macedo

    2. Avatar de fabiano

      Eu aconselho colocar:
      mysql> grant all PRIVILEGES on radius.* to pplware@localhost identified by ’radpass’;
      mysql> grant all PRIVILEGES on radius.* to pplware@127.0.0.1 identified by ’radpass’;
      mysql> grant all PRIVILEGES on radius.* to pplware@nomednsdasuamaquina identified by ’radpass’;

      são 3 comandos, desta forma evita qquer problema!

  11. Avatar de Gilberto Pires
    Gilberto Pires

    A parte 3 já saiu?

  12. Avatar de Luiz

    Muito bom!! Já saiu o tutorial de como integrar o freeradius com equipamentos?

    1. Avatar de Magaly
      Magaly

      Boa tarde Luiz, também estou com esta duvida… Ainda não foi criado tutorial para integrar freeradius com AP ou switch?

  13. Avatar de fabiano

    Muito Bom mesmo,
    o melhor tutorial que já vi,
    simples, prático e detalhado no que é necessário.
    Parabéns!!!

  14. Avatar de Magaly
    Magaly

    Boa tarde,

    estou tentando realizar um teste com o comando radtest. Porem, ocorre o seguinte erro: “radclient: no response from server for ID 30 socket 3”

    Alguém poderia me ajudar?

  15. Avatar de Magaly
    Magaly

    Realizei o procedimento passado pelo Ninja.pt e funcionou.

    Obrigada!!!

  16. Avatar de Junior Corazza
    Junior Corazza

    A parte 3 sai quando? estou precisando integrar com o MIkrotik para uso de hotspot.

  17. Avatar de Alexandre
    Alexandre

    Parte 3 por favor!! Preciso integrar com um Access Point.

  18. Avatar de Batista
    Batista

    Olá, estou usando o centos 7, instalei o freeradius porém na pasta /etc/raddb não tem o sql.conf

    1. Avatar de rick
      rick

      estou com essa mesma duvida, voce resolveu?

    2. Avatar de rick
      rick

      estou com essa mesma duvida, voce resolveu o problema?

  19. Avatar de wagner
    wagner

    Olá,

    Estou como uma dificuldade com login time. Gostaria de saber se é possível trabalhar com login time com bases sql de autenticação e sim. Como faço isso?

  20. Avatar de ZEE
    ZEE

    Então a parte 3…. ???

    Hurry….

  21. Avatar de Lucas da Silva Simão
    Lucas da Silva Simão

    Muito obrigado pela sua explicação, achei varios artigos ensinando mas todos entravam em um loop no qual era dificil compreender, o seu foi pratico e direto consegui realizar a mesma configuração utilizando Debian 7.11

  22. Avatar de Tamires Almeida
    Tamires Almeida

    Bom dia! Teve a publicação da parte 3 em algum lugar!?