Tag Archives: AAA New Model

Notas AAA Authentication

O termo authentication, authorization, e accounting (AAA) refere-se a uma variedade comum de features de segurança.

O método + forte de autenticação é através de TACACS+ ou RADIUS.

Quando os routers/switchs recebem o user/password enviam-no encriptado para o servidor, recebendo uma resposta accept/reject do user em causa.

  RADIUS   TACACS+
Scope of Encryption: packet payload or just the password Password only  Entire payload
Layer 4 Protocol UDP  TCP
Well-Known Port/IOS Default Port Used for authentication 1812/1645* 49/49
Standard or Cisco-Proprietary RFC 2865  Proprietary

*Radius originally defined port 1645 as the well-known port, which was later changed to port 1812.

Usando Métodos default na Autenticação

Um conjunto de métodos de autenticação, será usado cada um por ordem até um dos métodos retornar uma resposta da autenticação, como accept/reject o user.

Uma config simples de AAA define um conjunto default de métodos de autenticação, + um segundo conjunto default de métodos de autenticação usado pelo comando enable

Os métodos default de autenticação do login aplicam-se á console, vty, e aux. Os métodos default de autenticação usados quando é utilizado o comando enable, indicam o que o IOS deve fazer quando o user digita este comando.

Descrição dos passos:

  1. Ativar o AAA com o comando global aaa new-model
  2. Definir o IP e key de encriptação para o tipo de servidor em questão: radius-server host ,  radius-server key,  tacacs-server  host , e tacacs-server key
  3. Definir por default o conjunto de métodos de autenticação para o acesso ao CLI usando o comando aaa authentication login default
  4. Definir por default o conjunto de métodos de autenticação para o acesso enable-mode usando o comando aaa authentication enable default

No exemplo seguinte, são usados 2 servidores RADIUS, um configurado com a porta default do Cisco IOS 1645 e a outra com a 1812. Com base neste pressuposto autenticação é feita da seguinte forma:

  • Quando é feita uma tentativa de login, o Cisco IOS testa a autenticação usando o 1º Server RADIUS; Se não existir resposta, o IOS tenta o 2º Server. Se não existir qualquer resposta, o acesso é permitido ao user (authentication mode none)

Quando qualquer user executa o comando enable, o router tenta usar os servers RADIUS, por ordem. Se não existir qualquer resposta, o router aceita o login de um user/password local no router cisco/cisco

enable secret 5 $1$Gvzt$ux/PhTwSscDNOyNIyr5Be/
username cisco password 0 ciscoaaa new-model
aaa authentication enable default group radius local
aaa authentication login default group radius none
!
radius-server host 10.1.1.1 auth-port 1812 acct-port 1646
radius-server host 10.1.1.2 auth-port 1645 acct-port 1646
radius-server key cisco
!
line con 0
password cisco
line vty 0 4
password cisco

Usando Multiplos Métodos de Autenticação

O comando aaa authentication suporta até 4 métodos num único comando. Adicionalmente não existe limite do nº de servidores RADIUS/TACACS+ referenciados por grupo RADIUS/TACACS+.

A lógica do Cisco IOS usada para estes métodos é:

  • Os métodos são executados por ordem segundo o comando. Quando o 1º método falha, é executado o 2º, e assim em diante. É usado o 1º método que recebe a decisão de allow ou reject
  • Se o método definir um grupo de servidores, é usado o 1º da lista. Caso este não responder, são usados os seguintes de forma sequencial. É usado o 1º server que receba a decisão de allow ou reject

Se não existir nenhuma resposta para qualquer método, o request é rejeitado.

Method  Meaning 
group radius Use the configured RADIUS servers
group tacacs+ Use the configured TACACS+ servers
group  name Use a defined group of either RADIUS or TACACS+ servers
enable Use the enable password, based on enable secret  or  enable password commands
line Use the password defined by the password command in  line  configuration mode
local Use  username commands in the local configuration; treats the username as case sensitive, but the password as case sensitive
local-case Use  username commands in the local configuration; treats both the username and password as case sensitive
none No authentication required; user is automatically authenticated

Grupos de AAA Servers

By default o Cisco IOS agrupa os servers de RADIUS e TACACS configurados em grupos, aplicando o nome de radius e tacacs+. O comando aaa authentication inclui as palavras group radius ou group tacacs+ referindo-se aos grupos default.

Pode existir a necessidade de criar grupos específicos de RADIUS/TACACS+ para diferentes fins.

aaa new-model
!
aaa group server radius ccie
server 10.1.1.3 auth-port 1645 acct-port 1646
server 10.1.1.4 auth-port 1645 acct-port 1646
!
aaa authentication enable default group ccie local
aaa authentication login default group ccie none

A console, vty, e aux (apenas nos routers) lines podem sobrepor-se ao uso do login authentication default através do comando login authentication name.

  • console—tenta usar os servers RADIUS, e usa a password definida na line caso não exista resposta
  • vty— tenta usar os servers RADIUS, usa os usernames/passwords locais caso não exista resposta
  • aux — tenta usar os servers RADIUS, não autentica caso não exista resposta

Após definido os diferentes métodos de authentication, é necessário aplicá-los a cada line respetiva.

aaa authentication login on-console group radius line
aaa authentication login on-vty group radius local
aaa authentication login on-aux group radiusline con 0
password 7 PF73TGMDRQ1U
 login authentication on-console
line aux 0
 login authentication on-aux
line vty 0 4
password 7 PF3RUQGXMDS8
 login authentication on-vty

Notas 802.1x

