Una ACL es una lista de condiciones que categoriza paquetes. Cuando llega un paquete y se compara con una ACL sigue los siguientes pasos:
- Se compara siempre con cada línea de la lista en orden secuencial, del inicio al fin.
- Se compara hasta que se produce un match.
- Existe un deny implícito al final de la lista, es decir si no hace match con ninguna de las líneas, el paquete se descarta.
Tipos
- Standard ACLs: usan sólo la ip de origen del paquete para la condición. No distinguen entre el tipo de tráfico.
- Extended ACLs: evaluan muchos de los otros campos en la capa 3 y 4 de la cabecera ip. Evaluan origen, destino, protocolo, puerto etc,
Las access-list han de ser aplicadas a una interfaz, y puede referirse al tráfico de entrada o salida:
- Inbound access lists: los paquetes son procesados por la ACL antes de que se enruten a la interfaz de salida. Los paquetes descartados no seran enrutados.
- Outbound access lists: los paquetes son enrutados a la interfaz de salida, y entonces procesados por la ACL antes de ponerse en la cola.
Es recomendable cuando tratamos de proteger una red de Internet aplicar estas reglas:
- Negar cualquier dirección de la red interna.
- Negar cualquier dirección local host (127.0.0.0/8)
- Negar cualquier dirección reservada privada.
- Negar cualquier dirección del rango multicast (224.0.0.0/4).
Wilcard masking
Las wilcards se usan en las access lists para especificar un host, una red o un cierto rango de red o redes. Un 0 en la wildcard indica que ha de coincidir exactamente con la red y un 1 que no importa. Ex: 1.0.0.0 0.255.255.255 nos da el rango: 1.0.0.0-1.255.255.255.
Truco: para saber la wildcard correspondiente a una red, basta con mirar la máscara de subred, calcular el tamaño del bloque y restar uno. Ex: 192.168.10.64/28 es un tamaño de bloque de 2^4=16. Wilcard= 0.0.0.15
Acess lists avanzadas
- Named ACLs: permiten usar nombres para identificar las ACLs estándar y extendidas.
- Switch port ACLs: se pueden aplicar a las interfaces de nivel2 de los switches. Sólo se pueden usar como tráfico inbound y en named ACLs. Soporta además de listas estándar y extendidas, MAC extended ACLs que usan direcciones físicas como origen y destino. Permiten controlar el tráfico en vlans (configurando la lista en la interfaz trunk).
- Dynamic ACLs: combina acceso remoto o local mediante telnet, con ACLs extendidas.
- Reflexive ACLs: con los paquetes salientes se crean reglas de filtrado para aceptar el tráfico de respuesta a una conexión TCP o UDP iniciada desde nuestra red.
- Time-based ACLs: permite activar o desactivar ACLs según el día y la hora.
- Remarks: permite incluir comentarios en las entradas de las ACLs estándar y extendidas. Se pueden poner antes o después de un permit o deny.
- Context-based access control (Cisco IOS Firewall): CBAC examina el tráfico del firewall para controlar la información del estado de las sesiones TCP y UDP. Es decir, a diferencia de las ACLs convencionales no sólo examina el nivel de red y transporte, sino que también examina la capa de aplicación. Esta información se usa para permitir tráfico de retorno, y conexiones adicionales de datos, para sesiones originadas desde la red interna.
- Authentication Proxy: para poder activarlo en un router, es necesario tener el Cisco IOS Firewall activo. Los usuarios entrantes o salientes bloqueados por una ACL, pueden autenticarse mediante un navegador en el servidor TACACS+ o RADIUS de la red, y se añaden entradas temporales para dar acceso.