Protocolo Radius - RafaelFazzolino/ServicoRadiusLdap GitHub Wiki

Protocolo Radius

Remote Authentication Dial In User Service (RADIUS) é um protocolo da camada de rede que especifica e provê, de maneira descentralizada, serviços de autorização, autenticação e contabilização. Estes protocolo é voltado ao processo de gerenciamento de clientes que buscam utilizar determinado serviço da rede, geralmente utilizado por ISPs (Internet Service Providers), provedores de internet móvel e algumas redes privadas (corporativas ou educacionais, por exemplo).

Nos tópicos seguintes estão descritas as características do protocolo Radius, além da contextualização histórica da utilização do mesmo.

Introduzindo o protocolo Radius

Foi desenvolvido pela Livingston Enterprises, em 1991, com o objetivo de acessar servidores de autenticação e protocolos de contabilização. Anos depois, foi introduzido como padrão do Internet Engineering Task Force. Devido a sua "fama" com a comunidade, o protocolo RADIUS passou a ser utilizado por ISP's em diversas empresas no gerenciamento de acessos a internet e outros serviços, como por exemplo redes privadas e serviços de e-mail.

As funções básicas de um servidor RADIUS são:

  • autenticação de usuários ou dispositivos antes da concessão de acesso a rede.
  • autorização de outros usuários ou dispositivos a usar determinados serviços providos pela rede.
  • para informar sobre o uso de outros serviços.

Radius

O protocolo RADIUS é, basicamente, um serviço baseado no protocolo UDP de pergunta e resposta. Estas perguntas e respostas seguem um padrão de tabela, onde cada variável possui um valor. Cada variável possui um número para representar seu nome em um dicionário.

Cada valor das variáveis podem ser: string, integer, octeto, ipaddr (endereço ip) e tipo estendido (caso seja necessário, para representar parâmetros personalizados de cada fabricante de equipamentos). Para acesso, o RADIUS possui as portas 1645 e 1812 para autenticação, e as portas 1646 1813 para contabilidade.

A arquitetura do RADIUS possui funções distintas para cada equipamento participante:

  • Cliente: é o host que deseja usufruir de um recurso da rede, como por exemplo, uma estação que deseja se associar a um Access Point.

  • NAS (Network Autentication Server): é o host que recebe uma solicitação do cliente (o Access Point por exemplo) e autentica esse pedido no servidor RADIUS.

  • Servidor RADIUS: é o host que validará o pedido do NAS. A resposta do pedido de autenticação pode ser positiva (Access-Accept) acompanhada da tabela de parâmetros de resposta ou negativa (Access-Reject) sem nenhum parâmetro.

Benefícios de sua utilização

Dentre os benefícios de sua utilização, estão:

  • Solução aberta e escalável;
  • Amplo suporte;
  • Fácil configuração;
  • Separação entre segurança e comunicação de processos;
  • Adaptável à grande parte dos sistemas de segurança;
  • Viável com qualquer dispositivo de comunicação que suporta o protocolo cliente RADIUS;

Arquitetura

A arquitetura cliente-servidor implementada pelo RADIUS provê, de maneira a obter suporte de toda a comunidade, uma solução aberta e escalável. Sua utilização em diversos contextos é totalmente viável devido a sua facilidade de adaptação. Em organizações que já investiram em sistemas de segurança, sua utilização se torna simples e viável, já que clientes podem modificar o servidor RADIUS de forma a executá-lo juntamente com qualquer sistema de segurança.

A natureza distributiva de RADIUS efetivamente separa os processos de segurança (realizada no servidor de autenticação) dos processos de comunicação (implementado pelo pool de modem pelo NAS (Network Access Server)), permitindo um único armazenamento de informação centralizada para informação de autorização e autenticação.

FREERADIUS

FreeRADIUS é o maior servidor RADIUS de código aberto do mundo, provendo autenticação, autorização e contabilidade. Bastante utilizado em empresas privadas, órgãos públicos e instituições de ensino. Foi desenvolvido, por Alan DeKok e Miquel Van Smoorendburg, em 1999, de forma a encorajar o desenvolvimento comunitário de extensões.

Sua popularidade é fruto da enorme quantidade de benefícios da sua utilização, bem acima de outros servidores RADIUS existentes no mundo. Entre os benefícios de sua utilização, se encontram:

  • Funcionalidades Diferentes tipos de autenticação são melhor suportados pelo FreeRADIUS do que por qualquer outro servidor open-source RADIUS. Um exemplo disso, é o suporte a EAP (Extensible Authentication Protocol), o que nenhum outro servidor open-source RADIUS suporta.

    Outra característica única do FreeRADIUS é a possibilidade de criar servidores virtuais, minimizando os custos de manutenção e configuração em organizações que optem por sua utilização.

  • Modularidade:

    Sua arquitetura segue um padrão modular, o que facilita a extensão do mesmo pela comunidade de software livre que se interesse. Este padrão facilita a adição e remoção de módulos, sem prejudicar o funcionamento do sistema como um todo.

    Esta flexibilidade viabiliza sua utilização nos mais diferentes contextos, desde a aplicação embarcada (com processamento e memória reduzidos) até máquinas com gigabytes de memória RAM e alto processamento.

  • Escalabilidade:

    Sua capacidade de tratamento de requisições possui escalabilidade facilitada, reconfigurando algumas configurações padrões. Diversas empresas grandes, com milhões de funcionários, utilizam servidor FreeRADIUS para realização das suas autenticações, por exemplo. E geralmente, apenas um servidor FreeRADIUS é suficiente para sustentar todas as requisições da empresa.

Protocolo AAA

AAA é uma sigla para Authentication, Authorization, Accounting. Que serão explicada abaixo.

Autenticação

Autenticação se refere ao processo de validação da identidade do usuário combinando as credenciais fornecidas pelo usuário (por exemplo, nome, senha) com aqueles configurados no servidor AAA. Se as credenciais batem, o usuário é autenticado e ganha acesso à rede.

A autenticação pode falhar, também, em casos onde o acesso vem de uma sub-rede que não é esperada pelo servidor AAA.

Uma ISP, por exemplo, pode também negar acesso à rede para autenticar usuários se a conta do usuário estiver suspensa. Um administrador pode escolher permitir acesso limitado à rede para usuários desconhecidos também. Por exemplo, um administrador pode fornecer acesso para uma área onde o usuário pode adquirir uma conectividade adicional. Neste último exemplo, é mais frequentemente vista em pontos de acesso WiFi pagas.

Autorização

Autorização se refere ao processo de determinar quais permissões serão concedidas ao usuário. Por exemplo, o usuário pode não ser permitido certos tipos de acesso à rede ou permitido à emitir certos comandos.

Accounting (Contabilização)

Contabilização se refere à gravação de recursos que o usuário consome durante o tempo que ele está na rede. A informação coletada pode incluir o total de tempo de utilização do sistema, o total de dados enviados, ou a quantidade de dados recebidos pelo usuário durante uma sessão.