Configuración NAT estática Cisco ASA
Contenido de la Lección
En lecciones anteriores expliqué cómo puede usar NAT dinámico o PAT para que sus hosts o servidores en el interior de su red puedan acceder al mundo exterior. Esto es genial, pero es solo para el tráfico saliente o en “terminología ASA”: tráfico de un nivel de seguridad más alto a un nivel de seguridad más bajo.
¿Qué pasa si un host externo en Internet quiere llegar a un servidor en nuestro interior o DMZ? Esto es imposible con solo NAT dinámico o PAT. Cuando queremos lograr esto tenemos que hacer dos cosas:
- Configure NAT estático para que el servidor interno sea accesible a través de una dirección IP pública externa.
- Configure una lista de acceso para permitir el tráfico.
Para demostrar NAT estático utilizaré la siguiente topología:
Arriba tenemos nuestro firewall ASA con dos interfaces; una para la DMZ y otra para el mundo exterior. Imagine que R1 es un servidor web en la zona desmilitarizada, mientras que R2 es un host en Internet que quiere llegar a nuestro servidor web. Configuremos nuestro firewall para que esto sea posible
Configuración NAT estática
Primero crearemos un objeto de red que defina nuestro “servidor web” en la zona desmilitarizada y también configuraremos a qué dirección IP debe traducirse. Esta configuración es para ASA versión 8.3 y posterior:
ASA1(config)# object network WEB_SERVERASA1(config-network-object)# host 192.168.1.1ASA1(config-network-object)# nat (DMZ,OUTSIDE) static 192.168.2.200
La configuración anterior indica al ASA que cada vez que un dispositivo externo se conecta a la dirección IP 192.168.2.200, debe traducirse a la dirección IP 192.168.1.1. Esto se encarga de NAT, pero aún tenemos que crear una lista de acceso o el tráfico se eliminará:
ASA1(config)# access-list OUTSIDE_TO_DMZ extended permit tcp any host 192.168.1.1
La lista de acceso anterior permite que cualquier dirección IP de origen se conecte a la dirección IP 192.168.1.1. Al usar la versión ASA 8.3 o posterior, debe especificar la dirección IP “real”, no la dirección” traducida NAT”. Activemos esta lista de acceso:
ASA1(config)# access-group OUTSIDE_TO_DMZ in interface OUTSIDE
Esto habilita la lista de acceso en la interfaz externa. Vamos a telnet de R2 a R1 en el puerto TCP 80 para ver si funciona:
R2#telnet 192.168.2.200Trying 192.168.2.200 ... Open
Genial, podemos conectarnos de R2 a R1, echemos un vistazo al ASA para verificar algunas cosas:
ASA1# show xlate1 in use, 1 most usedFlags: D - DNS, e - extended, I - identity, i - dynamic, r - portmap, s - static, T - twice, N - net-to-netNAT from DMZ:192.168.1.1 to OUTSIDE:192.168.2.200 flags s idle 0:08:44 timeout 0:00:00
ASA1# show access-listaccess-list cached ACL log flows: total 0, denied 0 (deny-flow-max 4096) alert-interval 300access-list OUTSIDE_TO_DMZ; 1 elements; name hash: 0xe96c1ef3access-list OUTSIDE_TO_DMZ line 1 extended permit tcp any host 192.168.1.1 eq www (hitcnt=6) 0x408b914e
Arriba puede ver la entrada NAT estática y también el hit en la lista de acceso. Todo está funcionando como se supone que debe ser.
NAT estático para toda la subred
El ejemplo anterior estaba bien si solo tiene unos pocos servidores, ya que puede crear un par de traducciones NAT estáticas y terminar con él. Sin embargo, hay otra opción, también es posible traducir una subred completa a un grupo completo de direcciones IP. Déjame darte un ejemplo de lo que estoy hablando:
La topología anterior es exactamente la misma que en el ejemplo anterior, pero he agregado R3 a la DMZ. Ahora imagine que nuestro ISP nos dio un conjunto de direcciones IP, digamos 10.10.10.0 / 24. Podemos usar este grupo para traducir todos los servidores en la zona desmilitarizada, déjame mostrarte cómo: