El conjunto de documentos para este producto aspira al uso de un lenguaje no discriminatorio. A los fines de esta documentación, "no discriminatorio" se refiere al lenguaje que no implica discriminación por motivos de edad, discapacidad, género, identidad de raza, identidad étnica, orientación sexual, nivel socioeconómico e interseccionalidad. Puede haber excepciones en la documentación debido al lenguaje que se encuentra ya en las interfaces de usuario del software del producto, el lenguaje utilizado en función de la documentación de la RFP o el lenguaje utilizado por un producto de terceros al que se hace referencia. Obtenga más información sobre cómo Cisco utiliza el lenguaje inclusivo.
Cisco ha traducido este documento combinando la traducción automática y los recursos humanos a fin de ofrecer a nuestros usuarios en todo el mundo contenido en su propio idioma. Tenga en cuenta que incluso la mejor traducción automática podría no ser tan precisa como la proporcionada por un traductor profesional. Cisco Systems, Inc. no asume ninguna responsabilidad por la precisión de estas traducciones y recomienda remitirse siempre al documento original escrito en inglés (insertar vínculo URL).
Este documento describe cómo configurar la traducción de direcciones de red (NAT) y las listas de control de acceso (ACL) en un firewall ASA.
No hay requisitos específicos para este documento.
La información en este documento se basa en un firewall ASA 5510 que ejecuta código ASA versión 9.1(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). Si tiene una red en vivo, asegúrese de entender el posible impacto de cualquier comando.
Este documento describe un ejemplo simple y directo de cómo configurar NAT y ACL en un Firewall ASA para permitir la conectividad saliente y entrante. Se ha escrito con un firewall Adaptive Security Appliance (ASA) 5510 que ejecuta la versión de código ASA 9.1(1), pero esto se puede aplicar fácilmente a cualquier otra plataforma de firewall ASA. Si utiliza una plataforma como ASA 5505, que utiliza VLAN en lugar de una interfaz física, necesita cambiar los tipos de interfaz según corresponda.
En este ejemplo de configuración, puede ver qué configuraciones de NAT y ACL son necesarias para permitir el acceso entrante a un servidor web en la DMZ de un firewall ASA, y permitir la conectividad saliente desde hosts internos y DMZ. Esto puede resumirse en dos objetivos:
Antes de realizar los pasos que deben completarse para lograr estos dos objetivos, este documento repasa brevemente la forma en que las ACL y NAT funcionan en las versiones más recientes del código ASA (versión 8.3 y posteriores).
Las listas de control de acceso (listas de acceso o ACL) son el método por el cual el firewall ASA determina si se autoriza o rechaza el tráfico. De manera predeterminada, se rechaza el tráfico que circula de un nivel de seguridad inferior a uno superior. Es posible anular esto aplicando una ACL a la interfaz de seguridad inferior. También de manera predeterminada, ASA permite el tráfico de interfaces de seguridad superiores a inferiores. También es posible anular este comportamiento con una ACL.
En versiones anteriores de código ASA (8.2 y anteriores), ASA comparaba una conexión o paquete entrante con la ACL en una interfaz, sin eliminar primero la traducción del paquete. En otras palabras, la ACL debía autorizar el paquete como si fuera a capturarse en la interfaz. A partir de la versión 8.3 del código, ASA elimina la traducción del paquete antes de que llegue a la ACL de la interfaz. Esto significa que, a partir del código 8.3 (y para este documento), se autoriza el tráfico al IP real del host, y no al IP traducido del host.
Consulte la sección Configuración de las Reglas de Acceso del Libro 2: Guía de Configuración de la CLI del Firewall de la Serie ASA de Cisco, 9.1 para obtener más información sobre las ACL.
A partir de la versión 8.3 de ASA, NAT se divide en dos tipos conocidos como NAT automática (NAT de objeto) y NAT manual (NAT doble). La primera de los dos (NAT de objeto) se configura en la definición de un objeto de red. Más adelante en este documento, se incluye un ejemplo de esto. Una ventaja principal de este método de NAT es que ASA ordena automáticamente las reglas de procesamiento para evitar conflictos. Esta es la forma más sencilla de NAT, pero esa facilidad conlleva una limitación en la granularidad de configuración. Por ejemplo, no es posible tomar una decisión de traducción en función del destino en el paquete, algo que sí es posible con el segundo tipo de NAT (NAT manual). La NAT manual es más sólida en su granularidad, pero requiere que las líneas estén configuradas en el orden correcto para que sea posible lograr el comportamiento adecuado. Esto complica este tipo de NAT y, como resultado, no se puede utilizar en este ejemplo de configuración.
Consulte la sección Información sobre NAT del Libro 2: Guía de configuración de la CLI del firewall de la serie Cisco ASA, 9.1 para obtener más información sobre NAT.
La configuración básica de ASA son tres interfaces conectadas a tres segmentos de red. El segmento de red del proveedor de internet (ISP) se conecta a la interfaz Ethernet0/0 y se etiqueta como externa con un nivel de seguridad de 0. La red interna se conecta a Ethernet0/1 y se etiqueta como interna con un nivel de seguridad de 100. El segmento DMZ, donde reside el servidor web, se conecta a Ethernet0/2 y se etiqueta como DMZ con un nivel de seguridad de 50.
A continuación, es posible ver la configuración de la interfaz y las direcciones IP para el ejemplo:
interface Ethernet0/0
nameif outside
security-level 0
ip address 198.51.100.100 255.255.255.0
!
interface Ethernet0/1
nameif inside
security-level 100
ip address 192.168.0.1 255.255.255.0
!
interface Ethernet0/2
nameif dmz
security-level 50
ip address 192.168.1.1 255.255.255.0
!
route outside 0.0.0.0 0.0.0.0 198.51.100.1
Aquí se puede ver que la interfaz interna de ASA se configura con la dirección IP 192.168.0.1 y es el gateway predeterminado para los hosts internos. La interfaz externa de ASA está configurada con una dirección IP obtenida del ISP. Existe también una ruta predeterminada, que configura el siguiente salto como gateway del ISP. Si utiliza el protocolo de configuración dinámica de host (DHCP), esto se suministra automáticamente. La interfaz de DMZ está configurada con la dirección IP 192.168.1.1 y es el gateway predeterminado para los hosts en el segmento de red de DMZ.
A continuación, es posible ver una ilustración del cableado y la configuración:
Para este ejemplo, se utiliza el objeto NAT, también conocido como AutoNAT. Lo primero que debemos configurar son las reglas de NAT que permiten que los hosts de los segmentos en el interior y en DMZ se conecten a Internet. Debido a que estos hosts utilizan direcciones IP privadas, es necesario traducirlos a un elemento que pueda someterse a routing en Internet. En este caso, traduzca las direcciones de modo que se parezcan a la dirección IP de la interfaz externa de ASA. Si su IP externo cambia con frecuencia (quizá debido a DHCP), esta es la manera más sencilla de realizar la configuración.
Para configurar esta NAT, es necesario crear un objeto de red que represente la subred interna y otro que represente la subred de DMZ. En cada uno de estos objetos, configure una regla nat dinámica que pueda traducir la dirección de puerto (PAT) a estos clientes a medida que pasan de sus respectivas interfaces a la interfaz externa.
Esta configuración es similar a la siguiente:
object network inside-subnet
subnet 192.168.0.0 255.255.255.0
nat (inside,outside) dynamic interface
!
object network dmz-subnet
subnet 192.168.1.0 255.255.255.0
nat (dmz,outside) dynamic interface
Si observa la configuración en ejecución en este punto (con el resultado del comando show run), puede ver que la definición de objeto se divide en dos partes del resultado. La primera parte solamente indica qué hay en el objeto (host/subred, dirección IP, etc.), mientras que la segunda sección muestra la regla de NAT vinculada a ese objeto. Si observamos la primera entrada en la salida anterior:
Cuando los hosts que coinciden con la subred 192.168.0.0/24 pasan de la interfaz interna a la interfaz externa, es recomendable traducirlos dinámicamente a lainterfaz externa.
Ahora que los hosts en las interfaces interna y de DMZ pueden conectarse a Internet, es necesario modificar la configuración para que los usuarios de Internet puedan tener acceso a nuestro servidor web en el puerto TCP 80. En este ejemplo, la configuración es para que las personas en Internet puedan conectarse a otra dirección IP que proporcione el ISP y a una dirección IP adicional propia . Para este ejemplo, utilice 198.51.100.101. Con esta configuración, los usuarios de Internet pueden alcanzar el servidor web DMZ accediendo a 198.51.100.101 en el puerto TCP 80. Utilice el objeto NAT para esta tarea, y el ASA puede traducir el puerto TCP 80 en el servidor web (192.168.1.100) para que se vea como 198.51.100.101 en el puerto TCP 80 en el exterior. De manera similar a lo que hizo anteriormente, defina un objeto y las reglas de traducción para ese objeto. Además, defina un segundo objeto para representar la IP a la que puede traducir este host.
Esta configuración es similar a la siguiente:
object network webserver-external-ip
host 198.51.100.101
!
object network webserver
host 192.168.1.100
nat (dmz,outside) static webserver-external-ip service tcp www www
Para resumir lo que esa regla de NAT significa en este ejemplo:
Cuando un host que coincide con la dirección IP 192.168.1.100 en los segmentos de DMZ establece una conexión originada en el puerto TCP 80 (www) y dicha conexión sale de la interfaz externa, se recomienda traducir esto para que sea el puerto TCP 80 (www) en la interfaz externa y traducir la dirección IP para que sea 198.51.100.101.
Eso parece un poco extraño... "originado en el puerto TCP 80 (www)", pero el tráfico web está destinado al puerto 80. Es importante comprender que estas reglas de NAT son bidireccionales por naturaleza. Como resultado, puede invertir el texto para reformular esta oración. El resultado tiene mucho más sentido:
Cuando los hosts en el exterior establecen una conexión a 198.51.100.101 en el puerto TCP de destino 80 (www), puede traducir la dirección IP de destino a 192.168.1.100 y el puerto de destino puede ser el puerto TCP 80 (www) y enviarlo a la DMZ.
Tiene más sentido cuando se expresa de esta manera. A continuación, debe configurar las ACL.
Ya se configuró la NAT y estamos por finalizar toda la configuración. Recuerde que las ACL en ASA le permiten anular el comportamiento de seguridad predeterminado, que es el siguiente:
Por lo tanto, si no se agrega ninguna ACL a la configuración, el tráfico de este ejemplo funciona del siguiente modo:
Sin embargo, este tráfico se rechaza:
Debido a que ASA rechaza el tráfico del exterior a la red DMZ con la configuración actual, los usuarios de Internet no pueden comunicarse con el servidor web a pesar de la configuración de NAT en el paso 2. Se debe autorizar explícitamente este tráfico. A partir del código 8.3, se debe utilizar la dirección IP real del host en la ACL, no la dirección IP traducida. Esto significa que la configuración debe permitir el tráfico destinado a 192.168.1.100 yNO el tráfico destinado a 198.51.100.101 en el puerto 80. Por motivos de simplicidad, los objetos definidos en el paso 2 también se pueden utilizar para esta ACL. Una vez que se crea la ACL, es necesario aplicarla internamente en la interfaz externa.
Así se ven esos comandos de configuración:
access-list outside_acl extended permit tcp any object webserver eq www
!
access-group outside_acl in interface outside
La línea de la lista de acceso establece lo siguiente:
Permitir el tráfico desde any (cualquier lugar) al host representado por el objeto servidor web (192.168.1.100) en el puerto 80.
Es importante que la configuración utilice la palabra clave any aquí. Debido a que la dirección IP de origen de los clientes no se conoce cuando llega a su sitio web, especifique cualquier significado, Cualquier dirección IP.
¿Qué ocurre con el tráfico del segmento DMZ destinado a los hosts en el segmento de red interna? Por ejemplo, un servidor de la red interna al que necesitan conectarse los hosts de la DMZ. ¿Cómo puede ASA permitir solo ese tráfico específico destinado al servidor interno y bloquear todo lo demás destinado al segmento interno de la DMZ?
En este ejemplo, se supone que hay un servidor DNS en la red interna, en la dirección IP 192.168.0.53, al que los hosts de la DMZ necesitan tener acceso para la resolución de DNS. Debe crear la ACL necesaria y aplicarla a la interfaz de DMZ para que ASA pueda anular ese comportamiento de seguridad predeterminado, mencionado anteriormente, para el tráfico que ingresa en esa interfaz.
Así se ven esos comandos de configuración:
object network dns-server
host 192.168.0.53
!
access-list dmz_acl extended permit udp any object dns-server eq domain
access-list dmz_acl extended deny ip any object inside-subnet
access-list dmz_acl extended permit ip any any
!
access-group dmz_acl in interface dmz
La ACL no solo permite el tráfico al servidor DNS en el puerto UDP 53, sino que es más compleja. Si lo único que hiciéramos fuera permitir la primera línea, se bloquearía todo el tráfico desde la DMZ a los hosts de Internet. Las ACL tienen una negación implícita de IP any any al final de la ACL. Como resultado, los hosts de su DMZ no podrán conectarse a Internet. Aun cuando el tráfico desde la DMZ al exterior se permita de manera predeterminada, si se aplica una ACL a la interfaz de DMZ, los comportamientos de seguridad predeterminados para la interfaz de DMZ pierden vigor y debe permitirse explícitamente el tráfico en la ACL de la interfaz.
Ahora que se ha completado la configuración, es necesario probarla para asegurarse de que funciona. El método más fácil es utilizar hosts reales (si la red es suya). Sin embargo, para probar esto desde la CLI y explorar más a fondo algunas de las herramientas de ASA, utilice el rastreador de paquetes para probar y, potencialmente, depurar cualquier problema encontrado.
Packet Tracer funciona simulando un paquete con una serie de parámetros e inyectándolo a la ruta de datos de la interfaz, de manera similar a como lo haría un paquete real proveniente de la red. Se realiza un seguimiento de este paquete a través de la inmensidad de controles y procesos que se realizan mientras pasa por el firewall, y Packet Tracer registra el resultado. Simule el host interno conectándose a un host en Internet. Este comando indica al firewall que:
Simular un paquete TCP que ingresa a la interfaz interna desde la dirección IP 192.168.0.125 en el puerto de origen 12345 y se dirige a una dirección IP 203.0.113.1 en el puerto 80.
ciscoasa# packet-tracer input inside tcp 192.168.0.125 12345 203.0.113.1 80
Phase: 1
Type: ACCESS-LIST
Subtype:
Result: ALLOW
Config:
Implicit Rule
Additional Information:
MAC Access list
Phase: 2
Type: ROUTE-LOOKUP
Subtype: input
Result: ALLOW
Config: Additional Information:
in 0.0.0.0 0.0.0.0 outside Phase: 3
Type: NAT
Subtype:
Result: ALLOW
Config:
object network inside-subnet
nat (inside,outside) dynamic interface
Additional Information:
Dynamic translate 192.168.0.125/12345 to 198.51.100.100/12345
Phase: 4
Type: NAT
Subtype: per-session
Result: ALLOW
Config:
Additional Information:
Phase: 5
Type: IP-OPTIONS
Subtype:
Result: ALLOW
Config:
Additional Information:
Phase: 6
Type: NAT
Subtype: per-session
Result: ALLOW
Config:
Additional Information:
Phase: 7
Type: IP-OPTIONS
Subtype:
Result: ALLOW
Config:
Additional Information:
Phase: 8
Type: FLOW-CREATION
Subtype:
Result: ALLOW
Config:
Additional Information:
New flow created with id 1, packet dispatched to next module
Result:
input-interface: inside
input-status: up
input-line-status: up
output-interface: outside
output-status: up
output-line-status: up
Action: allow
El resultado final es que se permite el tráfico, lo que significa que aprobó todos los controles de NAT y ACL en la configuración y abandonó la interfaz de salida hacia el exterior. Tenga en cuenta que el paquete se tradujo en la etapa 3 y los detalles de esa etapa muestran qué regla se aplica. El host 192.168.0.125 se traduce dinámicamente a 198.51.100.100 según la configuración.
Ahora, ejecútelo para obtener una conexión de Internet al servidor web. Recuerde que los hosts en Internet pueden acceder al servidor web conectándose a 198.51.100.101 en la interfaz externa. Nuevamente, el siguiente comando se traduce a lo siguiente:
Simular un paquete TCP que ingresa a la interfaz externa desde la dirección IP 192.0.2.123 en el puerto de origen 12345 y se dirige a una dirección IP 198.51.100.101 en el puerto 80.
ciscoasa# packet-tracer input outside tcp 192.0.2.123 12345 198.51.100.101 80
Phase: 1
Type: UN-NAT
Subtype: static
Result: ALLOW
Config:
object network webserver
nat (dmz,outside) static webserver-external-ip service tcp www www
Additional Information:
NAT divert to egress interface dmz
Untranslate 198.51.100.101/80 to 192.168.1.100/80
Phase: 2
Type: ACCESS-LIST
Subtype: log
Result: ALLOW
Config:
access-group outside_acl in interface outside
access-list outside_acl extended permit tcp any object webserver eq www
Additional Information:
Phase: 3
Type: NAT
Subtype: per-session
Result: ALLOW
Config:
Additional Information:
Phase: 4
Type: IP-OPTIONS
Subtype:
Result: ALLOW
Config:
Additional Information:
Phase: 5
Type: NAT
Subtype: rpf-check
Result: ALLOW
Config:
object network webserver
nat (dmz,outside) static webserver-external-ip service tcp www www
Additional Information:
Phase: 6
Type: NAT
Subtype: per-session
Result: ALLOW
Config:
Additional Information:
Phase: 7
Type: IP-OPTIONS
Subtype:
Result: ALLOW
Config:
Additional Information:
Phase: 8
Type: FLOW-CREATION
Subtype:
Result: ALLOW
Config:
Additional Information:
New flow created with id 3, packet dispatched to next module
Result:
input-interface: outside
input-status: up
input-line-status: up
output-interface: dmz
output-status: up
output-line-status: up
Action: allow
Una vez más, el resultado es la autorización del paquete. Las ACL se desprotegen, la configuración parece correcta y los usuarios de Internet (externos) pueden acceder a ese servidor web con la IP externa.
Los procedimientos de verificación están incluidos en el Paso 4: Pruebe la configuración con la función Packet Tracer.
Actualmente no hay información específica disponible sobre cómo resolver problemas de esta configuración.
La configuración de un ASA para hacer NAT básico no es tan difícil de una tarea. El ejemplo incluido en este documento se puede adaptar a su situación específica si cambia las direcciones IP y los puertos utilizados en los ejemplos de configuraciones. La configuración final de ASA en este caso, cuando se combina, es similar a la siguiente para ASA 5510:
ASA Version 9.1(1)
!
interface Ethernet0/0
nameif outside
security-level 0
ip address 198.51.100.100 255.255.255.0
!
interface Ethernet0/1
nameif inside
security-level 100
ip address 192.168.0.1 255.255.255.0
!
interface Ethernet0/2
nameif dmz
security-level 50
ip address 192.168.1.1 255.255.255.0
!
object network inside-subnet
subnet 192.168.0.0 255.255.255.0
object network dmz-subnet
subnet 192.168.1.0 255.255.255.0
object network webserver
host 192.168.1.100
object network webserver-external-ip
host 198.51.100.101
object network dns-server
host 192.168.0.53
!
access-list outside_acl extended permit tcp any object webserver eq www
access-list dmz_acl extended permit udp any object dns-server eq domain
access-list dmz_acl extended deny ip any object inside-subnet
access-list dmz_acl extended permit ip any any
!
object network inside-subnet
nat (inside,outside) dynamic interface
object network dmz-subnet
nat (dmz,outside) dynamic interface
object network webserver
nat (dmz,outside) static webserver-external-ip service tcp www www
access-group outside_acl in interface outside
access-group dmz_acl in interface dmz
!
route outside 0.0.0.0 0.0.0.0 198.51.100.1 1
En ASA 5505, por ejemplo, con las interfaces conectadas como se muestra anteriormente (la externa conectada a Ethernet0/0, la interna conectada a Ethernet0/1 y la DMZ conectada a Ethernet0/2):
ASA Version 9.1(1)
!
interface Ethernet0/0
description Connected to Outside Segment
switchport access vlan 2
!
interface Ethernet0/1
description Connected to Inside Segment
switchport access vlan 1
!
interface Ethernet0/2
description Connected to DMZ Segment
switchport access vlan 3
!
interface Vlan2
nameif outside
security-level 0
ip address 198.51.100.100 255.255.255.0
!
interface Vlan1
nameif inside
security-level 100
ip address 192.168.0.1 255.255.255.0
!
interface Vlan3
nameif dmz
security-level 50
ip address 192.168.1.1 255.255.255.0
!
object network inside-subnet
subnet 192.168.0.0 255.255.255.0
object network dmz-subnet
subnet 192.168.1.0 255.255.255.0
object network webserver
host 192.168.1.100
object network webserver-external-ip
host 198.51.100.101
object network dns-server
host 192.168.0.53
!
access-list outside_acl extended permit tcp any object webserver eq www
access-list dmz_acl extended permit udp any object dns-server eq domain
access-list dmz_acl extended deny ip any object inside-subnet
access-list dmz_acl extended permit ip any any
!
object network inside-subnet
nat (inside,outside) dynamic interface
object network dmz-subnet
nat (dmz,outside) dynamic interface
object network webserver
nat (dmz,outside) static webserver-external-ip service tcp www www
access-group outside_acl in interface outside
access-group dmz_acl in interface dmz
!
route outside 0.0.0.0 0.0.0.0 198.51.100.1 1
Revisión | Fecha de publicación | Comentarios |
---|---|---|
3.0 |
07-Dec-2023 |
Formato actualizado. |
2.0 |
14-Nov-2022 |
Actualizado para errores de título, errores de introducción, renuncia legal, gerundios, traducción automática, requisitos de estilo y SEO. |
1.0 |
15-Jan-2013 |
Versión inicial |