O IEEE 802.1X define os detalhes de autenticação dos users na LAN, usando o Extensible Authentication Protocol (EAP), RFC 3748.

O EAP inclui mensagens do protocolo pelo que o user pode ser desafiado a fornecer uma password, bem como os flows para a criação de one-time passwords (OTPs) RFC 2889

As EAP messages são encapsuladas diretamente em frames ethernet entre 802.1X supplicant (user device) e o 802.1X authenticator (switch). Estas frames chamam-se EAP over LAN (EAPoL). O RADIUS espera por EAP messages com uma estrutura chamada de RADIUS Attribute, com estes atributos dentro de uma mensagem normal de RADIUS. Para suportar os 2 protocolos o switch faz translate de mensagens EAPoL e RADIUS que necessitem de fluir entre o supplicant e o authentication server. A VLAN na porta do switch é assignada com base nos atributos enviados pelo RADIUS server, específico do Vendor:

–[64] Tunnel-Type = VLAN

–[65] Tunnel-Medium-Type = 802

–[81] Tunnel-Private-Group-ID = VLAN name or VLAN ID

Attribute [64] must contain the value VLAN (type 13). Attribute [65] must contain the value 802 (type 6). Attribute [81] specifies the VLAN name or VLAN ID assigned to the 802.1X-authenticated user.

A figura seguinte mostra uma vista simplista dos fluxos do processo de authentication. O switch e o supplicant criam uma OTP usando uma key temporária, com o switch a fazer forwading da authentication request para o server authentication.

8021.x

Os roles 802.1x na acima sumarizam-se em:

  • Supplicant  — The 802.1X driver that supplies a username/password prompt to the user and sends/receives the EAPoL messages
  • Authenticator — Faz a translação entre as mensagens EAPoL e o RADIUS em ambas as direções, e ativa/desativa as portas com base no resultado (success/failure) obtido da authentication
  • Authentication server  — guarda os usernames/passwords e verifica se os valores enviados estão corretos antes de autenticar o user

O Switch trata a authentication do user 802.1X como outra opção para a authentication AAA, seguindo os passos:

  1. Config do comando aaa new-model
  2. Definir os IPs dos RADIUS e Keys através do comando radius-server host e radius-server key
  3. Definir o método de authentication (o único método disponível é o RADIUS) usando o comando aaa authentication dot1x default ou, para múltiplos grupos aaa authentication dot1x group name
  4. Ativar o 802.1X globalmente através do comando dot1x system auth-control
  5. Definir em interface o comando dot1x port-control {auto  |  force-authorized |  force-unauthorized} para usar 1 dos 3 métodos:
    • Usar 802.1X (auto )
    • Não usa o 802.1X, mas a interface é autorizada automaticamente (force-authorized) (default)
    • Não usa o 802.1X, mas a interface não é autorizada automaticamente, ficando no estado não autorizado permanentemente (force-unauthorized)

!Permite varios hosts 802.1x na mesma porta
dot1x host-mode multi-host

!Re-autenticar manualmente um cliente
dot1x re-authenticate interface interface-id

!Ativar a re-autenticacao do cliente(disabled by default)
interface interface-id
dot1x reauthentication
dot1x timeout reauth-period seconds

!Configurar VLAN Guest
dot1x guest-vlan
vlan-id

Exemplo:

Ligações:

Cliente————-f1/1-Sw01Sem_802.1x——-f1/2-Sw01
BLACK_PORT——-f1/2-Sw01

Sw01(config)#

aaa new-model

radius-server host 192.168.50.10 auth-port 1645 acct-port 1646 key CCIE

aaa authentication dot1x 802.1X group radius

dot1x system-auth-control

interface FastEthernet1/1
switchport mode access
dot1x port-control auto
!
interface FastEthernet1/2
switchport mode access
dot1x port-control force-authorized
!
interface FastEthernet1/3
switchport mode access
dot1x port-control force-unauthorized

R3#show dot1x all
Sysauthcontrol              Enabled
Dot1x Protocol Version            2

Dot1x Info for FastEthernet1/1
———————————–
PAE                       = AUTHENTICATOR
PortControl               = AUTO
ControlDirection          = Both
HostMode                  = SINGLE_HOST
ReAuthentication          = Disabled
QuietPeriod               = 60
ServerTimeout             = 30
SuppTimeout               = 30
ReAuthPeriod              = 3600 (Locally configured)
ReAuthMax                 = 2
MaxReq                    = 2
TxPeriod                  = 30
RateLimitPeriod           = 0

Dot1x Info for FastEthernet1/2
———————————–
PAE                       = AUTHENTICATOR
PortControl               = FORCE_AUTHORIZED

ControlDirection          = Both
HostMode                  = SINGLE_HOST
ReAuthentication          = Disabled
QuietPeriod               = 60
ServerTimeout             = 30
SuppTimeout               = 30
ReAuthPeriod              = 3600 (Locally configured)
ReAuthMax                 = 2
MaxReq                    = 2
TxPeriod                  = 30
RateLimitPeriod           = 0

Dot1x Info for FastEthernet1/3
———————————–
PAE                       = AUTHENTICATOR
PortControl               = FORCE_UNAUTHORIZED
ControlDirection          = Both
HostMode                  = SINGLE_HOST
ReAuthentication          = Disabled
QuietPeriod               = 60
ServerTimeout             = 30
SuppTimeout               = 30
ReAuthPeriod              = 3600 (Locally configured)
ReAuthMax                 = 2
MaxReq                    = 2
TxPeriod                  = 30
RateLimitPeriod           = 0

!Re-autenticar manualmente
dot1x re-authenticate interface fastethernet0/1