Info
Acess Control List (Lista de Control Acceso), son una tecnica de filtrado de paquetes que funciona en Capa 3 y Capa 4 y permite controlar el trafico que entra y sale de una interfaz, analizando los paquetes entrantes y salientes, identificando diferentes parametros como Direcciones IP de origen y destino, puertos y protocolos, y aplicar reglas para permitir o denegar segun la regla, una ACL mal configurada puede causar problemas de red y afectar el rendimiento y seguridad de la red. Deben ser definidas de la entrada mas especifica a la menos especifica.
Importante
Las ACL son una tecnica estatica y puede ser evadida si un atacante modifica los parametros de consulta para rodear las reglas establecidas
ACL tienen un uso para
- Identificar redes privadas o publicas que son traducidas por PAT
- Controlar rutas en Redistribucion
- Definir que paquetes seran procesador por PBR
- Determinar que paquetes seran aceptados o rechazados por un Router
El funcionamiento de la ACL se basa en el Procesamiento Descendente
- Las ACL son procesadas en orden secuencial de la parte superior (Valor Menor) a la inferior (Valor Mayor)
- Se ejecuta inmediatamente cuando coincide con una regla permit o deny y las siguientes no afectan al paquete
- Se Deniega Implicitamente si no hay ninguna regla para aceptar el paquete. Para poder visualizar el trafico bloqueado, configura al final la regla
deny any
Importante
Una ACL creada no hace nada a menos que se aplique a un servicio, una funcion o una interfaz
Tabla Tipos de ACL
ACL Estandar | ACL Extendida | |
---|---|---|
Tipo | Origen(in) | Origen(in) y Salida(out) |
Filtros | Solo IP source | IP y Puerto origen y destino |
Puertos | 1-99, 1300-1999 | 100-199, 2000-2699 |
Aplicar | Cerca Destino | Cerca Origen |
Terminologia
any
: Representa todas las IPhost
: Especifica una unica IP (Wildcard0.0.0.0
)network
: Una red enterawildcard
: Especifica un rango de direcciones permitidasprotocol
: Ejemplos:tcp
,udp
,ftp
,ssh
,http
port-operator
eq(=)
: Igual aneq(!=)
: No Igual agt(↑)
: Mayor quelt(↓)
: Menor querange(↔)
: Rango de puertos
ACL IPv6
Solo existen ACL Extendidas Nombradas en IPv6 y no puede colisionar el nombre con una regla IPv4, Tiene permit implicito para los mensajes NS (Neighbor Solicitation) y NA (Neighbor Adverisement) que son necesarios para ICMP en IPv6 y asegurar el funcionamiento de NDP (Neighbor Discovery Protocol), que reemplaza el funcionamiento de ARP(IPv4)
Sintaxis Configuracion
ACL Estandar Numerada
Aplica interfaz solo “
[in]
”
access-list [1-99 | 1300-1999] remark ["comentario"]
access-list [1-99 | 1300-1999] [permit | deny] [source-ip] [wildcard]
ACL Estandar Nombrada
Aplica interfaz solo “
[in]
”
ip access-list standard [acl-name]
[permit | deny] [source-ip] [wildcard]
ACL Extendido Numerado
Aplica intefaz
[in | out]
access-list [100-199 | 2000-2699] [permit | deny] [protocol] [source-ip] [source-wildcard] [destination-ip] [destination-wilcard] [port-operator] [port-number]
ACL Extendida Nombrada
Aplica interfaz
[in | out]
ip access-list extended [acl-name]
[permit | deny] [protocol] [source-ip] [source-wilcard] [destination-ip] [destination-wildcard] [port-operator] [port-number]
ACL Extendida Nombrada IPv6
Aplica interfaz
[in | out]
ipv6 access-list [acl-name]
[permit | deny] [protocol] [source-ip/prefix] [destination-ip/prefix]
ACL Basada en tiempo
Define el rango de tiempo
time-range [time-acl-name]
periodic [days] [start-hour] to [end-hour]
Aplica el rango en una ACL Extendida
access-list [number-] [permit | deny] [protocol] [source-ip] [destination-ip] time-range [time-acl-name]
Aplicar en Interfaces
ACL Estandar IPv4
int [S/S/P]
ip access-group [acl-number | acl-name] in
ACL Extendida IPv4
int [S/S/P]
ip access-group [acl-number | acl-name] [in | out]
ACL IPv6
int [int S/S/P]
ipv6 traffic-filter [list-name] in
Ejemplos Configuracion
ACL Estandar Numerada
access-list 10 deny 192.168.1.0 0.0.0.255
access-list 10 permit any
!
int e0/0
ip access-group 10 in
ACL Estandar Nombrada
ip access-list standard BLOQUEO_TELNET
deny host 192.168.1.100
permit any
exit
!
int e0/0
ip access-group BLOQUEO_TELNET in
ACL Extendida Numerada
access-list 110 permit tcp 192.168.1.0 0.0.0.255 any eq 80
access-list 110 deny ip any any
!
int e0/0
ip access-group 110 in
ACL Extendida Nombrada
ip access-list extended FILTRO_WEB
permit tcp 192.168.1.0 0.0.0.255 any eq 80
deny ip any any
exit
!
int e0/0
ip access-group FILTRO_WEB out
ACL IPv6
ipv6 access-list BLOQUEO_HTTPv6
deny tcp any any eq 80
permit ipv6 any any
exit
!
int e0/0
ipv6 traffic-filter BLOQUEO_HTTPv6 in
ACL Basada en tiempo
time-range HORARIO_LABORAL
periodic monday 9:00 to 17:00
!
access-list 101 permit tcp any any eq 80 time-range HORARIO_LABORAL
Visualizacion
show access-list
: Mostrar todas las ACL IPv4show access-list
: Mostrar todas las ACL IPv6show access-list [acl-number | acl-name]
: Mostrar una ACL numerada o nombrada en especificoshow ipv6 access-list
: Ver ACL IPv6show ip int [int S/S/P]
: Ver ACL aplicada en interfaz IPv4, revisar el flujo “in | out”show ipv6 int [int S/S/P]
: Ver ACL aplicada en interfaz IPv6, revisa el flujo “in | out”show time-range [time-acl-name]
: Ver reglas permitidas por tiempo
Troubleshooting
[acl-name]
- Case-Sensitive: Mayuscula != Minuscula, cuidado con el nombre
IPv6
Los mensajes NA y NS para NDP deben estar permitidos una configuracion como deny ipv6 any any log
puede romper eso y generar problemas en IPv6