Você está na página 1de 5

Radius e 802.

1X Sysadmin

Acesso à rede mais seguro com 802.1X, Radius e LDAP

Batendo a porta
(na cara dos estranhos)
O protocolo Radius é normalmente usado para autenticar usuários em
provedores de acesso discado. Mas o Radius também é útil em ambientes
corporativos: combinado com o protocolo 802.1X, ele força os usuários a

www.sxc.hu
se autenticar primeiro e, só depois, o switch abre uma porta para eles.
por Michael Schwartzkopff

A
taques originados de dentro da Usuários de Serviços Discados). Quando recursos de seu próprio departamento,
própria rede são mais perigosos e implementado em um servidor Linux, nor- como se estivessem sentados em suas
difíceis de detectar do que os vin- malmente devolve ao cliente requerente próprias mesas.
dos de fora. Um invasor que possa “plu- um número IP e um gateway padrão para O protocolo 802.1x já é previsto para
gar” seu laptop em uma rede pelo lado de o usuário, mas o protocolo tem muito tratar da autenticação de usuários, desde
dentro ganha acesso instantâneo a uma mais potencial que isso. Pode-se usar um que um programa externo ofereça na rede
porção de dados e serviços sem precisar servidor Radius para atribuir uma VLAN os serviços “AAA” (Authentication, Autho-
de autenticação. Mesmo os dados “pro- (rede local virtual) à porta do switch em rization and Accounting ou Autenticação,
tegidos” por algum tipo de autenticação que o usuário está conectado. Essa téc- Autorização e Contabilidade). O servidor
– por exemplo, quando o servidor de arqui- nica evita a necessidade de uma infraes- Freeradius se encarrega disso, acessando
vos pede um “login” – estão em grande trutura de roteamento muito complexa, um catálogo (“diretório”) OpenLDAP que
perigo, já que uma rede bastante ativa mas ainda assim restringe o tamanho guarda as informações sobre as contas.
é uma mina de jóias preciosas – basta do domínio de broadcast. Além disso, Com tal aparato, fica fácil gerenciar sem
farejá-la com um sniffer para obter, em VLANs podem ser usadas para separar traumas um número impressionante de
poucas horas, as senhas de quase todos virtualmente os departamentos de uma usuários. O sistema é compatível com
os usuários. Além disso, é tarefa trivial grande empresa, melhorando em muito clientes Windows e Unix/Linux indis-
fazer testes para verificar a presença de a segurança interna – uma vantagem criminadamente e permite implementar
mecanismos de defesa (fi rewalls, IDSs) e adicional muito importante. Embora os redundâncias para garantir alta disponibi-
mais fácil ainda “detonar” literalmente a usuários possam autenticar-se no sistema lidade, usando proxies para os servidores
rede, deixando-a fora de serviço. onde quer que estejam (do refeitório, por Radius e replicação de catálogos para os
Uma maneira de prevenir tais malan- exemplo), eles conseguem ver apenas os bancos de dados LDAP. ➟
dragens é implementar uma função de
autenticação na camada 2 do modelo Dados (Usuário, Senha, Chave WEP, VLAN, ...)
OSI (ou seja, no nível Ethernet) usando
Protocolo de autenticação (MD5, CHAP, PAP, ...)
o protocolo 802.1X [1]. Um switch que
Túnel Seguro (TLS or PEAP)
reconheça esse protocolo e um servidor
Freeradius é tudo de que você precisa EAP (Carga)

para se divertir. Como qualquer meca- EAPOL Radius


nismo de autenticação na camada 2
opera na rede local – ou seja, precisa
de conexão física – um intruso não EAP Radius
Server
conseguirá usufruir dos recursos dis- Ethernet
Switch

poníveis, mesmo que esteja conectado


