A partir de la versión 8.4(2) del software ASA, se ha incluido un nuevo tipo de objeto que representa un FQDN -Fully Qualified Domain Name-. Ahora podemos insertar ACEs en nuestras ACLs con este tipo de objeto. Esto supone una enorme potencia.

Si queremos que esta característica funcione bien, nuestro ASA tiene que ser capaz de consultar servidores DNS y obtener direcciones IP de vuelta, así que dejar los servidores de nombres sin configurar no es una opción aquí.

Veamos.

Definir servidores de nombres

Estos serán utilizados por el ASA para obtener las direcciones IP reales de los nombres de host en la configuración de ACE. La resolución de nombres ocurre cuando se evalúa la ACE.

# domain-name cisco.lab
# dns domain-lookup inside
# dns server-group GrupoDNS1
# name-server 192.168.10.10
# domain-name cisco.lab

Crear objetos FQDN

Bastante similar a cualquier otro objeto.

# object network www.google.com
# fqdn www.google.com

Añadir el objeto a la ACE

Hagamos referencia a nuestro objeto FQDN en las entradas ACL necesarias.

# access-list inside_in deny ip any object www.google.com
# access-list inside_in permit ip any any

Comprobación

Una vez que la ACL se utiliza al menos en una política de ASA, ASA comenzará a consultar los servidores de nombres para obtener las direcciones IP de los nombres de host. Recordemos que una ACL no detiene ni permite el tráfico, sólo lo clasifica. Ejecutando show access-list, veremos las entradas de la ACL junto con la traducción en tiempo real:

# show access-list inside_in 
access-list inside_in 2 elements name hash: 0xa3a4620c 
access-list inside_in line 1 deny ip any object www.google.com eq 80 
access-list inside_in line 1 deny ip any fqdn www.google.com (resolved) 
access-list inside_in line 1 deny ip any host 209.85.148.99 (www.google.com) (hitcnt=32)
access-list inside_in line 1 deny ip any host 209.85.148.147 (www.google.com) (hitcnt=11)
access-list inside_in line 2 permit ip any any (hitcnt=7534)

Además, el comando show dns nos mostrará la tabla de traducción existente en el ASA:

# 
show dns
 Name: www.google.com Address: 209.85.148.99            TTL 07:23:44 Address: 209.85.148.147         TTL 07:23:44

Notas

Ten en cuenta los siguientes aspectos que no debemos pasar por alto si no queremos efectos secundarios no deseados.

  • Esto NO sustituye al URL-Filtering.
  • Si las respuestas DNS tienen un TTL -Time To Live- muy corto, obligará a ASA a consultar más veces al servidor DNS, aumentando la carga. Podemos alterar este comportamiento emitiendo el comando dns expire-entry-timer minutes.
  • Muchos nombres de host resuelven la misma dirección IP. Volver a 1. No sustituye al URL-Filtering, porque no es capaz ni está diseñado para separar el contenido enviado. Quizás bloqueando un nombre de host estamos bloqueando otro nombre de host que resuelve la misma dirección IP.
  • Múltiples nombres DNS para la misma web. Lo que significa que bloqueamos, es decir, www.XYZ.com. Si este sitio web tiene múltiples direcciones IP, es posible que podamos acceder al sitio web de todos modos.