ACL

José Aular / 07.07.2023

Tabla de contenido

  1. Concepto
  2. Configuración de ACL estándar para IPv4
  3. Protección de puertos VTY con una ACL estándar para IPv4
  4. Configuración de ACL extendidas para IPv4
  5. Referencias

Concepto

Una ACL es una serie de comandos del IOS que controlan si un router reenvía o descarta paquetes según la información que se encuentra en el encabezado del paquete. De forma predeterminada, un enrutador no tiene ninguna ACL configurada. Sin embargo, cuando se aplica una ACL a una interfaz, el router realiza la tarea adicional de evaluar todos los paquetes de red a medida que pasan a través de la interfaz para determinar si el paquete se puede reenviar.

Una ACL utiliza una lista secuencial de declaraciones de permiso o denegación, conocidas como entradas de control de acceso (ACE) o instrucciones de ACL.

Configuración de ACL estándar para IPv4

Sintaxis de ACL estándar numerada para IPv4

Para crear una ACL estándar numerada, utilice el comando access-list {access-list-number} {deny | permit | remark text} source [source-wildcard] [log].

Utilice el comando no access-list {access-list-number} para eliminar una ACL estándar numerada.

ParámetroDescripción
access-list-numberEl rango de números ACL estándar es de 1 a 99 o 1300 a 1999.
denyEsto deniega el acceso si la condición coincide.
permitEsto permite el acceso si la condición coincide.
remark text(Opcional) Esto agrega una entrada de texto para fines de documentación.
sourceEsto identifica la red de origen o la dirección de host que se va a filtrar.
source-wildcard(Opcional) Máscara wildcard de 32 bits para aplicar al origen. Si se omite, se asume una máscara 0.0.0.0 predeterminada.
log(Opcional) Esta palabra clave genera y envía un mensaje informativo siempre que se haga coincidir el ACE.

Ejemplo

R1
R1(config)# access-list 10 remark ACE permits ONLY host 192.168.10.10 to the internet
R1(config)# access-list 10 permit host 192.168.10.10
R1(config)# do show access-lists
Standard IP access list 10
    10 permit 192.168.10.10

Utilice la palabra clave host {ip-address} o simplemente ingrese una dirección IP (sin el host) para identificar una dirección IP específica. Por ejemplo, el comando deny host 192.168.5.5 es el mismo que el comando deny 192.168.5.5 0.0.0.0.

Seguidamente aplique la ACL numerada a la interfaz correspondiente.

R1
R1(config-if)# ip access-group 10 out

Sintaxis de ACL con nombre estándar para IPv4

La asignación de nombres a las ACL hace más fácil comprender su función. Para crear una ACL estándar con nombre, utilice el comando ip access-list standard {access-list-name}

Utilice el comando no ip access-list standard {access-list-name} para eliminar una ACL IPv4 estándar con nombre.

R1
R1(config)# ip access-list standard PERMIT-ACCESS
R1(config-std-nacl)#

Ejemplo

Agregue un ACE que permita sólo el host 192.168.10.10 y otro ACE que permita todos los hosts LAN 2 a Internet.

R1
R1(config)# ip access-list standard PERMIT-ACCESS
R1(config-std-nacl)# remark ACE permits host 192.168.10.10
R1(config-std-nacl)# permit host 192.168.10.10
R1(config-std-nacl)# remark ACE permits all hosts in LAN 2
R1(config-std-nacl)# permit 192.168.20.0 0.0.0.255

Utilice la palabra clave any para especificar todas las redes. Ejemplo: deny any si desea denegar todos los host.

Seguidamente aplique la ACL con nombre a la interfaz correspondiente.

R1
R1(config-if)# ip access-group PERMIT-ACCESS out

Aplicación de una ACL estándar para IPv4

Después de configurar una ACL estándar para IPv4, debe vincularse a una interfaz o función. Utilice el comando ip access-group {access-list-number | access-list-name} {in | out} para enlazar una ACL estándar para IPv4 numerada o nombrada a una interfaz.

Protección de puertos VTY con una ACL estándar para IPv4

Las ACL normalmente filtran el tráfico entrante o saliente en una interfaz. Sin embargo, una ACL también se puede utilizar para proteger el acceso administrativo remoto a un dispositivo mediante las líneas vty.

Utilice el comando access-class {access-list-number | access-list-name} { in | out } para aplicar una ACL a las líneas vty

La palabra clave in es la opción más utilizada para filtrar el tráfico vty entrante, mientras que out filtra el tráfico vty saliente y rara vez se aplica.

R1
R1(config)# username ADMIN secret cisco
R1(config)# ip access-list standard ADMIN-HOST
R1(config-std-nacl)# remark This ACL secures incoming vty lines
R1(config-std-nacl)# permit 192.168.10.10
R1(config-std-nacl)# deny any
R1(config-std-nacl)# exit
R1(config)# line vty 0 4
R1(config-line)# login local
R1(config-line)# transport input telnet
R1(config-line)# access-class ADMIN-HOST in

Se ha configurado deny any para realizar un seguimiento del número de veces que se ha denegado el acceso.

Utilice el comando show access-lists para verificar las estadísticas de ACL.

