04 - RADIUS e TACACS+ (AAA)
video: https://youtu.be/... no frontmatter da nota.RADIUS e TACACS+ (AAA)
1. Conceito de AAA
AAA é o acrônimo de Authentication, Authorization, Accounting — os três pilares do controle de acesso em redes corporativas:
- Authentication (Autenticação): comprovar quem é o usuário (senhas, certificados, tokens).
- Authorization (Autorização): definir o que o usuário pode fazer (comandos privilegiados, acesso a VLANs, níveis administrativos).
- Accounting (Contabilidade): registrar o que foi feito (logs de sessão, comandos executados, duração, volume de dados).
Em redes corporativas, equipamentos como roteadores, switches, firewalls, access points e VPN gateways delegam o processamento AAA a um servidor centralizado, evitando configuração individualizada em cada equipamento. Dois protocolos dominam esse espaço: RADIUS e TACACS+.
2. RADIUS (Remote Authentication Dial-In User Service)
Histórico e Padrões
O RADIUS foi desenvolvido pela Livingston Enterprises em 1991 para autenticar usuários em servidores de acesso discado. As RFCs mais relevantes:
| RFC | Ano | Conteúdo |
|---|---|---|
| 2865 | 2000 | RADIUS (Authentication) |
| 2866 | 2000 | RADIUS Accounting |
| 3579 | 2003 | RADIUS & 802.1X |
| 5176 | 2008 | Dynamic Authorization (CoA) |
| 6613-6615 | 2011 | RADIUS over TCP, DTLS, TLS |
Portas e Transporte
- UDP 1812 — autenticação.
- UDP 1813 — accounting.
- (algumas implementações antigas usam UDP 1645/1646)
O uso de UDP foi uma decisão histórica (1990s); falhas são tratadas por retransmissões com timers. RFC 6613/6614 adiciona TCP e TLS para ambientes modernos.
Estrutura do Pacote RADIUS
Cada pacote contém:
- Code (1 byte): tipo de mensagem (Access-Request=1, Access-Accept=2, Access-Reject=3, Accounting-Request=4, Access-Challenge=11, CoA-Request=43, Disconnect-Request=40).
- Identifier (1 byte): correlaciona request e response.
- Length (2 bytes): tamanho total do pacote.
- Authenticator (16 bytes): HMAC/MD5 para integridade.
- Attributes (variável): TLVs com dados da sessão.
Atributos Comuns
| ID | Nome | Função |
|---|---|---|
| 1 | User-Name | Login do usuário |
| 2 | User-Password | Senha (criptografada com shared secret) |
| 4 | NAS-IP-Address | IP do equipamento de rede |
| 6 | Service-Type | Tipo de serviço (login, framed, admin) |
| 79 | EAP-Message | Tunelamento EAP (802.1X) |
| 26 | Vendor-Specific | Atributos proprietários (Cisco AV-Pairs) |
| 40 | Acct-Status-Type | Start, Stop, Interim-Update |
| 42 | Acct-Input-Octets | Bytes recebidos pelo usuário |
| 43 | Acct-Output-Octets | Bytes enviados ao usuário |
| 46 | Acct-Session-Time | Duração em segundos |
Fluxo Típico
Usuário NAS (roteador/AP) Servidor RADIUS
| | |
| -- login ----> | |
| | -- Access-Request --> |
| | <-- Access-Accept --- | (Service-Type, Framed-IP, VLAN-ID)
| <-- autorizado | |
| | -- Acct-Start -----> |
| | -- Acct-Stop -------> |
Características do RADIUS
- Autenticação e autorização combinadas em um único Access-Request/Accept.
- Accounting separado em mensagens independentes.
- UDP: tolerante a perdas de pacotes.
- Sem separação clara A/A/A: o Access-Accept carrega atributos de autorização.
- Sessão sem estado: cada request carrega o Authenticator.
3. TACACS+ (Terminal Access Controller Access-Control System Plus)
Histórico
O TACACS original foi desenvolvido nos anos 1980 (RFC 1492, experimental). A Cisco estendeu o protocolo em 1993, criando o TACACS+, que se tornou o padrão de facto para administração de equipamentos de rede. Embora tenha um draft RFC, TACACS+ nunca foi publicado como RFC final; a especificação oficial é o draft-ietf-opsawg-tacacs.
Porta e Transporte
- TCP 49 — usa TCP (mais confiável que UDP do RADIUS).
- Tráfego pode ser cifrado com TLS ou em texto (raro em produção).
Separação A/A/A
Diferente do RADIUS, TACACS+ separa explicitamente as três funções:
| Função | Mensagens TACACS+ |
|---|---|
| Authentication | START, REPLY, CONTINUE |
| Authorization | REQUEST, RESPONSE |
| Accounting | REQUEST, REPLY |
O fluxo para administrar um switch:
Admin Switch (NAS) Servidor TACACS+
| | |
| -- login ----> | |
| | -- Auth START -------> |
| | <-- Auth REPLY ------- | (precisa senha)
| -- senha ---> | |
| | -- Auth CONTINUE ----> |
| | <-- Auth REPLY ------- | (autenticado)
| | -- Authoriz REQUEST --> |
| | <-- Authoriz REPLY --- | (permitido/denegado)
| == executa == | -- Acct REQUEST -----> |
A separação permite que o switch consulte autorização para cada comando individual. Se o admin tentar reload, o switch pergunta ao TACACS+ "este usuário pode rodar reload?". Essa granularidade é o grande diferencial do TACACS+ para RADIUS em administração de dispositivos.
4. Comparativo RADIUS vs TACACS+
| Característica | RADIUS | TACACS+ |
|---|---|---|
| Transporte | UDP 1812/1813 | TCP 49 |
| RFC | 2865+ | Draft apenas |
| Separação A/A/A | Combinada | Separada |
| Foco | Acesso de usuários a rede | Administração de dispositivos |
| Autorização por comando | Não nativo | Sim (granular) |
| Suporte a 802.1X, VPN | Excelente | Limitado |
| Suporte a login admin de switch | Limitado | Excelente |
| Cifra corpo | Apenas senha é cifrada | Corpo todo cifrado |
| Sessão | Sem estado | Orientado a sessão TCP |
5. Quando Usar Cada Um
Use RADIUS
- Autenticação de usuários finais (802.1X, Wi-Fi WPA-Enterprise).
- VPN remota (IPSec, SSL VPN, OpenVPN).
- Acesso a redes convidadas.
- ISP AAA (PPPoE).
Use TACACS+
- Administração de equipamentos de rede (roteadores, switches, firewalls).
- Controle granular de comandos por usuário.
- Auditoria de quem fez o quê (comandos executados em cada dispositivo).
- Ambientes com múltiplos administradores e níveis de privilégio.
Use Ambos
Em redes corporativas de médio e grande porte, é comum usar ambos: RADIUS para usuários finais (802.1X em Wi-Fi, VPN) e TACACS+ para administradores de rede (login SSH/HTTPS em switches e roteadores).
6. Servidores AAA
FreeRADIUS
Implementação open-source mais difundida (Linux). Configurável via arquivos em /etc/freeradius/:
# /etc/freeradius/3.0/clients.conf
client corporate-nas {
ipaddr = 192.168.1.0/24
secret = SenhaSecretaCompartilhada
}
# /etc/freeradius/3.0/users
joao Auth-Type := PAP, Cleartext-Password := "senha123"
Service-Type = NAS-Prompt-User,
Cisco-AVPair = "shell:privilege=15"
tac_plus (TACACS+ daemon)
# /etc/tacacs+/tac_plus.conf
key = SenhaSecretaCompartilhada
user = joao {
login = PAM
service = exec {
priv-lvl = 15
}
cmd = reload { deny }
cmd = show { permit .* }
}
Servidores Comerciais
- Cisco Identity Services Engine (ISE) — líder de mercado, integra RADIUS e TACACS+.
- Aruba ClearPass — forte em redes Wi-Fi.
- Microsoft NPS — RADIUS nativo do Windows Server.
7. Integração com 802.1X
O RADIUS é o protocolo padrão para autenticação 802.1X. O fluxo:
Supplicant (cliente) Authenticator (switch/AP) RADIUS Server
| -- EAPOL-Start ----------> | -- Access-Request(EAP) ------> |
| <- EAP-Request/Identity - | <-- Access-Challenge(EAP) ---- |
| == EAP method (TLS/PEAP) = | -- Access-Request(EAP) ------> |
| | <-- Access-Accept(EAP-Success) |
| == porta liberada VLAN X | |
Atributos RADIUS típicos para 802.1X:
Tunnel-Type=VLAN(13),Tunnel-Medium-Type=802(6),Tunnel-Private-Group-ID=100(81) — atribui cliente à VLAN 100.Filter-Id(11) — nome da ACL a aplicar.
8. CoA (Change of Authorization)
O RFC 5176 introduziu CoA, permitindo que o servidor RADIUS envie comandos ao NAS em tempo de execução:
- Desconectar usuário (Disconnect-Request).
- Mudar VLAN do usuário.
- Re-autenticar sessão.
Essa funcionalidade é essencial em NAC (Network Access Control) — um usuário detectado com malware pode ser movido para uma VLAN de quarentena sem necessidade de re-login.
9. Configuração Prática no Cisco
RADIUS em switch Cisco
aaa new-model
aaa authentication login default group radius local
aaa authorization exec default group radius local
aaa accounting exec default start-stop group radius
!
radius server FREERADIUS
address ipv4 192.168.1.10 auth-port 1812 acct-port 1813
key SenhaSecretaCompartilhada
TACACS+ em switch Cisco
aaa new-model
tacacs server PRIMARY
address ipv4 192.168.1.20
key SenhaSecretaCompartilhada
single-connection ! reusa conexão TCP (eficiência)
!
aaa authentication login default group tacacs+ local
aaa authorization exec default group tacacs+ local
aaa authorization commands 15 default group tacacs+ local
aaa accounting exec default start-stop group tacacs+
aaa accounting commands 15 default start-stop group tacacs+
!
username admin privilege 15 secret SenhaLocalAdmin123
Testar configuração
test aaa group tacacs+ joao senha123 legacy
# User successfully authenticated.
show tacacs
show aaa servers
show accounting log
10. Boas Práticas
- Shared secret entre NAS e servidor deve ter pelo menos 20 caracteres, aleatório.
- Nunca usar mesmo secret em todos os NAS (comprometimento de um comprometeria todos).
- Configurar 2 servidores RADIUS/TACACS+ em cada equipamento para failover.
- Habilitar accounting em todos os NAS e centralizar logs em SIEM (Splunk, ELK).
- Integrar TACACS+ com MFA (TOTP) ou servidores de senhas como CyberArk, BeyondTrust.
- Restringir acesso aos servidores AAA por ACL/firewall.
11. Tabela Resumo
| Conceito | RADIUS | TACACS+ |
|---|---|---|
| RFC | 2865+ | Draft |
| Porta | UDP 1812/1813 | TCP 49 |
| Transporte | UDP | TCP |
| A/A/A | Combinado | Separado |
| Use para | Usuários finais | Admin de dispositivos |
| Implementação OSS | FreeRADIUS | tac_plus-ng |
12. Conclusão
RADIUS e TACACS+ são pilares do controle de acesso em redes corporativas modernas. Apesar de complementares, têm nichos distintos: RADIUS domina autenticação de usuários finais (Wi-Fi 802.1X, VPN, ISP), enquanto TACACS+ é o padrão para administração de equipamentos de rede por sua granularidade de autorização por comando e auditoria detalhada. Para engenheiros de redes corporativas, dominar ambos é essencial: configurar NAS, integrar com backends de identidade (LDAP, Active Directory), implementar failover entre servidores, habilitar accounting para auditoria e aplicar MFA em contas privilegiadas. A transição da indústria para soluções cloud-native (Okta, Azure AD) não elimina RADIUS/TACACS+ — estes continuam como interface padronizada entre equipamentos de rede e serviços de identidade.