Este documento proporciona una configuración de ejemplo para realizar el doctorado del Sistema de nombres de dominio (DNS) en ASA 5500 Series Adaptive Security Appliance o PIX 500 Series Security Appliance mediante sentencias NAT estáticas. El almacenamiento de DNS permite al dispositivo de seguridad reescribir los registros A de DNS.
La reescritura de DNS realiza dos funciones:
Traduce una dirección pública (la dirección enrutable o asignada) en una respuesta DNS a una dirección privada (la dirección real) cuando el cliente DNS se encuentra en una interfaz privada.
Traduce una dirección privada a una dirección pública cuando el cliente DNS está en la interfaz pública.
Nota: La configuración de este documento contiene dos interfaces NAT; interna y externa. Para ver un ejemplo de la reparación de DNS con estática y tres interfaces NAT (interna, externa y dmz), consulte PIX/ASA: Perform DNS Doctoring with the static Command and Three NAT Interfaces Configuration Example.
Consulte Sentencias NAT y PAT de PIX/ASA 7.x y Uso de los Comandos nat, global, static, conduit y access-list y Redirección de Puerto (Reenvío) en PIX para obtener más información sobre cómo utilizar NAT en un Dispositivo de Seguridad.
La inspección de DNS debe estar habilitada para poder realizar el almacenamiento de DNS en el dispositivo de seguridad. La inspección de DNS está activada de forma predeterminada. Si se ha desactivado, vea la sección Configure DNS Inspection más adelante en este documento para volver a activarlo. Cuando la inspección de DNS está habilitada, el dispositivo de seguridad realiza estas tareas:
Traduce el registro DNS en función de la configuración completada mediante los comandos static y nat (reescritura de DNS). La traducción sólo se aplica al registro A de la respuesta DNS. Por lo tanto, las búsquedas inversas, que solicitan el registro PTR, no se ven afectadas por la reescritura de DNS.
Nota: La reescritura de DNS no es compatible con la traducción de direcciones de puerto (PAT) estática porque se aplican varias reglas PAT para cada registro A y la regla PAT que se debe utilizar es ambigua.
Aplica la longitud máxima de los mensajes DNS (el valor predeterminado es 512 bytes y la longitud máxima es 65535 bytes). El reensamblado se realiza según sea necesario para verificar que la longitud del paquete es menor que la longitud máxima configurada. El paquete se descarta si supera la longitud máxima.
Nota: Si ejecuta el comando inspect dns sin la opción de longitud máxima, no se verifica el tamaño del paquete DNS.
Aplica una longitud de nombre de dominio de 255 bytes y una longitud de etiqueta de 63 bytes.
Verifica la integridad del nombre de dominio al que hace referencia el puntero si se encuentran punteros de compresión en el mensaje DNS.
Comprueba si existe un bucle de puntero de compresión.
La información de este documento se basa en ASA 5500 Series Security Appliance, versión 7.2(1).
La información que contiene este documento se creó a partir de los dispositivos en un ambiente de laboratorio específico. Todos los dispositivos que se utilizan en este documento se pusieron en funcionamiento con una configuración verificada (predeterminada). If your network is live, make sure that you understand the potential impact of any command.
Esta configuración también se puede utilizar con Cisco PIX 500 Series Security Appliance, versión 6.2 o posterior.
Nota: La configuración del administrador adaptable de dispositivos de seguridad de Cisco (ASDM) solo se aplica a la versión 7.x.
En un intercambio DNS típico, un cliente envía una URL o un nombre de host a un servidor DNS para determinar la dirección IP de ese host. El servidor DNS recibe la solicitud, busca la asignación de nombre a dirección IP para ese host y, a continuación, proporciona el registro A con la dirección IP al cliente. Si bien este procedimiento funciona bien en muchas situaciones, pueden ocurrir problemas. Estos problemas pueden ocurrir cuando el cliente y el host al que el cliente intenta llegar están en la misma red privada detrás de NAT, pero el servidor DNS utilizado por el cliente está en otra red pública.
En esta situación, el cliente y el servidor WWW que el cliente intenta alcanzar se encuentran ambos en la interfaz interior del ASA. La PAT dinámica se configura para permitir el acceso del cliente a Internet. La NAT estática con una lista de acceso se configura para permitir el acceso del servidor a Internet, así como para permitir que los hosts de Internet accedan al servidor WWW.
Este diagrama es un ejemplo de esta situación. En este caso, el cliente en 192.168.100.2 quiere utilizar la URL de server.example.com para acceder al servidor WWW en 192.168.100.10. Los servicios DNS para el cliente los proporciona el servidor DNS externo en 172.22.1.161. Debido a que el servidor DNS se encuentra en otra red pública, no conoce la dirección IP privada del servidor WWW. En su lugar, conoce la dirección asignada del servidor WWW de 172.20.1.10. Por lo tanto, el servidor DNS contiene la asignación de dirección IP a nombre de server.example.com a 172.20.1.10.
Sin la reparación de DNS u otra solución habilitada en esta situación, si el cliente envía una solicitud DNS para la dirección IP de server.example.com, no podrá acceder al servidor WWW. Esto se debe a que el cliente recibe un registro A que contiene la dirección pública asignada: 172.20.1.10 del servidor WWW. Cuando el cliente intenta acceder a esta dirección IP, el dispositivo de seguridad descarta los paquetes porque no permite la redirección de paquetes en la misma interfaz. Este es el aspecto de la parte NAT de la configuración cuando no está habilitado el almacenamiento de DNS:
ciscoasa(config)#show running-config : Saved : ASA Version 7.2(1) ! hostname ciscoasa !--- Output suppressed. access-list OUTSIDE extended permit tcp any host 172.20.1.10 eq www !--- Output suppressed. global (outside) 1 interface nat (inside) 1 192.168.100.0 255.255.255.0 static (inside,outside) 172.20.1.10 192.168.100.10 netmask 255.255.255.255 access-group OUTSIDE in interface outside !--- Output suppressed.
Así es como se ve la configuración en el ASDM cuando el doctorado de DNS no está habilitado:
A continuación se muestra una captura de paquetes de los eventos cuando no está habilitada la alteración de DNS:
El cliente envía la consulta DNS.
No. Time Source Destination Protocol Info 1 0.000000 192.168.100.2 172.22.1.161 DNS Standard query A server.example.com Frame 1 (78 bytes on wire, 78 bytes captured) Ethernet II, Src: Cisco_c8:e4:00 (00:04:c0:c8:e4:00), Dst: Cisco_9c:c6:1f (00:0a:b8:9c:c6:1f) Internet Protocol, Src: 192.168.100.2 (192.168.100.2), Dst: 172.22.1.161 (172.22.1.161) User Datagram Protocol, Src Port: 50879 (50879), Dst Port: domain (53) Domain Name System (query) [Response In: 2] Transaction ID: 0x0004 Flags: 0x0100 (Standard query) Questions: 1 Answer RRs: 0 Authority RRs: 0 Additional RRs: 0 Queries server.example.com: type A, class IN Name: server.example.com Type: A (Host address) Class: IN (0x0001)
ASA realiza la PAT en la consulta DNS y la consulta se reenvía. Observe que la dirección de origen del paquete ha cambiado a la interfaz externa del ASA.
No. Time Source Destination Protocol Info 1 0.000000 172.20.1.2 172.22.1.161 DNS Standard query A server.example.com Frame 1 (78 bytes on wire, 78 bytes captured) Ethernet II, Src: Cisco_9c:c6:1e (00:0a:b8:9c:c6:1e), Dst: Cisco_01:f1:22 (00:30:94:01:f1:22) Internet Protocol, Src: 172.20.1.2 (172.20.1.2), Dst: 172.22.1.161 (172.22.1.161) User Datagram Protocol, Src Port: 1044 (1044), Dst Port: domain (53) Domain Name System (query) [Response In: 2] Transaction ID: 0x0004 Flags: 0x0100 (Standard query) Questions: 1 Answer RRs: 0 Authority RRs: 0 Additional RRs: 0 Queries server.example.com: type A, class IN Name: server.example.com Type: A (Host address) Class: IN (0x0001)
El servidor DNS responde con la dirección asignada del servidor WWW.
No. Time Source Destination Protocol Info 2 0.005005 172.22.1.161 172.20.1.2 DNS Standard query response A 172.20.1.10 Frame 2 (94 bytes on wire, 94 bytes captured) Ethernet II, Src: Cisco_01:f1:22 (00:30:94:01:f1:22), Dst: Cisco_9c:c6:1e (00:0a:b8:9c:c6:1e) Internet Protocol, Src: 172.22.1.161 (172.22.1.161), Dst: 172.20.1.2 (172.20.1.2) User Datagram Protocol, Src Port: domain (53), Dst Port: 1044 (1044) Domain Name System (response) [Request In: 1] [Time: 0.005005000 seconds] Transaction ID: 0x0004 Flags: 0x8580 (Standard query response, No error) Questions: 1 Answer RRs: 1 Authority RRs: 0 Additional RRs: 0 Queries server.example.com: type A, class IN Name: server.example.com Type: A (Host address) Class: IN (0x0001) Answers server.example.com: type A, class IN, addr 172.20.1.10 Name: server.example.com Type: A (Host address) Class: IN (0x0001) Time to live: 1 hour Data length: 4 Addr: 172.20.1.10
El ASA deshace la traducción de la dirección de destino de la respuesta DNS y reenvía el paquete al cliente. Tenga en cuenta que sin la función de doctorado de DNS habilitada, el Addr de la respuesta sigue siendo la dirección asignada del servidor WWW.
No. Time Source Destination Protocol Info 2 0.005264 172.22.1.161 192.168.100.2 DNS Standard query response A 172.20.1.10 Frame 2 (94 bytes on wire, 94 bytes captured) Ethernet II, Src: Cisco_9c:c6:1f (00:0a:b8:9c:c6:1f), Dst: Cisco_c8:e4:00 (00:04:c0:c8:e4:00) Internet Protocol, Src: 172.22.1.161 (172.22.1.161), Dst: 192.168.100.2 (192.168.100.2) User Datagram Protocol, Src Port: domain (53), Dst Port: 50879 (50879) Domain Name System (response) [Request In: 1] [Time: 0.005264000 seconds] Transaction ID: 0x0004 Flags: 0x8580 (Standard query response, No error) Questions: 1 Answer RRs: 1 Authority RRs: 0 Additional RRs: 0 Queries server.example.com: type A, class IN Name: server.example.com Type: A (Host address) Class: IN (0x0001) Answers server.example.com: type A, class IN, addr 172.20.1.10 Name: server.example.com Type: A (Host address) Class: IN (0x0001) Time to live: 1 hour Data length: 4 Addr: 172.20.1.10
En este punto, el cliente intenta acceder al servidor WWW en 172.20.1.10. El ASA crea una entrada de conexión para esta comunicación. Sin embargo, dado que no permite que el tráfico fluya de adentro hacia afuera y hacia adentro, la conexión se desconecta. Los registros de ASA muestran lo siguiente:
%ASA-6-302013: Built outbound TCP connection 54175 for outside:172.20.1.10/80 (172.20.1.10/80) to inside:192.168.100.2/11001 (172.20.1.2/1024) %ASA-6-302014: Teardown TCP connection 54175 for outside:172.20.1.10/80 to inside:192.168.100.2/11001 duration 0:00:30 bytes 0 SYN Timeout
El doctorado de DNS con la palabra clave dns proporciona al dispositivo de seguridad la capacidad de interceptar y reescribir el contenido de las respuestas del servidor DNS al cliente. Cuando se configura correctamente, el dispositivo de seguridad puede alterar el registro A para permitir que el cliente se conecte en un escenario como el descrito en la sección Problema: El cliente no puede acceder al servidor WWW. En esta situación, con el almacenamiento de DNS habilitado, el dispositivo de seguridad vuelve a escribir el registro A para dirigir al cliente a 192.168.100.10, en lugar de a 172.20.1.10. El almacenamiento de DNS se habilita cuando se agrega la palabra clave dns a una instrucción NAT estática. Este es el aspecto de la parte de NAT de la configuración cuando se habilita el doctorado de DNS:
ciscoasa(config)#show run : Saved : ASA Version 7.2(1) ! hostname ciscoasa !--- Output suppressed. access-list OUTSIDE extended permit tcp any host 172.20.1.10 eq www !--- Output suppressed. global (outside) 1 interface nat (inside) 1 192.168.100.0 255.255.255.0 static (inside,outside) 172.20.1.10 192.168.100.10 netmask 255.255.255.255 dns !--- The "dns" keyword is added to instruct the security appliance to modify !--- DNS records related to this entry. access-group OUTSIDE in interface outside !--- Output suppressed.
Complete estos pasos para configurar el DNS doctoring en el ASDM:
Navegue hasta Configuration > NAT y elija la regla de NAT estática que desea modificar. Haga clic en Editar.
Haga clic en Opciones NAT...
Marque la casilla de verificación Traducir respuestas DNS que coincidan con la regla de traducción.
Haga clic en Aceptar para salir de la ventana Opciones de NAT. Haga clic en OK para salir de la ventana Edit Static NAT Rule. Haga clic en Apply para enviar su configuración al dispositivo de seguridad.
A continuación se muestra una captura de paquetes de los eventos cuando se habilita el Doctorado DNS:
El cliente envía la consulta DNS.
No. Time Source Destination Protocol Info 1 0.000000 192.168.100.2 172.22.1.161 DNS Standard query A server.example.com Frame 1 (78 bytes on wire, 78 bytes captured) Ethernet II, Src: Cisco_c8:e4:00 (00:04:c0:c8:e4:00), Dst: Cisco_9c:c6:1f (00:0a:b8:9c:c6:1f) Internet Protocol, Src: 192.168.100.2 (192.168.100.2), Dst: 172.22.1.161 (172.22.1.161) User Datagram Protocol, Src Port: 52985 (52985), Dst Port: domain (53) Domain Name System (query) [Response In: 2] Transaction ID: 0x000c Flags: 0x0100 (Standard query) Questions: 1 Answer RRs: 0 Authority RRs: 0 Additional RRs: 0 Queries server.example.com: type A, class IN Name: server.example.com Type: A (Host address) Class: IN (0x0001)
ASA realiza la PAT en la consulta DNS y la consulta se reenvía. Observe que la dirección de origen del paquete ha cambiado a la interfaz externa del ASA.
No. Time Source Destination Protocol Info 1 0.000000 172.20.1.2 172.22.1.161 DNS Standard query A server.example.com Frame 1 (78 bytes on wire, 78 bytes captured) Ethernet II, Src: Cisco_9c:c6:1e (00:0a:b8:9c:c6:1e), Dst: Cisco_01:f1:22 (00:30:94:01:f1:22) Internet Protocol, Src: 172.20.1.2 (172.20.1.2), Dst: 172.22.1.161 (172.22.1.161) User Datagram Protocol, Src Port: 1035 (1035), Dst Port: domain (53) Domain Name System (query) [Response In: 2] Transaction ID: 0x000c Flags: 0x0100 (Standard query) Questions: 1 Answer RRs: 0 Authority RRs: 0 Additional RRs: 0 Queries server.example.com: type A, class IN Name: server.example.com Type: A (Host address) Class: IN (0x0001)
El servidor DNS responde con la dirección asignada del servidor WWW.
No. Time Source Destination Protocol Info 2 0.000992 172.22.1.161 172.20.1.2 DNS Standard query response A 172.20.1.10 Frame 2 (94 bytes on wire, 94 bytes captured) Ethernet II, Src: Cisco_01:f1:22 (00:30:94:01:f1:22), Dst: Cisco_9c:c6:1e (00:0a:b8:9c:c6:1e) Internet Protocol, Src: 172.22.1.161 (172.22.1.161), Dst: 172.20.1.2 (172.20.1.2) User Datagram Protocol, Src Port: domain (53), Dst Port: 1035 (1035) Domain Name System (response) [Request In: 1] [Time: 0.000992000 seconds] Transaction ID: 0x000c Flags: 0x8580 (Standard query response, No error) Questions: 1 Answer RRs: 1 Authority RRs: 0 Additional RRs: 0 Queries server.example.com: type A, class IN Name: server.example.com Type: A (Host address) Class: IN (0x0001) Answers server.example.com: type A, class IN, addr 172.20.1.10 Name: server.example.com Type: A (Host address) Class: IN (0x0001) Time to live: 1 hour Data length: 4 Addr: 172.20.1.10
El ASA deshace la traducción de la dirección de destino de la respuesta DNS y reenvía el paquete al cliente. Tenga en cuenta que con el doctorado de DNS habilitado, el Addr en la respuesta se reescribe para que sea la dirección real del servidor WWW.
No. Time Source Destination Protocol Info 2 0.001251 172.22.1.161 192.168.100.2 DNS Standard query response A 192.168.100.10 Frame 2 (94 bytes on wire, 94 bytes captured) Ethernet II, Src: Cisco_9c:c6:1f (00:0a:b8:9c:c6:1f), Dst: Cisco_c8:e4:00 (00:04:c0:c8:e4:00) Internet Protocol, Src: 172.22.1.161 (172.22.1.161), Dst: 192.168.100.2 (192.168.100.2) User Datagram Protocol, Src Port: domain (53), Dst Port: 52985 (52985) Domain Name System (response) [Request In: 1] [Time: 0.001251000 seconds] Transaction ID: 0x000c Flags: 0x8580 (Standard query response, No error) Questions: 1 Answer RRs: 1 Authority RRs: 0 Additional RRs: 0 Queries server.example.com: type A, class IN Name: server.example.com Type: A (Host address) Class: IN (0x0001) Answers server.example.com: type A, class IN, addr 192.168.100.10 Name: server.example.com Type: A (Host address) Class: IN (0x0001) Time to live: 1 hour Data length: 4 Addr: 192.168.100.10 !--- 172.20.1.10 has been rewritten to be 192.168.100.10.
En este punto, el cliente intenta acceder al servidor WWW en 192.168.100.10. La conexión se ha realizado correctamente. No se captura tráfico en ASA porque el cliente y el servidor están en la misma subred.
Esta es la configuración final del ASA para realizar el doctorado de DNS con la palabra clave dns y dos interfaces NAT.
Configuración final de ASA 7.2(1) |
---|
ciscoasa(config)#show running-config : Saved : ASA Version 7.2(1) ! hostname ciscoasa enable password 9jNfZuG3TC5tCVH0 encrypted names dns-guard ! interface Ethernet0/0 nameif outside security-level 0 ip address 172.20.1.2 255.255.255.0 ! interface Ethernet0/1 nameif inside security-level 100 ip address 192.168.100.1 255.255.255.0 ! interface Ethernet0/2 shutdown no nameif no security-level no ip address ! interface Management0/0 shutdown no nameif no security-level no ip address management-only ! passwd 2KFQnbNIdI.2KYOU encrypted ftp mode passive access-list OUTSIDE extended permit tcp any host 172.20.1.10 eq www !--- Simple access-list that permits HTTP access to the mapped !--- address of the WWW server. pager lines 24 logging enable logging buffered debugging mtu outside 1500 mtu inside 1500 asdm image disk0:/asdm512-k8.bin no asdm history enable arp timeout 14400 global (outside) 1 interface nat (inside) 1 192.168.100.0 255.255.255.0 static (inside,outside) 172.20.1.10 192.168.100.10 netmask 255.255.255.255 dns !--- PAT and static NAT configuration. The DNS keyword instructs !--- the security appliance to rewrite DNS records related to this entry. access-group OUTSIDE in interface outside !--- The Access Control List (ACL) that permits HTTP access !--- to the WWW server is applied to the outside interface. route outside 0.0.0.0 0.0.0.0 172.20.1.1 1 timeout xlate 3:00:00 timeout conn 1:00:00 half-closed 0:10:00 udp 0:02:00 icmp 0:00:02 timeout sunrpc 0:10:00 h323 0:05:00 h225 1:00:00 mgcp 0:05:00 mgcp-pat 0:05:00 timeout sip 0:30:00 sip_media 0:02:00 sip-invite 0:03:00 sip-disconnect 0:02:00 timeout uauth 0:05:00 absolute username cisco password ffIRPGpDSOJh9YLq encrypted http server enable no snmp-server location no snmp-server contact snmp-server enable traps snmp authentication linkup linkdown coldstart telnet timeout 5 ssh timeout 5 console timeout 0 ! class-map inspection_default match default-inspection-traffic ! ! policy-map type inspect dns MY_DNS_INSPECT_MAP parameters message-length maximum 512 !--- DNS inspection map. policy-map global_policy class inspection_default inspect ftp inspect h323 h225 inspect h323 ras inspect rsh inspect rtsp inspect esmtp inspect sqlnet inspect skinny inspect sunrpc inspect xdmcp inspect sip inspect netbios inspect tftp inspect dns MY_DNS_INSPECT_MAP !--- DNS inspection is enabled using the configured map. inspect icmp policy-map type inspect dns migrated_dns_map_1 parameters message-length maximum 512 ! service-policy global_policy global prompt hostname context Cryptochecksum:a4a38088109887c3ceb481efab3dcf32 : end |
Precaución: El establecimiento de conexiones entre nodos con NAT estática implica el envío de todo el tráfico entre el cliente y el servidor WWW a través del dispositivo de seguridad. Antes de implementar esta solución, considere detenidamente la cantidad de tráfico esperada y las capacidades de su dispositivo de seguridad.
Hairpinning es el proceso por el cual el tráfico se envía de vuelta a la misma interfaz en la que llegó. Esta función se introdujo en la versión 7.0 del software del dispositivo de seguridad. Para las versiones anteriores a la 7.2(1), se requiere que al menos un brazo del tráfico con horquilla (entrante o saliente) esté cifrado. A partir de la versión 7.2(1) y posteriores, este requisito ya no está vigente. Tanto el tráfico entrante como el saliente podrían descifrarse si se utiliza 7.2(1).
Las conexiones entre nodos, junto con una instrucción NAT estática, se pueden utilizar para lograr el mismo efecto que la reparación de DNS. Este método no cambia el contenido del registro A de DNS que se devuelve del servidor DNS al cliente. En su lugar, cuando se utiliza hairpinning, como en el escenario descrito en este documento, el cliente puede utilizar la dirección 172.20.1.10 que devuelve el servidor DNS para conectarse.
Este es el aspecto de la parte relevante de la configuración cuando se utiliza hairpinning y NAT estática para lograr un efecto de doctorado de DNS. Los comandos en negrita se explican con mayor detalle al final de este resultado:
ciscoasa(config)#show run : Saved : ASA Version 7.2(1) ! hostname ciscoasa !--- Output suppressed. same-security-traffic permit intra-interface !--- Enable hairpinning. global (outside) 1 interface !--- Global statement for client access to the Internet. global (inside) 1 interface !--- Global statment for hairpinned client access through !--- the security appliance. nat (inside) 1 192.168.100.0 255.255.255.0 !--- The NAT statement defines which traffic should be natted. !--- The whole inside subnet in this case. static (inside,outside) 172.20.1.10 192.168.100.10 netmask 255.255.255.255 !--- Static NAT statement mapping the WWW server's real address to a !--- public address on the outside interface. static (inside,inside) 172.20.1.10 192.168.100.10 netmask 255.255.255.255 !--- Static NAT statment mapping requests for the public IP address of !--- the WWW server that appear on the inside interface to the WWW server's !--- real address of 192.168.100.10.
same-security-traffic: este comando permite que el tráfico del mismo nivel de seguridad pase por el dispositivo de seguridad. Las palabras clave permit intra-interface permiten que el mismo tráfico de seguridad entre y salga de la misma interfaz, por lo que se habilita el hairpinning.
Nota: Consulte same-security-traffic para obtener más información sobre hairpinning y el comando same-security-traffic.
global (inside) 1 interface: todo el tráfico que atraviesa el dispositivo de seguridad debe someterse a NAT. Este comando utiliza la dirección de la interfaz interna del dispositivo de seguridad para permitir que el tráfico que ingresa a la interfaz interna pase por PAT mientras se lo retira de la interfaz interna.
static (inside,inside) 172.20.1.10 192.168.100.10 netmask 255.255.255.255—Esta entrada de NAT estática crea una segunda asignación para la dirección IP pública del servidor WWW. Sin embargo, a diferencia de la primera entrada de NAT estática, esta vez la dirección 172.20.1.10 está asignada a la interfaz interna del dispositivo de seguridad. Esto permite que el dispositivo de seguridad responda a las solicitudes que ve para esta dirección en la interfaz interna. Luego, redirige esas solicitudes a la dirección real del servidor WWW a través de sí mismo.
Complete estos pasos para configurar hairpinning con NAT estática en ASDM:
Vaya a Configuration > Interfaces.
En la parte inferior de la ventana, marque la casilla de verificación Habilitar tráfico entre dos o más hosts conectados a la misma interfaz.
Haga clic en Apply (Aplicar).
Navegue hasta Configuration > NAT y elija Add > Add Static NAT Rule...
Rellene la configuración para la nueva traducción estática.
Rellene el área Dirección real con la información del servidor WWW.
Rellene el área Static Translation con la dirección y la interfaz a las que desea asignar el servidor WWW.
En este caso, se elige la interfaz interna para permitir que los hosts de la interfaz interna accedan al servidor WWW a través de la dirección asignada 172.20.1.10.
Haga clic en Aceptar para salir de la ventana Agregar regla NAT estática.
Elija la traducción PAT dinámica existente y haga clic en Editar.
Elija inside en el cuadro desplegable Interface.
Haga clic en Add (Agregar).
Elija el botón de opción Port Address Translation (PAT) mediante la dirección IP de la interfaz. Haga clic en Add (Agregar).
Haga clic en OK para salir de la ventana Add Global Address Pool. Haga clic en Aceptar para salir de la ventana Editar regla NAT dinámica. Haga clic en Apply para enviar su configuración al dispositivo de seguridad.
Esta es la secuencia de eventos que tienen lugar cuando se configura el hairpinning. Suponga que el cliente ya ha consultado el servidor DNS y ha recibido una respuesta de 172.20.1.10 para la dirección del servidor WWW:
El cliente intenta contactar con el servidor WWW en 172.20.1.10.
%ASA-7-609001: Built local-host inside:192.168.100.2
El dispositivo de seguridad ve la solicitud y reconoce que el servidor WWW está en 192.168.100.10.
%ASA-7-609001: Built local-host inside:192.168.100.10
El dispositivo de seguridad crea una traducción PAT dinámica para el cliente. El origen del tráfico del cliente es ahora la interfaz interna del dispositivo de seguridad: 192.168.100.1.
%ASA-6-305011: Built dynamic TCP translation from inside:192.168.100.2/11012 to inside:192.168.100.1/1026
El dispositivo de seguridad crea una conexión TCP entre el cliente y el servidor WWW por sí mismo. Observe las direcciones asignadas de cada host entre paréntesis.
%ASA-6-302013: Built inbound TCP connection 67399 for inside:192.168.100.2/11012 (192.168.100.1/1026) to inside:192.168.100.10/80 (172.20.1.10/80)
El comando show xlate en el dispositivo de seguridad verifica que el tráfico del cliente se traduce a través del dispositivo de seguridad.
ciscoasa(config)#show xlate 3 in use, 9 most used Global 172.20.1.10 Local 192.168.100.10 Global 172.20.1.10 Local 192.168.100.10 PAT Global 192.168.100.1(1027) Local 192.168.100.2(11013)
El comando show conn en el dispositivo de seguridad verifica que la conexión se haya realizado correctamente entre el dispositivo de seguridad y el servidor WWW en nombre del cliente. Observe la dirección real del cliente entre paréntesis.
ciscoasa#show conn TCP out 192.168.100.1(192.168.100.2):11019 in 192.168.100.10:80 idle 0:00:03 bytes 1120 flags UIOB
Ésta es la configuración final del ASA que utiliza hairpinning y NAT estática para lograr un efecto de doctorado de DNS con dos interfaces NAT.
Configuración final de ASA 7.2(1) |
---|
ciscoasa(config-if)#show running-config : Saved : ASA Version 7.2(1) ! hostname ciscoasa enable password 9jNfZuG3TC5tCVH0 encrypted names dns-guard ! interface Ethernet0/0 nameif outside security-level 0 ip address 172.20.1.2 255.255.255.0 ! interface Ethernet0/1 nameif inside security-level 100 ip address 192.168.100.1 255.255.255.0 ! interface Ethernet0/2 shutdown no nameif no security-level no ip address ! interface Management0/0 shutdown no nameif no security-level no ip address management-only ! passwd 2KFQnbNIdI.2KYOU encrypted ftp mode passive same-security-traffic permit intra-interface access-list OUTSIDE extended permit tcp any host 172.20.1.10 eq www !--- Simple access-list that permits HTTP access to the mapped !--- address of the WWW server. pager lines 24 logging enable logging buffered debugging mtu outside 1500 mtu inside 1500 asdm image disk0:/asdm512-k8.bin no asdm history enable arp timeout 14400 global (outside) 1 interface !--- Global statement for client access to the Internet. global (inside) 1 interface !--- Global statment for hairpinned client access through !--- the security appliance. nat (inside) 1 192.168.100.0 255.255.255.0 !--- The NAT statement defines which traffic should be natted. !--- The whole inside subnet in this case. static (inside,outside) 172.20.1.10 192.168.100.10 netmask 255.255.255.255 !--- Static NAT statement mapping the WWW server's real address to a public !--- address on the outside interface. static (inside,inside) 172.20.1.10 192.168.100.10 netmask 255.255.255.255 !--- Static NAT statement mapping requests for the public IP address of the !--- WWW server that appear on the inside interface to the WWW server's real address !--- of 192.168.100.10. access-group OUTSIDE in interface outside !--- The ACL that permits HTTP access to the WWW server is applied !--- to the outside interface. route outside 0.0.0.0 0.0.0.0 172.20.1.1 1 timeout xlate 3:00:00 timeout conn 1:00:00 half-closed 0:10:00 udp 0:02:00 icmp 0:00:02 timeout sunrpc 0:10:00 h323 0:05:00 h225 1:00:00 mgcp 0:05:00 mgcp-pat 0:05:00 timeout sip 0:30:00 sip_media 0:02:00 sip-invite 0:03:00 sip-disconnect 0:02:00 timeout uauth 0:05:00 absolute username cisco password ffIRPGpDSOJh9YLq encrypted http server enable no snmp-server location no snmp-server contact snmp-server enable traps snmp authentication linkup linkdown coldstart telnet timeout 5 ssh timeout 5 console timeout 0 ! class-map inspection_default match default-inspection-traffic ! ! policy-map type inspect dns MY_DNS_INSPECT_MAP parameters message-length maximum 512 policy-map global_policy class inspection_default inspect ftp inspect h323 h225 inspect h323 ras inspect rsh inspect rtsp inspect esmtp inspect sqlnet inspect skinny inspect sunrpc inspect xdmcp inspect sip inspect netbios inspect tftp inspect dns MY_DNS_INSPECT_MAP inspect icmp policy-map type inspect dns migrated_dns_map_1 parameters message-length maximum 512 ! service-policy global_policy global prompt hostname context Cryptochecksum:7c9b4e3aff085ba90ee194e079111e1d : end |
Nota: Consulte este vídeo, Hair-pinning en Cisco ASA (sólo clientes registrados), para obtener más información sobre diferentes situaciones en las que se podría utilizar el hair-pinning.
Para habilitar la inspección de DNS (si se ha deshabilitado previamente), realice estos pasos. En este ejemplo, la inspección de DNS se agrega a la política de inspección global predeterminada, que se aplica globalmente mediante un comando service-policy como si el ASA comenzara con una configuración predeterminada. Consulte Uso del Marco de Políticas Modular para obtener más información sobre las políticas de servicio y la inspección.
Cree un policy map de inspección para DNS.
ciscoasa(config)#policy-map type inspect dns MY_DNS_INSPECT_MAP
Desde el modo de configuración de policy-map, ingrese al modo de configuración de parámetros para especificar los parámetros para el motor de inspección.
ciscoasa(config-pmap)#parameters
En el modo de configuración de parámetros de policy-map, especifique la longitud máxima de mensaje para los mensajes DNS para que sea 512.
ciscoasa(config-pmap-p)#message-length maximum 512
Salga del modo de configuración de parámetros de policy-map y del modo de configuración de policy-map.
ciscoasa(config-pmap-p)#exit ciscoasa(config-pmap)#exit
Confirme que el policy-map de inspección se creó como se deseaba.
ciscoasa(config)#show run policy-map type inspect dns ! policy-map type inspect dns MY_DNS_INSPECT_MAP parameters message-length maximum 512 !
Ingrese al modo de configuración de policy-map para global_policy.
ciscoasa(config)#policy-map global_policy ciscoasa(config-pmap)#
En el modo de configuración de policy-map, especifique el class map de capa 3/4 predeterminado, inspection_default.
ciscoasa(config-pmap)#class inspection_default ciscoasa(config-pmap-c)#
En el modo de configuración de clase de policy-map, especifique que DNS debe inspeccionarse mediante el policy map de inspección creado en los pasos 1-3.
ciscoasa(config-pmap-c)#inspect dns MY_DNS_INSPECT_MAP
Salga del modo de configuración de clase de policy-map y del modo de configuración de policy-map.
ciscoasa(config-pmap-c)#exit ciscoasa(config-pmap)#exit
Verifique que el policy-map global_policy esté configurado como desee.
ciscoasa(config)#show run policy-map ! !--- The configured DNS inspection policy map. policy-map type inspect dns MY_DNS_INSPECT_MAP parameters message-length maximum 512 policy-map global_policy class inspection_default inspect ftp inspect h323 h225 inspect h323 ras inspect rsh inspect rtsp inspect esmtp inspect sqlnet inspect skinny inspect sunrpc inspect xdmcp inspect sip inspect netbios inspect tftp inspect dns MY_DNS_INSPECT_MAP !--- DNS application inspection enabled. !
Verifique que global_policy sea aplicado globalmente por service-policy.
ciscoasa(config)#show run service-policy service-policy global_policy global
Ejecute el comando split-dns en el modo de configuración de política de grupo para ingresar una lista de dominios que se resolverán a través del túnel dividido. Use el comando no de este comando para eliminar una lista.
Cuando no hay listas de dominios de tunelización dividida, los usuarios heredan las que existen en la política de grupo predeterminada. Ejecute el comando split-dns none para evitar la herencia de las listas de dominio de tunelización dividida.
Utilice un solo espacio para separar cada entrada en la lista de dominios. No hay límite en el número de entradas, pero la cadena completa no puede tener más de 255 caracteres. Sólo puede utilizar caracteres alfanuméricos, guiones (-) y puntos (.). El comando no split-dns, cuando se utiliza sin argumentos, elimina todos los valores actuales, lo que incluye un valor nulo creado al ejecutar el comando split-dns none.
Este ejemplo muestra cómo configurar los dominios Domain1, Domain2, Domain3 y Domain4 para que se resuelvan a través de la tunelización dividida para la política de grupo denominada FirstGroup:
hostname(config)#group-policy FirstGroup attributes hostname(config-group-policy)#split-dns value Domain1 Domain2 Domain3 Domain4
Use esta sección para confirmar que su configuración funciona correctamente.
La herramienta Output Interpreter Tool (clientes registrados solamente) (OIT) soporta ciertos comandos show. Utilice la OIT para ver un análisis del resultado del comando show.
Un método para verificar que el dispositivo de seguridad reescribe los registros DNS correctamente es capturar los paquetes en cuestión, como se explicó en el ejemplo anterior. Complete estos pasos para capturar el tráfico en el ASA:
Cree una lista de acceso para cada instancia de captura que desee crear.
La ACL debe especificar el tráfico que desea capturar. En este ejemplo, se han creado dos ACL.
La ACL para el tráfico en la interfaz externa:
access-list DNSOUTCAP extended permit ip host 172.22.1.161 host 172.20.1.2 !--- All traffic between the DNS server and the ASA. access-list DNSOUTCAP extended permit ip host 172.20.1.2 host 172.22.1.161 !--- All traffic between the ASA and the DNS server.
La ACL para el tráfico en la interfaz interior:
access-list DNSINCAP extended permit ip host 192.168.100.2 host 172.22.1.161 !--- All traffic between the client and the DNS server. access-list DNSINCAP extended permit ip host 172.22.1.161 host 192.168.100.2 !--- All traffic between the DNS server and the client.
Crear las instancias de captura:
ciscoasa#capture DNSOUTSIDE access-list DNSOUTCAP interface outside !--- This capture collects traffic on the outside interface that matches !--- the ACL DNSOUTCAP. ciscoasa#capture DNSINSIDE access-list DNSINCAP interface inside !--- This capture collects traffic on the inside interface that matches !--- the ACL DNSINCAP.
Ver las capturas.
Este es el aspecto de las capturas de ejemplo después de que se haya pasado parte del tráfico DNS:
ciscoasa#show capture DNSOUTSIDE 2 packets captured 1: 14:07:21.347195 172.20.1.2.1025 > 172.22.1.161.53: udp 36 2: 14:07:21.352093 172.22.1.161.53 > 172.20.1.2.1025: udp 93 2 packets shown ciscoasa#show capture DNSINSIDE 2 packets captured 1: 14:07:21.346951 192.168.100.2.57225 > 172.22.1.161.53: udp 36 2: 14:07:21.352124 172.22.1.161.53 > 192.168.100.2.57225: udp 93 2 packets shown
(Opcional) Copie las capturas a un servidor TFTP en formato pcap para analizarlas en otra aplicación.
Las aplicaciones que pueden analizar el formato pcap pueden mostrar detalles adicionales como el nombre y la dirección IP en los registros A de DNS.
ciscoasa#copy /pcap capture:DNSINSIDE tftp ... ciscoasa#copy /pcap capture:DNSOUTSIDE tftp
En esta sección encontrará información que puede utilizar para solucionar problemas de configuración.
Asegúrese de que ha configurado la inspección de DNS en el dispositivo de seguridad. Consulte la sección Configuración de la inspección de DNS.
Si no se puede crear una conexión entre el cliente y el servidor WWW, puede deberse a un error de configuración de NAT. Verifique los registros del dispositivo de seguridad en busca de mensajes que indiquen que un protocolo no pudo crear una traducción a través del dispositivo de seguridad. Si aparecen estos mensajes, verifique que NAT se haya configurado para el tráfico deseado y que ninguna dirección sea incorrecta.
%ASA-3-305006: portmap translation creation failed for tcp src inside:192.168.100.2/11000 dst dmz:10.10.10.10/23
Borre las entradas xlate y luego quite y vuelva a aplicar las sentencias NAT para resolver este error.
Es posible que reciba este mensaje de error debido a la caída de paquetes DNS:
%PIX|ASA-4-410001: UDP DNS request from source_interface:source_address/source_port to dest_interface:dest_address/dest_port; (label length | domain-name length) 52 bytes exceeds remaining packet length of 44 bytes.
Aumente la longitud del paquete DNS entre 512-65535 para resolver este problema.
Ejemplo:
ciscoasa(config)#policy-map type inspect dns MY_DNS_INSPECT_MAP ciscoasa(config-pmap)#parameters ciscoasa(config-pmap-p)#message-length maximum <512-65535>
Revisión | Fecha de publicación | Comentarios |
---|---|---|
1.0 |
29-Sep-2006 |
Versión inicial |