diretamente, sem autenticação. Requerente Autenticador Servidor de autenticação
O nome Radius significa Remote Authen-
tication Dial-in User Service Protocol (Pro- Figura 1: O protocolo 802.1X cobre múltiplas camadas. O EAP lida com a troca de dados entre o requerente
tocolo de Autenticação Remota para e o autenticador; o Radius é responsável pela conexão entre o autenticador e o servidor de autenticação.

abril 2005 edição 07 63


www.linuxmagazine.com.br
Sysadmin Radius e 802.1X

Com pouquíssimo esforço extra, a solução Variações do EAP Challenge Handshake Authentication
pode ser aplicada para garantir a segurança O EAP define uma variedade grande de Protocol. Os administradores precisam,
de redes sem fio (WLANs, ver quadro “o métodos de autenticação. O EAP/MD5 é apenas, instalar o certificado dos servi-
802.1X e as redes sem fio”). Os administra- o tradicional "digite seu nome e senha". O dores em cada cliente.
dores podem, ainda, se beneficiar das vastas protocolo transfere um hash com o nome Quando o cliente sai do sistema ou
opções de contabilidade disponíveis. do usuário e uma semente arbitrária. O encerra a conexão, o PEAP detecta a
servidor usa uma senha em texto puro e a mudança e revoga a autorização. Isso deixa
802.1X e EAP semente arbitrária para gerar seu próprio a conexão com um estado bem definido
O protocolo IEEE 802.1X oferece controle hash, que compara com o hash entrante. em ambos os lados: encerrado!
de acesso na camada 2 do modelo OSI (a Esse método é simples de implementar,
camada MAC, normalmente ocupada pelo mas muito vulnerável a ataques de dicio- Dividindo a carga
protocolo Ethernet). O IEEE 802.1X permite nário. Além disso, numa LAN sem fio, é Em redes exclusivamente de cobre, a
a autenticação de clientes enquanto estes importante criar chaves WEP usando combinação EAP/MD5 é quase sempre a
estabelecem uma conexão com a rede. Isso EAP/MD5. Portanto, essa abordagem é melhor opção. É tudo de que se precisa
garante que os indesejáveis sejam barrados apropriada apenas para pequenas redes para atribuir VLANs dinamicamente e
antes mesmo de ganhar um endereço IP via comuns, com cabos de cobre. – em contraste com o PEAP – é suportada
DHCP (Dynamic Host Configuration Proto- Com a segunda variação, EAP/TLS, por uma grande variedade de switches.
col). Entre outras coisas, o padrão especifica tanto o servidor como o cliente precisam Adicionalmente, o administrador tem que
a forma como o protocolo de autenticação de certificados X.509. Esse método é bem quebrar menos a cabeça para gerenciar o
(EAP, Extensible Authentication Protocol ou mais seguro, mas para que funcione é monstro, ao contrário dos complexíssimos
Protocolo Extensível de Autenticação) é necessário que já exista uma infraestru- PEAP e, em particular, EAP/TLS.
encapsulado no protocolo Ethernet, seja den- tura de PKI (Public Key Infrastructure ou Um switch normalmente já possui
tro do cabo ou da interface de rádio. É por Infraestrutura de Chaves Públicas) na funcionalidades de NAS, traduzindo o
isso que o 802.1X também é conhecido como rede. O terceiro método mais comum protocolo EAPOL (EAP over LAN) do
EAPOL (EAP over LAN, EAP sobre LAN). é usando o PEAP (Protected Extensible requerente para o Radius, que é o que o
Além do EAP, o 802.1X também trabalha com Authentication Protocol ou Protocolo de servidor de autenticação espera. Muitos
o protocolo PPP (Point to Point Protocol, ou Autenticação Protegido e Extensível). dispositivos oferecem essa opção quando
Protocolo Ponto a Ponto). O PPP e o EAP são Com ele, apenas os servidores precisam configurados para 802.1X. Você precisará
padrões da Internet (normatizados pelo IETF do certificado; o protocolo usa o certifi- informar o endereço e a senha do servi-
com documentos RFC), enquanto o 802.1X cado para estabelecer uma conexão TLS dor Radius. Em muitos casos, os admi-
foi desenvolvido pelo IEEE (Institute of Elec- e, por ela (que está criptografada), envia nistradores podem configurar múltiplos
trical and Electronics Engineers). o nome e a senha do usuário. Interna- servidores para oferecer níveis bem altos
O EAP é uma estrutura básica para mente, usa-se o MSCHAPv2, Microsoft de disponibilidade e backup.
vários métodos de autenticação, per-
mitindo que sejam usadas mais infor- O 802.1X e as redes sem fio. Administração fácil com o TinyCA
mações do que a combinação usual de Se você preferir uma ferramenta gráfica para geren-
O Freeradius, em combinação com o protocolo ciar seus certificados, por que não testar o TinyCA
nome e senha. Ele usa um autenticador
802.1X, pode ser usado para implementar um [3], versão 0.6.4 ou posterior? Essa ferramenta
no padrão NAS – Network Access Server esquema de autenticação em redes sem fio. permite que os administradores adicionem o OID
– para abrir um túnel até o servidor de Com esse arranjo, é possível trocar as fraquís- apropriado (por exemplo 1.3.6.1.5.5.7.3.1 para o ser-
autenticação através da rede. Isso per- simas chaves WEP (Wired Equivalent Privacy) vidor) na caixa de diálogo avançada do certificado.
mite que outros protocolos usem o túnel. a cada meia hora para cada cliente. Mas isso O próximo passo é copiar o novo certificado (o
O 802.1X define um grande número de requer que sejam instalados os protocolos PEAP script cria um certificado chamado srv-cert.
termos para as entidades envolvidas no (Protected Extensible Authentication Protocol ou pem), bem como o certificado raiz do CA, root.
processo (ver figura 1): Protocolo Extensível e Protegido de Autentica- pem, para o subdiretório certs dentro do diretó-
P O cliente que requisita a autenticação é ção) ou TLS, pois os hashes MD5 são incapazes rio de configuração do servidor Radius. Para usar
chamado de Requerente (Supplicant); de gerar chaves de criptografia. Embora não o TinyCA, é necessário também copiar o arquivo
P O servidor que autentica o cliente é seja lá muito bem escrito, há um bom HOWTO com a chave privada. Os usuários do Windows®
sobre o assunto em [2]. precisam instalar o certificado root.der; basta
conhecido como Servidor de Autenti-
clicar duas vezes sobre o arquivo. Isso também
cação (Authentication Server); Para poder usar o PEAP, o administrador se aplica ao certificado do servidor Radius, srv-
P O dispositivo intermediário entre essas precisa criar um certificado para o servidor cert.p12 (no formato PKCS#12).
duas entidades é o Network Authenti- Radius. Para clientes Windows®, o certificado
Agora, ajuste as seções tls e peap da configu-
cation Server (NAS), também chamado precisa de um OID (Object ID) específico. Há
ração do EAP no servidor Radius, conforme des-
de Autenticador. um script chamado CA.all no subdiretório crito em [2]. As linhas seguintes fazem parte da
Esse arranjo vai funcionar em qualquer scripts/ do diretório de códigos fonte do configuração padrão, mas estão desabilitadas. Se
rede na qual trafeguem pacotes Ethernet Freeradius que gera certificados de exemplo o Radius for executado em modo de depuração
– sejam redes normais com cabos ou sem fio. para servidores e clientes. Esses certificados (radiusd -X), o serviço Radius mostrará na
O white paper dos Interopnet Labs dá uma são necessários apenas se os protocolos EAP/ tela uma enxurrada de mensagens, o que pode
bela introdução sobre o assunto [1]. TLS forem usados. ser de grande valia quando algo dá errado.

64 abril 2005 edição 07


www.linuxmagazine.com.br
Radius e 802.1X Sysadmin

Listagem 1: Mapeamento de atributos


01 replyItem Tunnel-Type radiusTunnelType
02 replyItem Tunnel-Medium-Type radiusTunnelMediumType
03 replyItem Tunnel-Private-Group-Id radiusTunnelPrivateGroupId

Listagem 2: LDIF para a VLAN 2


01 dn:uid=vlan_02,ou=profiles,ou=radius,dc=domain,dc=br
02 uid: vlan_02
03 radiusTunnelMediumType: IEEE-802
04 radiusTunnelType: VLAN
05 radiusTunnelPrivateGroupId: 2
06 objectClass: radiusprofile
07 objectClass: top

Listagem 3: Referência à VLAN


01 dn:uid=testuser2,ou=users,ou=radius,dc=domain,dc=br
02 uid: testuser2
03 userPassword: password
04 objectClass: radiusprofile
05 objectClass: top
06 radiusProfileDn: uid=vlan_02,ou=profiles,ou=radius,dc=domain,dc=br

Freeradius A instalação é bastante simples e


O Freeradius [4] é uma excelente esco- segue os três passos mágicos que
lha para servidor Radius. A versão 1.0 todos conhecemos, basta digitar: con-
foi lançada recentemente e reconhece figure && make && make install
um grande número de EAPs, espe- em um terminal. Se tudo correr bem
cialmente PEAP. Seu antecessor, o durante a compilação, os arquivos de
0.93, não era lá muito compatível com configuração estarão armazenados em
quase nada, portanto foi um aprimo- /usr/local/etc/raddb. A primeira
ramento e tanto. Os desenvolvedores coisa de que o Freeradius precisa é a
introduziram uma opção para auten- configuração para liberar – ou não – os
ticação contra um domínio Windows. clientes do Radius (em nosso caso, o
E o Freeradius pode, ainda, obter as NAS). O arquivo clients.conf cuida
informações de autenticação de um desse detalhe. A configuração para
grande número de fontes: o manjado um switch com endereço IP estático
/etc/passwd e mais LDAP, MySQL, 192.168.200.20 se parece com a mos-
PostgreSQL e Oracle. trada a seguir: ➟

Switch (em modo NAS)

Servidor Radius Servidor LDAP

VLAN 1
VLAN 2

Novo cliente

Figura 2: Novos clientes devem, primeiro, autenticar-se contra o NAS (ou seja, o switch), que age
como um proxy para o sistema Radius. Este, por sua vez, consulta em um banco de dados LDAP se o
usuário existe mesmo e quais recursos pode acessar.

abril 2005 edição 07 65


www.linuxmagazine.com.br
Sysadmin Radius e 802.1X

client 192.168.200.20 { toda e qualquer mensagem de erro ou


secret = testando123 aviso. O radtest é um cliente de testes testuser Auth-Type := Local, U
shortname = comutador03 bastante útil para pôr à prova suas con- User-Password == "senha"
} figurações iniciais. Reply-Message = "Bem-vindo, %u",
Com os ajustes mencionados até agora, Tunnel-Medium-Type = IEEE-802,
O administrador precisa informar a emita o seguinte comando: Tunnel-Private-Group-Id = 1,
senha do switch (secret, no exemplo ante- Tunnel-Type = VLAN
rior) na configuração do servidor Radius. radtest testuser senha localhost U
O Freeradius aceita a notação CIDR para 0 testando123. Com isso, dizemos ao switch que ele
redes inteiras: 192.168.200.0/24. precisa associar a VLAN 1 ao usuário
Versões mais antigas do Freeradius Os últimos três parâmetros referen- testuser depois de autenticado. Isso
pediam a definição de um dicionário, ciam o servidor Radius – para que isso é praticamente tudo. É óbvio que isso
dictionary.tunnel, para os valores de funcione, é preciso adicionar localhost funciona bem com um número redu-
retorno da VLAN. Na versão 1.0 isso não ao arquivo clients.conf para que seja zido de usuários: o administrador pode
é mais necessário: a configuração do reconhecido como um cliente válido do simplesmente adicionar configurações
EAP não usa o arquivo central de confi- Radius. O Freeradius deve responder com manualmente para os usuários restantes.
guração, radiusd.conf; em vez disso há a mensagem Access-Accept. Em redes maiores, entretanto, a coisa
um eap.conf que usa MD5 por padrão fica impraticável.
– mas que pode ser modificado. Colocando uma VLAN
na resposta do Radius OpenLDAP
Autenticando Usuários É claro que o protocolo pode dar a você O OpenLDAP [5] é uma boa escolha para o
O arquivo users especifica o tipo de mais do que uma simples mensagem de banco de dados do Freeradius. A arquite-
autenticação a ser usado para controlar resposta. Mais que isso, é possível fazer tura para essa implementação é mostrada
o acesso pelos usuários. A linha a seguir com que o programa arbitre o número na figura 2. Dusty Doris escreveu um exce-
deve servir para o teste inicial: de uma VLAN, por exemplo, permitindo lente tutorial sobre como combinar o Free-
que o switch interprete esse número e radius e o OpenLDAP, que pode ser lido em
testuser Auth-Type := Local, U aceite (ou rejeite) o cliente nessa VLAN. [6]. A documentação do Freeradius também
User-Password == "senha" Para que isso aconteça, é necessário possui um exemplo disso, mais precisa-
Reply-Message = "Bem-vindo, %u" modificar a resposta dada pelo Radius mente em doc/rlm_ldap.
para o usuário de teste. Observe que Entretanto, há uma "pegadinha" no
O servidor Radius deve ser colocado em quaisquer valores de retorno têm que esquema do LDAP, Radius-LDAPv3.schema
modo de depuração. O comando radiusd ser separados por vírgulas e indentados (também presente em doc). Esse esquema
-X ordena ao servidor que mostre, na tela, com espaços: não é estrutural, ou seja, só funciona em
conjunto com outro esquema, como por
Listagem 4: Configuração do Radius exemplo o inetorgperson.schema. Já o
esquema alternativo disponível em [6] foi
01 modules {
criado para ser usado especialmente com
02 ldap {
o Radius, mas não compreende os tipos
03 server = "ldap.domain.br"
de extensões que se usa no dia-a-dia.
04 identity = "cn=freeradius,ou=admins,ou=radius,dc=domain,dc=br"
Para que o Freeradius entenda as res-
05 password = senhasenha
postas para as VLANs devolvidas pelo
06 basedn = "ou=users,ou=radius,dc=domain,dc=br"
LDAP, precisamos fazer mapeamentos
07 filter = "(&(uid=%{Stripped-User-Name:-%{User-Name}})(objectclass=radiusprofile))"
(ldap.attrmap) na configuração do Radius
08 start_tls = no
(ver listagem 1).
09 dictionary_mapping = ${raddbdir}/ldap.attrmap
A figura 3 mostra a estrutura do catá-
10 password_attribute = userPassword
logo no LDAP. Os perfis (ou=profiles)
11 }
contêm as configurações das VLANs; a
12 }
listagem 2 mostra o arquivo LDIF para a
13 authorize {
uid=vlan_02 (veja a primeira linha). Para
14 preprocess
a configuração dos usuários (ou=users),
15 ldap
precisamos simplesmente referenciar o
16 eap
perfil do usuário com o perfil de VLAN
17 suffix
ao qual ele pertence (listagem 3, linha
18 files
6). Agora, basta informar ao servidor
19 }
Radius que ele pode acessar os serviços
20 authenticate {
do LDAP para gerenciamento de usuários.
21 eap
O arquivo de configuração radiusd.conf
}
dá conta disso.

66 abril 2005 edição 07


www.linuxmagazine.com.br
Radius e 802.1X Sysadmin

registrar na rede Clientes e Servidores


dc=domain,dc=de
usando o nome da para Linux
máquina. Para Linux há uma implementação do
ou=radius
Em contraste com protocolo 802.1X que podemos conside-
a opção EAP/MD5, rar como “bem madura”, o open1x [7]. O
o PEAP e o TLS ofe- projeto, que conta com o apoio comercial
recem opções adi- de empresas como a 3Com e a HP, atin-
ou=admins ou=users ou=profiles
cionais. Os usuários giu a versão 1.0 há pouco tempo e possui
precisam especifi- uma vasta documentação. Com ele, deve
car o certificado ser bem fácil integrar seus computadores
(...) (...)
CA a ser usado. O com Linux à rede.
Windows® também O servidor Freeradius possui uma gama
cn=freedarius

cn=billing

cn=replica

uid=example

uid=myuser

uid=vlan_01

uid=vlan_02
pode usar o nome enorme de opções para autenticação e
e a senha locais controle de acesso baseado nos requisi-
(ou seja, do pró- tos técnicos de cada rede. O exemplo que
Figura 3: Essa estrutura de LDAP contém os perfis do usuário e prio Windows) para demonstramos neste artigo é apenas uma
configurações para as VLANs. Em cada um dos perfis há uma chave entrar no sistema das muitas abordagens possíveis. Pelo
radiusProfileDn que aponta para a configuração correta de VLAN.
com autenticação fato de usar um serviço de catálogo LDAP
PEAP – assim, não para gerenciamento de usuários, o pro-
O exemplo na listagem 4 ordena ao é preciso “se logar” duas vezes. Essa jeto de segurança também é apropriado
Radius que se inscreva no servidor LDAP facilidade está localizada nas opções para redes bastante grandes em que o
(ldap.domain.br, linha 3) com a identi- avançadas de autenticação. risco de ataques originados de dentro é
dade e a senha configuradas (identity Entretanto, nesse caso o sistema usa assustadoramente alto. ■
e password, respectivamente, linhas 4 uma combinação Domínio/Usuário. Se não
e 5) e então autentique o usuário fil- estiver certo disso, a variante exata será Informações
ter com a senha password_attribute registrada nos logs do servidor Freeradius
[1] Artigo sobre o protocolo 802.1X
(linhas 7 e 10). Se isso funcionar, o ser- depois da primeira tentativa de login. Para – Interopnet Labs, “What is 802.1X?”:
vidor LDAP devolverá os parâmetros do entender esse formato, o Radius precisa http://www.ilabs.interop.net/
perfil adequado ao usuário (mapeado de algumas dicas. Se você tem interesse WLANSec/What_is_8021x-lv03.pdf
como radiusProfileDn). em aprender mais sobre o assunto, expe- [2] Freeradius e o Windows XP:
Um novo item DEFAULT no gerenciamento rimente o livro sobre Radius em [8]. http://text.broadbandreports.com/
de usuários do Radius (arquivo users) forum/remark,9286052~mode=flat
garante que as tentativas de autenticação Atrasadinhos… [3] TinyCA: http://tinyca.sm-zone.net/
usando EAP terão sucesso: Os clientes 802.1X da Microsoft têm todos
um problema crônico. Eles primeiro se [4] Freeradius, servidor Radius Open Source:
http://www.freeradius.org/
DEFAULT Auth-Type == EAP inscrevem (“logam-se”) em seu próprio
Fall-Through = yes domínio e só depois se autenticam na rede. [5] OpenLDAP: http://www.openldap.org/
Mas, como a rede não está disponível no [6] Freeradius e o OpenLDAP:
Ainda precisamos preparar os clientes momento que ele se “loga” no domínio, a http://doris.cc/radius/
para a autenticação via protocolo 802.1X. O tentativa de login falha e causa um erro. [7] Implementação livre e aberta do 802.1X:
projeto Open 1X [7] desenvolveu um software O servidor de domínio tem que estar, http://www.open1x.org/
para Linux que trata exatamente disso. O então, numa VLAN aberta ao público
[8] Radius – Securing Public Access to Private Resources
Windows® 2000 SP4 e o Windows® XP SP1 – em outras palavras, um atentado aos Jonathan Hassell; O'Reilly, 2002.
têm, ambos, funções nativas de autentica- pudores básicos de segurança. http://www.oreilly.com/catalog/
ção para esse propósito. O Windows® 2000 Há algumas ferramentas de terceiros que radius/index.html
precisa, entretanto, que o serviço Wireless tentam resolver o problema, colocando na
Configuration esteja ativo. rede requerentes 802.1X adicionais. Esses
clientes tipicamente permitem uma confi- Michael Schwartzkopff
Clientes Windows guração bem mais granular – permitindo trabalha para a Multi-
net Services GmbH, na
Sobre o autor

Há um campo chamado Authentication que os clientes Windows® sejam integra-


nas propriedades de conexão de rede. Nele, dos ao processo de login. Este começa Alemanha, como con-
escreva EAP com o tipo apropriado (MD5, autenticando os usuários contra a rede sultor de segurança e
redes. Sua especialida-
PEAP or TLS). Os usuários podem especi- baseada no protocolo 802.1X e, só depois
de é o protocolo SNMP.
ficar como o sistema deve responder se as disso, permite a autenticação normal no
Ele pegou a “gripe do
credenciais dos usuários não estiverem domínio Windows®. Entretanto, alguns Linux” lá atrás, em
disponíveis – por exemplo, quando ainda programas ainda não estão totalmente 1994, depois de trabalhar com a Yggdrasil,
não houver sido dado o login. Ao selecio- lixados e polidos, portanto teste bastante uma das primeiras distribuições Linux.
nar essa opção, o computador tentará se antes de comprar.

abril 2005 edição 07 67


www.linuxmagazine.com.br

Você também pode gostar