Objetivos: Esquema general: Metodologia: Servidor (dmz) Interfaz ip

Anuncio
Laboratorio1: LINUX IPTABLES
Objetivos:
• Comprender la forma como se comunican los equipos de diferentes redes, a través de los
enrutadores.
• Validar la utilidad del servicio de NAT para minimizar el uso de direcciones válidas y para
publicar los servicios con direcciones inválidas
• Comprender la diferencia entre los servicios de SNAT y DNAT
Servidor
Esquema general:
Cortafuegos
Red Externa Eth0
Red DMZ Eth1 10.66.0.1/24
Red Lan Eth2 10.67.0.1/24
Equipo
Metodologia:
Durante el desarrollo de la guía primero se indicará lo que se necesita hacer y después
como se hará, de esta manera el estudiante está en la libertad de hacer la guía basado en el
que, siempre y cuando conozca como lo va a hacer. Todos los conceptos serán
desarrollados en el transcurso de la guía.
Servidor (dmz)
Interfaz
eth0
ip
10.66.0.2/24
GW: 10.66.0.1
servicio
Web, ssh,ftp
Laboratorio1: LINUX IPTABLES
Cortafuegos
Interfaz
ip
servicio
eth0
DHCP cliente
DNS, ssh,
snat,dnat,masquerade
eth1
10.66.0.1/24
DNS,ssh,
snat,dnat,masquerade
eth2
10.67.0.1/24
DNS, DHCP servidor, Proxy
Para habilitar el servicio de routing o reenvió de paquetes se debe modificar el archivo
sysctl.conf que se encuentra en /etc/sysctl.conf , para que contenga 1 en la variable
tcp_syncookies junto con ip_forward, en nuestro cortafuegos ya que este será el equipo que
enrutará los paquetes y luego prestará el servicio de NAT.
Luego de realizar estos pasos verificar la conexión entre las maquinas que constituyen
nuestra red a través de un simple ping entre ellas. Si no están configuradas las rutas deberá
de agregarlas manualmente a su tabla de rutas (route add).
Verifique su cortafuegos se encuentra resolviendo nombres de dominio (ping google.cl).
En su maquina cortafuegos habilitaremos el trafico SNAT para toda la red.
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Tambien se puede definir de manera mas explicita especificando la interfaz y el segmento de
red.
iptables -t nat -A POSTROUTING -s 10.66.0.0/24 -o eth0 -j MASQUERADE
Recuerde que la interfaz eth0 esta definida como la interfaz que posee la dirección recibida
por dhcp en la red externa. Si se equivoco con el comando anterior o si definio de manera
distinta su interfaz externa borre el comando anterior con:
iptables -t nat -F
El comando anterior adiciona una regla en la tabla de nat en la cadena de POSTROUTING,
pone como condición que si el paquete sale (-o) por la interfaz eth0 ejecute la opción
MASQUERADE la cual especifica enmascarar (traducir) la dirección fuente del paquete por
la configurada en la interfaz de salida
iptables es una herramienta de administración de paquetes IPv4, permite realizar filtrado de
paquetes e implementar servicios de NAT (SNAT y DNAT), predeterminadamente maneja
dos tablas que son las más utilizadas: filter y nat, la tabla de nat maneja tres cadenas:
PREROUTING, POSTROUTING y OUTPUT.
Las reglas de SNAT se crean en la cadena de POSTROUTING y son los traslados de la
dirección y/o puertos fuente de los paquetes y las de DNAT en la cadena de PREROUTING
y son los traslados de la dirección y/o puertos de destino. En la cadena de OUTPUT se
Laboratorio1: LINUX IPTABLES
configuran las reglas de los paquetes que se les desea hacer algún cambio y son generados
localmente.
Ahora probaremos el funcionamiento de NAT. Intente navegar, a través de lynks2, desde el
equipo servidor en su DMZ (lynks2 www.google.cl).
Note que esta vez sí tiene acceso a Internet, lo cual indica que pudo resolver el nombre de
dns y posteriormente tuvo acceso al servidor Web.
Verificaremos las tabla nat en la cadena POSTROUTING en nuestro cortafuegos.
iptables -t nat –L
La opción -L se utiliza para listar las reglas configuradas y con la opción -t se especifica la
tabla que en este caso es nat, note que en la columna prot (protocol) aparece all y en source
and destination anywhere, esto se debe a que cuando se configuró la regla con el comando
iptables no se espcificó ni el protocolo ni la dirección fuente ni destino, por ende iptables
configuró la regla para que aceptará en esa regla todos los protocolos, direcciones fuente y
destino.
Si desea ver las reglas configuradas, de una cadena específica, por ejemplo, la de
POSTROUTING usted puede ejecutar:
iptables -t nat -L POSTROUTING
En este momento ya está creada la regla para cuando el equipo con la dirección
192.168.2X.3/24 quiera salir a través del equipo Linux, se traslade a la dirección
192.168.130.1X, sin embargo está regla no es efectiva debido a que utilizamos la opción -A
que especifica agregar una regla, esta opción agrega las reglas al final de una cadena,
podemos comprobarlo al listar las reglas de POSTROUTING.
iptables -t nat -L POSTROUTING --line-number
Note que la regla de SNAT hacia la dirección 192.168.130.1X está después de la regla de
MASQUERADE, pero recuerde que la primera regla especifica que desde cualquier
dirección IP, lo que indica que cuando un paquete pase por esta cadena, cumplirá primero la
condición 1 antes que la 2, esto es importante tenerlo en cuenta debido a que cuando el
sistema operativo recorre las reglas, lo hace hasta la primera que cumpla la condición del
paquete evaluado, en nuestro caso siempre cumplirá con las condiciones de la primera regla
debido a que es muy general.
Para corregir el problema mencionado eliminaremos la regla #2 qué es la regla de SNAT,
para esto ejecutaremos:
iptables -D POSTROUTING 2
iptables -t nat -L POSTROUTING --line-number
Ahora no adicionaremos la regla sino que la insertaremos en una posición específica, que
será la posición 1, de esta manera la regla quedará antes de la regla de MASQUERADE
Laboratorio1: LINUX IPTABLES
iptables -t nat -I POSTROUTING 1 -s 192.168.133.x/24 -o eth0 -j SNAT 10.66.0.0/24
iptables -t nat -L POSTROUTING --line-number
Note que ahora la regla de SNAT está primero que la de MASQUERADE esto quiere decir
que la dirección IP 10.66.0.2 se traducirá a la dirección 192.168.133.X y cuando se cualquier
otro equipo de la red 10.66.0.0/24 se enmascarará con la dirección IP de la interfaz ->
192.168.133.X
PORT FORWARD
Las reglas de SNAT normalmente no especifican un traslado de puertos específico, debido a
que los clientes pueden tener cualquier puerto mayor a 1024, sin embargo cuando se
trabajando con las reglas de DNAT normalmente si se especifica los puertos, debido a que
estas son las utilizadas para publicar servicios de una red inválida. Primero habilitaremos el
servicio de FTP y HTTP hacia la dirección 10.66.0.2
iptables -t nat -A PREROUTING -p tcp --dport 80 -i eth0 -j DNAT --to 10.66.0.2:80
iptables -t nat -A PREROUTING -p tcp --dport 20:21 -i eth0 -j DNAT --to 10.66.0.2
iptables -t nat -L PREROUTING
Las reglas de DNAT se configuran en la cadena de PREROUTING debido a que esta
información debe ser cambiada antes de que se seleccione la ruta del paquete, ya que se
necesita conocer el destino del paquete para poderlo enrutar y esto no se sabe hasta que se
cambie la dirección destino del paquete en la cadena de PREROUTING.
Para probar estos servicios ejecute en el browser (Internet Explorer o Mozilla):
http://192.168.133.1X
ftp://192.168.133.1X
El traslado de las direcciones no es solo entre redes inválidas y redes válidas, es un traslado
de direcciones sin importar que sean públicas o no.
Descargar