R1
R1# show access-lists
Standard IP access list ADMIN-HOST
    10 permit 192.168.10.10 (2 matches)
    20 deny any (2 matches)
R1#

Configuración de ACL extendidas para IPv4

Las ACL estándar solo se filtran en la dirección de origen. Cuando se requiere un control de filtrado de tráfico más preciso, se pueden crear ACL extendidas de IPv4.

Las ACL extendidas se utilizan con más frecuencia que las ACL estándar, porque proporcionan un mayor grado de control. Pueden filtrar por dirección de origen, dirección de destino, protocolo (es decir, IP, TCP, UDP, ICMP) y número de puerto. Esto proporciona una gama de criterios más amplia sobre la cual basar la ACL.

Sintaxis de ACL extendida numerada para IPv4

Para crear una ACL extendida numerada, utilice el comando access-list {access-list-number} {deny | permit | remark text} {protocol} source [source-wildcard] [operator {port}] destination [destination-wildcard] [operator {port}] [established] [log].

ParámetroDescripción
access-list-numberEl rango de números ACL estándar es de 1 a 99 o 1300 a 1999.
denyEsto deniega el acceso si la condición coincide.
permitEsto permite el acceso si la condición coincide.
remark text(Opcional) Esto agrega una entrada de texto para fines de documentación.
protocolNombre o número de un protocolo de Internet. Las palabras clave más comunes incluyen ip, tcp, udp y icmp.
sourceEsto identifica la red de origen o la dirección de host que se va a filtrar.
source-wildcard(Opcional) Máscara wildcard de 32 bits para aplicar al origen. Si se omite, se asume una máscara 0.0.0.0 predeterminada.
destinationEsto identifica la red de destino o la dirección de host que se va a filtrar.
destination-wildcard(Opcional) Máscara wildcard de 32 bits para aplicar al destino.
operator(Opcional) Compara los puertos fuente y de destino. Los operandos posibles incluyen lt (less than), gt (greater than), eq (equal), neq (not equal), y range (inclusive range).
port(Opcional) El nombre o número decimal de un puerto TCP o UDP.
established(Opcional) Sólo para el protocolo TCP. Esta es una característica de firewall de primera generación.
log(Opcional) Esta palabra clave genera y envía un mensaje informativo siempre que se haga coincidir el ACE.

Protocolos y puertos

Opciones de protocolo

R1
R1(config)# access-list 100 permit ?
  <0-255>       An IP protocol number
  ahp           Authentication Header Protocol
  dvmrp         dvmrp
  eigrp         Cisco's EIGRP routing protocol
  esp           Encapsulation Security Payload
  gre           Cisco's GRE tunneling
  icmp          Internet Control Message Protocol
  igmp          Internet Gateway Message Protocol
  ip            Any Internet Protocol
  ipinip        IP in IP tunneling
  nos           KA9Q NOS compatible IP over IP tunneling
  object-group  Service object group
  ospf          OSPF routing protocol
  pcp           Payload Compression Protocol
  pim           Protocol Independent Multicast
  tcp           Transmission Control Protocol
  udp           User Datagram Protocol

Opciones de palabra clave de puertos

R1
R1(config)# access-list 100 permit tcp any any eq ?
  <0-65535>    Port number
  bgp          Border Gateway Protocol (179)
  chargen      Character generator (19)
  cmd          Remote commands (rcmd, 514)
  daytime      Daytime (13)
  discard      Discard (9)
  domain       Domain Name System (53)
  echo         Echo (7)
  exec         Exec (rsh, 512)
  finger       Finger (79)
  ftp          File Transfer Protocol (21)
  ftp-data     FTP data connections (20)
  gopher       Gopher (70)
  hostname     NIC hostname server (101)
  ident        Ident Protocol (113)
  irc          Internet Relay Chat (194)
  klogin       Kerberos login (543)
  kshell       Kerberos shell (544)
  login        Login (rlogin, 513)
  lpd          Printer service (515)
  msrpc        MS Remote Procedure Call (135)
  nntp         Network News Transport Protocol (119)
  onep-plain   Onep Cleartext (15001)
  onep-tls     Onep TLS (15002)
  pim-auto-rp  PIM Auto-RP (496)
  pop2         Post Office Protocol v2 (109)
  pop3         Post Office Protocol v3 (110)
  smtp         Simple Mail Transport Protocol (25)
  sunrpc       Sun Remote Procedure Call (111)
  syslog       Syslog (514)
  tacacs       TAC Access Control System (49)
  talk         Talk (517)
  telnet       Telnet (23)
  time         Time (37)
  uucp         Unix-to-Unix Copy Program (540)
  whois        Nicname (43)
  www          World Wide Web (HTTP, 80)

Configuración de Protocolos y Números de Puerto

R1
R1(config)# access-list 100 permit tcp any any eq www
R1(config)#  !or...
R1(config)# access-list 100 permit tcp any any eq 80

La configuración del número de puerto es necesaria cuando no aparece un nombre de protocolo específico, como SSH (número de puerto 22) o HTTPS (número de puerto 443).

R1
R1(config)# access-list 100 permit tcp any any eq 22
R1(config)# access-list 100 permit tcp any any eq 443

Referencias