Cisco: ACLs CCNA

Neste post vou demonstrar a funcionalidade do recurso ACL (access control list) no roteador Cisco, com base no nível CCNA, pois existem outros tipos de ACLs abortados no CCNA Security.

Neste post demonstraremos de forma pratica a ACL Padrão (standard) e a ACL estendida (extended) no emulador Cisco Packet Tracer.

Topologia a ser utilizada

acl_ccna_01

Primeiramente, iremos configurar a conectividade entre os equipamentos.

R1

enable
configure terminal

hostname R1

interface gigabitEthernet 0/1
no shutdown

interface gigabitEthernet 0/1.100
encapsulation dot1Q 100
ip address 192.168.0.1 255.255.255.0
description VLAN100
no shutdown

interface gigabitEthernet 0/2
no shutdown

interface gigabitEthernet 0/2.200
encapsulation dot1Q 200
ip address 172.16.0.1 255.255.255.0
description VLAN200
no shutdown

interface gigabitEthernet 0/0
no shutdown

interface gigabitEthernet 0/0.300
encapsulation dot1Q 300
ip address 10.0.0.1 255.255.255.0
description VLAN300
no shutdown

SW1

enable
configure terminal

hostname SW1

interface GigabitEthernet 1/1
description R1
switchport mode trunk
switchport trunk encapsulation dot1q
switchport trunk allowed vlan add 300
no shutdown

interface fastEthernet 0/1
description SR1
switchport mode access
switchport access vlan 300
no shutdown

SW2

enable
configure terminal

hostname SW2

interface GigabitEthernet 1/1
description R1
switchport mode trunk
switchport trunk encapsulation dot1q
switchport trunk allowed vlan add 100
no shutdown

interface fastEthernet 0/1
description PC0
switchport mode access
switchport access vlan 100
no shutdown

SW3

enable
configure terminal

hostname SW3

interface GigabitEthernet 1/1
description R1
switchport mode trunk
switchport trunk encapsulation dot1q
switchport trunk allowed vlan add 200
no shutdown

interface fastEthernet 0/1
description PC1
switchport mode access
switchport access vlan 200
no shutdown

Após garantimos a conectividade, iremos abordar o funcionamento de cada ACL,  a standard e a extended.

ACL Padrão (Standard)

As ACLs do tipo padrão inspecionam apenas o endereço IP de origem, sendo este o motivo de sempre ser aplicada o mais próximo do destino.

Este tipo de ACL pode ser identificada através dos números 1-99 ou nomeada.

Sintaxe da ACL numerada:

R1(config)# access-list [1-99] [permit/deny] [any/host {IP} (origem)] [endereço IP / subrede]

Sintaxe da ACL nomeada:

R1(config)# ip access-list standard [nome da ACL]
R1(config-std-nacl)# [permit/deny] [any/host {IP} (origem)] [endereço IP / subrede]

Utilizando nossa topologia, iremos negar o acesso do PC0 (192.168.0.2) ao SR1 (10.0.0.2).

configue terminal
access-list 20 deny host 192.168.0.2
access-list 20 permit any

interface GigabitEthernet 0/0.300
ip access-group 20 out

Como demonstrado acima, a ACL numerada foi aplicada o mais próximo do destino no sentido OUT.

Agora iremos aplicar esta mesma restrição, porém fazendo uso da ACL nomeada.

Primeiramente iremos remover a ACL aplicada:

interface g0/0.300
no ip access-group 20 out

no access-list 20

Agora aplicaremos a ACL nomeada:

ip access-list standard VLAN300
deny host 192.168.0.2
permit any

interface gigabitEthernet 0/0.300
ip access-group VLAN300 out

Ao realizar o ping do host de origem 192.168.0.2 ao destino 10.0.0.2:

acl_ccna_02

Reparem que na ACL bloqueamos o endereço IP 192.168.0.2 e permitidos ANY, isso pois por padrão uma vez configurada a ACL ela já cria de modo implícito um deny any, apesar de não estar visível.

ACL Estendida (Extended)

A ACL estendida inspeciona o endereço IP de origem, o endereço IP de destino, cabeçalho de segmentos encapsulados (TCP/UDP) e portas lógicas de origem e destino.

Este tipo de ACL pode ser identificada através dos números 100-199 ou nomeada.

Sintaxe da ACL numerada:

R1(config)# access-list [100-199] [permit/deny] [protocolo] [any/host {IP} (origem)] [endereço IP / subrede] [any/host {IP} (destino)] [endereço IP / subrede] [parâmetros adicionais]

Sintaxe da ACL nomeada:

R1(config)# ip access-list extended [nome da ACL]
R1(config-std-nacl)# [permit/deny] [protocolo] [any/host {IP} (origem)] [endereço IP / subrede] [any/host {IP} (destino)] [endereço IP / subrede] [parâmetros adicionais]

Utilizando nossa topologia, iremos permitir apenas o acesso do PC0 (192.168.0.2) na porta 80 do SR1 (10.0.0.2), e a rede 172.16.0.0/24 apenas na porta 21 do SR1(10.20.0.2).

access-list 120 permit tcp host 192.168.0.2 gt 1000 host 10.0.0.2 eq 80
access-list 120 permit tcp 172.16.0.0 0.0.0.255 gt 1000 host 10.0.0.2 eq 21

int gigabitEthernet 0/0.300
ip access-group 120 out

Reparem que para especificar a rede se utiliza a representação em wildcard, ao invés da mascara padrão, que é muito simples, 255 = 0 e 0 = 255.

Agora iremos aplicar esta mesma restrição, porém fazendo uso da ACL nomeada.

Primeiramente iremos remover a ACL aplicada:

interface g0/0.300
no ip access-group 120 out

no access-list 120

Agora aplicaremos a ACL nomeada:

ip access-list extended VLAN300_OUT
permit tcp host 192.168.0.2 gt 1000 host 10.0.0.2 eq 80
permit tcp 172.16.0.0 0.0.0.255 gt 1000 host 10.0.0.2 eq 21

int gigabitEthernet 0/0.300
ip access-group VLAN300_OUT out

Agora olhem o resultado, onde apenas o telnet nos serviços estão liberados:

PC0(192.168.0.2)

acl_ccna_03

PC1(172.16.0.2)

acl_ccna_04

Através do comando abaixo é possível visualizar se a regra aplicada houve match

R1# show access-list

acl_ccna_05

No dia a dia, sem o emulador alguns equipamentos não mostram o match se na regra não por especificado após o acesso o parâmetro log, por exemplo:

access-list 120 permit tcp host 192.168.0.2 gt 1000 host 10.0.0.2 eq 80 log

O ideal é habilitar o log apenas para troubleshooting, sendo possível visializar o acesso na console através do comando abaixo:

terminal monitor [habilitar]

terminal no monitor [desabilitar]

E assim finalizamos mais um post.

Tags: