Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
¿Tiene un Wi-Fi de
invitado habilitado pero no desea que los visitantes accedan a su recurso interno? En
esta sesión, hablaremos sobre la segmentación de la seguridad mediante la creación
de múltiples niveles de seguridad en un firewall ASA de Cisco. Al final, también se
proporcionan el ejemplo y la plantilla de configuración de ASA DMZ de Cisco.
La información en esta sesión se aplica a los sistemas ASA 5500 heredados de Cisco
(es decir, ASA 5505, 5510 y 5520), así como a los dispositivos firewall de la serie ASA
5500-X de próxima generación.
Desde la versión 8.3 del código ASA, hubo un cambio importante introducido en la
funcionalidad NAT por parte de Cisco. Cubriremos la configuración de las versiones
anteriores a la 8.3 y de la versión 9.x actual.
Descargar ahora
Ejemplo de configuración de Cisco ASA DMZ
Principio de diseño
interface GigabitEthernet0/0
description to WAN
nameif outside
security-level 0
ip address 10.1.1.1 255.255.255.0
!
interface GigabitEthernet0/1
description to LAN
nameif inside
security-level 100
ip address 192.168.0.1 255.255.255.0
!
interface GigabitEthernet0/2
description to DMZ1
nameif dmz1
security-level 50
ip address 192.168.1.1 255.255.255.0
!
interface GigabitEthernet0/3
description to DMZ2
nameif dmz2
security-level 20
ip address 192.168.2.1 255.255.255.0
Hay dos tareas principales para permitir que los hosts internos salgan a Internet,
configurando la traducción de direcciones de red (NAT) y enrutando todo el tráfico al
ISP. No necesita una ACL porque todo el tráfico saliente está atravesando desde un
nivel de seguridad más alto (dentro, dmz1 y dmz2) hasta un nivel de seguridad más
bajo (fuera).
NAT en el ASA desde la versión 8.3 y posteriores se divide en dos tipos conocidos
como Auto NAT (Object NAT) y Manual NAT (Twice NAT). El primero de los dos,
Object NAT, se configura dentro de la definición de un objeto de red.
La principal ventaja de Auto NAT es que el ASA ordena automáticamente las reglas
de procesamiento para evitar conflictos. Esta es la forma más fácil de NAT, pero con
esa facilidad viene con una limitación en la granularidad de la configuración. Por
ejemplo, no puede tomar una decisión de traducción basada en el destino en el
paquete como lo haría con el segundo tipo de NAT, Manual NAT. La NAT manual es
más robusta en su granularidad, pero requiere que las líneas se configuren en el
orden correcto para lograr el comportamiento correcto.
El otro cambio en NAT es que usted define un NAT o no lo hace. El tráfico que no
coincida con ninguna regla de NAT atravesará el firewall sin ninguna traducción (como
la exención de NAT, pero sin configurarlo explícitamente, más como una exención de
NAT implícita). Las palabras clave estáticas y globales están en desuso. Ahora se
trata de "NAT".
policy-map global_policy
class inspection_default
inspect icmp
En este punto, debería poder hacer ping al host 10.1.1.200 en Internet desde
cualquier subred interna.
Primero definimos dos objetos para el servidor web, uno para su IP interna y otro para
su IP pública.
Tenemos dos formas de configurar NAT, NAT automática (NAT de objeto) y NAT
manual (NAT doble). Para Auto-NAT, inserte esta configuración en el objeto WWW-
INT.
nat (dmz1,outside) static WWW-EXT service tcp www www
Para NAT manual, defina el objeto de servicio web y configure la NAT manual en el
modo de configuración global. En nuestro ejemplo, vamos a demostrar Manual
NAT. Sólo puede tener un conjunto de configuración a la vez.
Eso parece un poco extraño ... "proviene del puerto TCP 80 (www)", pero el tráfico
web está destinado al puerto 80. Es importante comprender que estas reglas de NAT
son de naturaleza bidireccional. Como resultado, puede volver a redactar esta frase
cambiando la redacción. El resultado tiene mucho más sentido:
Los estados de ACL permiten el tráfico desde cualquier lugar al servidor web (WWW-
INT: 192.168.1.10) en el puerto 80.
En versiones anteriores del código ASA (8.2 y anteriores), el ASA comparó una
conexión o un paquete entrante con la ACL en una interfaz sin haber traducido
primero el paquete. En otras palabras, la ACL tenía que permitir el paquete como si
fuera a capturar ese paquete en la interfaz. En el código 8.3 y posterior, el ASA des-
traduce ese paquete antes de verificar las ACL de la interfaz. Esto significa que para
el código 8.3 y posterior, se permite el tráfico a la IP real del host y no a la IP traducida
del host. Tenga en cuenta que utilizamos WWW-INT en este ejemplo.
El tráfico iniciado desde una interfaz de seguridad más baja se deniega cuando
se va a una interfaz de seguridad más alta
El tráfico iniciado desde una interfaz de seguridad más alta se permite cuando
se va a una interfaz de seguridad más baja
Las reglas predeterminadas pueden ser sobrescritas por ACLs. En nuestro ejemplo,
necesitamos que los invitados en dmz2 puedan usar los servidores DNS en
dmz1. Necesitaremos configurar las ACL para permitir específicamente el acceso.
Las ACL permiten que el tráfico iniciado desde dmz2 acceda al servidor DNS en el
puerto UDP 53. Recuerde que hay un "deny ip any" implícito al final de la ACL. Si nos
detenemos aquí, el acceso a Internet de dmz2 se interrumpirá. Agregamos tres líneas
más para denegar el acceso a dmz1 y a las redes internas al tiempo que permitimos
que el restablecimiento del tráfico vaya a Internet.
¿Qué pasa con las ACL en dmz1 y las interfaces internas? No necesitamos ninguna
ACL en esas interfaces porque el comportamiento de seguridad predeterminado
cumple con nuestros requisitos.
Ping se inició desde dentro del host 192.168.0.200, dmz1 host 192.168.1.10 y dmz2
host 192.168.2.10. Se están recibiendo respuestas.
La segunda técnica es utilizar Packet Tracer para simular paquetes que pasan por el
ASA y ver cómo el ASA trata el paquete paso a paso. Es una herramienta excelente
cuando no tiene acceso a ningún lado de los servidores para generar tráfico real. O
antes de ponerlo en funcionamiento, quería asegurarse de que la configuración hará
lo que se pretende.
Haremos dos pruebas de rastreo de paquetes para validar estos servicios críticos:
Phase: 2
Type: UN-NAT
Subtype: static
Result: ALLOW
Config:
nat (dmz1,outside) source static WWW-INT WWW-EXT service WEB-SERVICE
WEB-SERVICE
Additional Information:
NAT divert to egress interface dmz1
Untranslate 10.1.1.10/80 to 192.168.1.200/80
Phase: 3
Type: ACCESS-LIST
Subtype: log
Result: ALLOW
Config:
access-group OUTSIDE in interface outside
access-list OUTSIDE extended permit tcp any object WWW-INT eq www
Additional Information:
Forward Flow based lookup yields rule:
in id=0x7fffd12e7660, priority=13, domain=permit, deny=false
hits=1, user_data=0x7fffd8eb9d00, cs_id=0x0, use_real_addr,
flags=0x0, protocol=6
src ip/id=0.0.0.0, mask=0.0.0.0, port=0, tag=any
dst ip/id=192.168.1.200, mask=255.255.255.255, port=80,
tag=any, dscp=0x0
input_ifc=outside, output_ifc=any
Phase: 4
Type: NAT
Subtype:
Result: ALLOW
Config:
nat (dmz1,outside) source static WWW-INT WWW-EXT service WEB-SERVICE
WEB-SERVICE
Additional Information:
Static translate 10.1.1.200/1234 to 10.1.1.200/1234
Forward Flow based lookup yields rule:
in id=0x7fffd1cc1b50, priority=6, domain=nat, deny=false
hits=1, user_data=0x7fffd12e6270, cs_id=0x0, flags=0x0,
protocol=6
src ip/id=0.0.0.0, mask=0.0.0.0, port=0, tag=any
dst ip/id=10.1.1.10, mask=255.255.255.255, port=80, tag=any,
dscp=0x0
input_ifc=outside, output_ifc=dmz1
...
output omitted for brevity
...
Result:
input-interface: outside
input-status: up
input-line-status: up
output-interface: dmz1
output-status: up
output-line-status: up
Action: allow
Phase: 2
Type: ROUTE-LOOKUP
Subtype: Resolve Egress Interface
Result: ALLOW
Config:
Additional Information:
found next-hop 192.168.1.10 using egress ifc dmz1
Phase: 3
Type: ACCESS-LIST
Subtype: log
Result: ALLOW
Config:
access-group DMZ2-ACL in interface dmz2
access-list DMZ2-ACL extended permit udp any object DNS-SERVER eq
domain
Additional Information:
Forward Flow based lookup yields rule:
in id=0x7fffd1cdad10, priority=13, domain=permit, deny=false
hits=0, user_data=0x7fffd8eb9b80, cs_id=0x0, use_real_addr,
flags=0x0, protocol=17
src ip/id=0.0.0.0, mask=0.0.0.0, port=0, tag=any
dst ip/id=192.168.1.10, mask=255.255.255.255, port=53, tag=any,
dscp=0x0
input_ifc=dmz2, output_ifc=any
...
output omitted for brevity
...
Result:
input-interface: dmz2
input-status: up
input-line-status: up
output-interface: dmz1
output-status: up
output-line-status: up
Action: allow
El servidor web no está configurado para servir tráfico FTP. Enviaremos una solicitud
de FTP al servidor web y veremos qué sucede.
Result:
input-interface: outside
input-status: up
input-line-status: up
output-interface: outside
output-status: up
output-line-status: up
Action: drop
Drop-reason: (nat-no-xlate-to-pat-pool) Connection to PAT address
without pre-existing xlate
El ASA eliminó el paquete porque no hay reglas de NAT configuradas para transferir
el tráfico de FTP a nada. Ni siquiera llegó al punto de control de ACL.
Configuramos un "NAT global" para usar la interfaz externa IP para navegar por
Internet. El número “10” es el ID de grupo de NAT que se extraerá del NAT
global. Luego, definimos el ID de grupo de NAT 10 para que cada una de las subredes
internas utilice el NAT global.
Configure un NAT estático uno a uno para el servidor web. La ACL permite que
cualquier persona en Internet acceda al servidor web en el puerto 80. La diferencia en
la configuración es que usamos la IP pública de NAT en lugar de la IP interna del
servidor web en la ACL.
Primero configuramos las ACL para permitir el acceso de DNS desde dmz2 a dmz1.
En las pruebas de rastreo de paquetes, puede observar que las ACL comprueban los
paquetes antes de ser NAT.
Eso es todo lo que necesita configurar en un ASA que ejecuta un código anterior a
8.3. Concluye el tutorial sobre el ejemplo de configuración de ASA DMZ de Cisco.