Tag Archives: Authentication

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

Notas Network Time Protocol (NTP)

O sistema inicia o relógio no momento em que este também inicia e mantém o registo da data/hora.

O relógio do sistema pode ser atualizado das seguintes formas:

  • NTP
  • Simple Network Time Protocol (SNTP)
  • Virtual Integrated Network Service (VINES) Time Service
  • Manual configuration

O NTP permitem garantir a sincronização da data/hora entre os vários elementos, este pode ser configurado nos seguintes modos:

  •    Client/Server
  •     Symmetric Active/Passive – Grupo de peers low stratum operam como backups uns dos outros. Cada peer usa as suas referencias primarias e em caso de falha usa os peers, esta operação e descrita como push-pull. Um peer é configurado em modo  Symmetric Active usando o comando peer. O outro peer também deve ser configurado da mesma forma.
    Nota: Se o outro peer não for configurado com o comando peer, a associacao e feita em Symmetric Passive quando é recebida uma mensagem Symmetric Active.
  •     Broadcast

Exemplo:

Ligações:

R1——-s2/1-R2-f0/1———-f0/0-R3

Autenticar o NTP entre o R1/R3
O R1 deve estar em Symmetric Active mode
O R3 recebe o NTP via broadcast

R1(config)#
ntp authentication-key 1 md5 CCIE
ntp authenticate
ntp trusted-key 1
ntp server 192.168.2.2
ntp peer 192.168.2.2

R2(config)#
ntp authentication-key 1 md5 CCIE
ntp authenticate
ntp trusted-key 1
ntp master 2

R3(config)#
int f0/1
ntp broadcast client

R2#sh ntp associations

address         ref clock     st  when  poll reach  delay  offset    disp
*~127.127.7.1      .LOCL.            1     5    64  377     0.0    0.00     0.0
* master (synced), # master (unsynced), + selected, – candidate, ~ configured

R2#sh ntp status
Clock is synchronized, stratum 2, reference is 127.127.7.1
nominal freq is 250.0000 Hz, actual freq is 250.0000 Hz, precision is 2**24
reference time is D62E1DCD.301D493F (15:48:29.187 UTC Wed Nov 13 2013)
clock offset is 0.0000 msec, root delay is 0.00 msec
root dispersion is 0.02 msec, peer dispersion is 0.02 msec

R1#sh ntp associations de
192.168.2.2 configured, our_master, sane, valid, stratum 2
ref ID 127.127.7.1, time D62E1E4D.301CB65E (15:50:37.187 UTC Wed Nov 13 2013)
our mode active, peer mode passive, our poll intvl 64, peer poll intvl 64
root delay 0.00 msec, root disp 0.03, reach 377, sync dist 25.284
delay 12.12 msec, offset 6.2250 msec, dispersion 19.20
precision 2**24, version 3
org time D62E1E63.80060ECC (15:50:59.500 UTC Wed Nov 13 2013)
rcv time D62E1E63.7FCF0483 (15:50:59.499 UTC Wed Nov 13 2013)
xmt time D62E1E63.747ED2BE (15:50:59.455 UTC Wed Nov 13 2013)
filtdelay =    44.14   19.94   47.94   12.12   39.92   40.07   27.91   36.16
filtoffset =   22.92  -16.03    3.07    6.23   11.91   -4.44   -2.76    0.59
filterror =     0.02    0.99    1.97    2.94    3.92    4.90    5.87    6.85

R3#sh ntp associations

address         ref clock     st  when  poll reach  delay  offset    disp
* 192.168.20.2     127.127.7.1       2    18    64  376    16.1   13.55    15.9
* master (synced), # master (unsynced), + selected, – candidate, ~ configured

R3#sh ntp ass detail
192.168.20.2 dynamic, our_master, sane, valid, stratum 2
ref ID 127.127.7.1, time D62E1E8D.301D95DD (15:51:41.187 UTC Wed Nov 13 2013)
our mode bdcast client, peer mode bdcast, our poll intvl 64, peer poll intvl 64
root delay 0.00 msec, root disp 0.03, reach 376, sync dist 24.002
delay 16.07 msec, offset 13.5468 msec, dispersion 15.95
precision 2**24, version 3
org time D62E1E9C.301B1A0A (15:51:56.187 UTC Wed Nov 13 2013)
rcv time D62E1E9C.2CA64C21 (15:51:56.174 UTC Wed Nov 13 2013)
xmt time 00000000.00000000 (00:00:00.000 UTC Mon Jan 1 1900)
filtdelay =    16.07   16.07   16.07   16.07   16.07   16.07   16.07   16.07
filtoffset =   13.55    1.73   25.91  -16.53   -5.48   -6.40    1.73  -12.14
filterror =     0.99    1.97    2.94    3.92    4.90    5.87    6.85    7.83