FACULDADE DE TECNOLOGIA SENAC GOIÁS Projeto de Redes de Computadores Implementação do protocolo 802.1x utilizando servidor de autenticação FreeRadius. 5º PERÍODO – Gestão da Tecnologia da Informação Alunos: Alessandro Aparecido André Alexandre Bruno Santiago Thiago Castilho GOIÂNIA 2014-1 Sumário 1. Introdução ........................................................................................................................................................... 3 2. Servidor FreeRadius ........................................................................................................................................ 3 3. Arquitetura AAA ................................................................................................................................................ 4 3.1. Autenticação (Authentication) ..................................................................................................................... 4 3.2. Autorização (Authorization) ......................................................................................................................... 4 3.3. Registo (Accounting) ....................................................................................................................................... 5 4. Protocolo RADIUS ............................................................................................................................................. 5 5. FreeRADIUS ........................................................................................................................................................ 6 5.1. Instalação do FreeRadius .......................................................................................................................... 6 5.2. Requisitos ........................................................................................................................................................ 6 5.3. Configuração do MySQL ............................................................................................................................. 6 5.4. Criar Base de dados e utilizador de acesso ........................................................................................ 7 5.5. Configuração do FreeRadius..................................................................................................................... 9 6. Configuração dos Switchs ........................................................................................................................... 15 7. Configuração dos Clientes 802.1X ........................................................................................................... 16 7.1. 8. Configuração de Cliente - Rede com Fio (Windows) .................................................................... 16 Conclusão .......................................................................................................................................................... 17 1. Introdução Durante os últimos anos as redes de computadores tiveram um grande crescimento principalmente devido a popularização da Internet (NICBR, 2006). Entretanto, a infraestrutura de redes de computadores necessita de atualizações para suportar novos protocolos para permitir seu gerenciamento e controle sobre os usuários da mesma. Em um ambiente de rede onde o meio de acesso é compartilhado e aberto, como nas redes sem fio ou no caso das redes cabeadas que existam segmentos da mesma que não possam ser verificados, a confiança nos hosts fica limitada. Para contornar esses aspectos falhos de segurança mencionados acima existem diversos métodos disponíveis para implementação. Uma forma eficiente é prover um mecanismo de segurança através de um protocolo que ofereça opções de segurança confiáveis. Desta forma, o padrão IEEE 802.1x é o que provê autenticação entre os clientes da rede e o ativo no qual os mesmos estão conectados podendo este ser um switch ou um ponto de acesso (AP Access Point) para acessos sem fio. Portanto, o padrão IEEE 802.1x descreve um modelo de controle de acesso à rede e uma arquitetura de controle centralizada que se integra com o padrão AAA (Authentication, Authorization and Accounting) da IETF (Internet Engineering Task Force) definido em (VOLLBRECHT, 2000). 2. Servidor FreeRadius 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. Hoje vamos começar por apresentar a arquitectura AAA e também conhecer melhor o protocolo Radius. 3. Arquitetura AAA A arquitetura AAA é uma importante tecnologia no auxílio da segurança das redes de telecomunicações. É uma estrutura de segurança independente e centralizada, mas que pode ser configurada em conjunto, de modo consistente e modular. Desta forma é possível controlar os acessos, definir políticas e fazer um logging (registo) dos utilizadores enquanto estes estão ligados. 3.1. Autenticação (Authentication) O processo de autenticação é um processo que consiste em verificar a identidade de um utilizador, ou seja, se o utilizador é quem diz ser. Este processo é fundamental no aspecto da segurança e pode ser de uma forma simples, bastando para isso implementar um mecanismo de suporte à autenticação (ex. um formulário para que solicite um nome de utilizador e palavra-chave) ou então algo mais complexo, recorrendo a informações complementares de “smart-cards” ou certificados digitais. 3.2. Autorização (Authorization) Depois da autenticação de um utilizador, é necessário verificar quais os tipos de serviços/propriedades que se podem conceder (autorizar a este). A autorização pode ser feita a vários níveis, como por exemplo, por horários, por perfil, por acesso, por serviço, etc. De acordo com o tipo de perfil do utilizador é possível definir o tipo de privilégios/restrições. 3.3. Registo (Accounting) O registo, tal como o nome sugere, é o processo de registar a sessão do utilizador. Este serviço é importante, na medida em que é possível fazer a verificação dos tempos de utilização, natureza do serviço e o momento em que o serviço se inicia e termina, para fins de auditoria e contabilização. 4. Protocolo RADIUS O RADIUS (Remote Authentication Dial In User Service – Serviço de Autenticação Remota de Utilizadores por Acesso Telefónico), é um protocolo normalmente usado em ISPs e em empresas que façam controlo de acesso à rede. Este protocolo pode ser usado em vários tipos de tecnologia como, por exemplo, a tecnologia DSL , wireless e VPN, permitindo efetuar a autenticação, autorização e registo (AAA) do cliente que acede aos serviços. Inicialmente o RADIUS foi criado para ser utilizado em serviços de acesso por telefone, pela sua simplicidade, eficiência e facilidade de implementação. Atualmente suporta VPNs (Virtual Private Network), norma 802.1x que é a usada na autenticação de clientes em ambientes de rede. As principais características do RADIUS são: Protocolo aberto, assim qualquer fabricante/utilizador pode utilizá-lo sem custos; É independente do sistema operativo; É considerado um protocolo seguro; É escalável e expansível, sendo capaz de acompanhar a evolução/necessidades futuras; Ser simples de implementar, tanto no lado do servidor RADIUS como no cliente; Atualmente o serviço RADIUS é o mais utilizado a nível de autenticação de utilizadores e praticamente todos os servidores de acesso remoto suportam este protocolo. O RADIUS recorre à utilização do protocolo UDP e normalmente utiliza os portos 1812 ou 1645 para autenticação e 1813 ou 1646 para accounting. O servidor RADIUS é responsável por: Receber os pedidos de ligação dos clientes RADIUS (ex. Pontos de acessos). Autenticar os clientes remotos. Ceder informação de clientes RADIUS (AP) para que este permita ou negue o acesso aos clientes remotos. 5. FreeRADIUS O desenvolvimento do projeto FreeRADIUS iniciou-se em Agosto 1999 por Alan DeKok e por Miquel Smoorenburg. Este servidor ganhou muita popularidade devido à integração de módulos para o suporte de LDAP, SQL entre outros. Foi também adicionado o suporte para EAP pelos meados de 2001, assim como PEAP e EAP-TTLS em 2003, o suporte EAP é deveras importante, pois é este que é utilizado pelos APs Cisco. Actualmente o FreeRADIUS suporta um sistema de proxying, load-balance e fail-over . 5.1. Instalação do FreeRadius 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. 5.2. Requisitos Para proceder à elaboração deste tutorial recorremos a uma máquina virtual com CentOS 6.5., Disco: 15 GB, RAM: 2 GB Para instalar o freeradius e MySQL, basta que usem o seguinte comando: yum install freeradius freeradius-mysql freeradius-utils mysql-server –y 5.3. Configuração do MySQL 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 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 5.4. Criar Base de 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 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`) VALUE (1,'pplware','User-Password',':=','123qwe'); 5.5. Configuração do FreeRadius Para interligarmos o FreeRadius com o MySQL devemos efetuar 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" Depois editamos o ficheiro /etc/raddb/radiusd.conf e descomentamos a seguinte linha: 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 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 Feitas as configurações, vamos iniciar o freeradius em modo debug, usando o comando: radiusd –X Por fim, para verificar se tudo está a funcionar, vamos usar o comando radtest para testar uma autenticação. Aqui fica o pedido com sucesso de autenticação no serviço 6. Configuração dos Switchs A Empresa é composta por switchs HP/3COM, modelos v1910 para a utilização do padrão 802.1X é necessário: Como um requerimento importante, o administrador sempre deverá utilizar a última versão do firmware disponível do HP/3ComOS; Configurar o domínio; domain default enable ufop.br Definir o padrão 802.1X como configuração global: dot1x dot1x dhcp-launch dot1x authentication-method eap undo dot1x handshake enable Configurar as portas do switch para trabalharem no padrão 802.1X. 7. Configuração dos Clientes 802.1X 7.1. Configuração de Cliente - Rede com Fio (Windows) Nesta etapa será configurado o padrão 802.1X na máquina CLIENTE-01,para concluir esse procedimento, primeiro habilitar o serviço de Configuração Automática de Rede com Fio, que é desativado por padrão. Clique no botão Iniciar. Na caixa de pesquisa, digite services.msc e pressione Enter. Se você for solicitado a informar uma senha de administrador ou sua confirmação, digite a senha ou forneça a confirmação. Na caixa de diálogo Serviços, clique na guia Padrão na parte inferior do painel principal, clique com o botão direito do mouse em Configuração Automática de Rede com Fio e em Iniciar. Após executar esta seleção, o administrador deverá acessar o menu principal de opções do Windows, bastando apenas clicar no botão Iniciar e selecionar o Painel de controle, o sistema apresentará as diversas aplicações associadas ao painel de controle, onde o administrador deverá executar, por meio de um duplo clique, a opção Conexões de rede. Seguidamente o Windows apresentará a lista de conexões presentes na máquina CLIENTE-01, para acessar os recursos de rede, basta o administrador executar um duplo clique na conexão de rede. Como resposta, será apresentado uma janela onde o administrador deverá pressionar o botão Propriedades. Após solicitar o acesso as propriedades de rede, serão apresentados ao administrador os itens de configuração associados ao dispositivo de rede, onde o mesmo deverá selecionar a opção Protocolo TCP/IP e seguidamente pressionar o botão Propriedades. Para construção do ambiente de teste descrito neste material, é necessário que o administrador preencha ou habilite as opções de obtenção automática dos parâmetros TCP/IP com os valores associados a endereço IP, máscara de sub-rede, gateway padrão e servidor DNS. Após o preenchimento destes valores o administrador deverá pressionar o botão Avançado. Como resultado da solicitação executada no passo anterior, o sistema apresentará uma janela, onde o administrador deverá selecionar a aba Avançado e garantir que a opção de Firewall não esteja selecionada. Seguidamente o administrador deverá selecionar a aba Autenticação e selecionar a opção Permitir autenticação IEEE 802.1X para rede e na opção Tipo de EAP, escolha um método de autenticação de rede que deseja usar. 8. Conclusão Utilizar um ambiente de rede que possui uma forma de autenticação e autorização para acesso ao meio é uma das formas de aumentar a segurança. Com o processo de autorização, somente usuários legítimos e devidamente identificados tem acesso aos recursos disponíveis. Já o processo de autorização fornece flexibilidade para implementar uma hierarquia de acesso, bem como manter centralizada a base de usuários. Utilizar um meio de contabilizar o acesso individual de cada cliente também ajuda no aspecto da segurança, pois é possível definir limites como horários disponíveis para uso e tempo máximo de conexão, por exemplo. A autenticação IEEE 802.1X fornece uma barreira de segurança adicional para sua intranet que pode ser usada para evitar que computadores convidados, invasores ou não gerenciados que não podem executar uma autenticação bem-sucedida conectem-se à sua intranet. Pelo mesmo motivo que os administradores implantam a autenticação IEEE 802.1X para redes sem fio IEEE 802.11 — melhor segurança — os administradores de redes querem implementar o padrão IEEE 802.1X para ajudar a proteger suas conexões de rede com fio. Da mesma forma que um cliente de rede sem fio autenticado deve enviar um conjunto de credenciais para serem validadas antes de poder enviar quadros sem fio à intranet, um cliente com fio IEEE 802.1X também deve executar a autenticação antes de poder enviar tráfego pela sua porta do comutador. 9. Referências FreeRadius - http://freeradius.org/ . Acessado em: 01/06/2014. Protocolo Radius - http://technet.microsoft.com/pt-br/library/cc781821(v=ws.10).aspx . Acessado em: 02/06/2014. http://pt.wikipedia.org/wiki/RADIUS CHAVES, TIAGO. Autenticação IEEE 802.1x baseada no protocolo radius e serviço de diretorio LDAP aplicado a rede GIGAUFOPNET Disponível em: http://www.decom.ufop.br/menotti/monoII102/files/BCC391-102-vf04.1.4174TiagoRodriguesChaves.pdfl. Acesso em: 03/06/2014. DSL Forum Technical TR-101, “Migration to Ethernet-Based DSL Aggregation”, abril 2006.