Practica de Firewall Con Iptables Nat Pat

download Practica de Firewall Con Iptables Nat Pat

of 15

Transcript of Practica de Firewall Con Iptables Nat Pat

Gua de NAT + FW Utilizacin de Linux Nivel: Avanzado

Objetivos:

-

Aprender a utilizar el comando iptables como modificador de paquetes en ambientes Linux

-

Conocer las utilidades de iptables en cuanto a adicin y eliminacin de reglas Identificar opciones que les permitan establecer las polticas de seguridad en sus empresas

-

Configurar una poltica de un firewall con base en las necesidades de conexin

Requerimientos

W2K3 Server (REAL) Acrobat Reader Mquina virtual de Linux (Fedora 7) o (Ubuntu) Vmware Client

Convenciones Consejo Informacin Advertencia Tarea Extrema precaucin Ejecucin en una Terminal de Linux o Windows Metodologa

Durante el desarrollo de la gua primero se indicar lo que se necesita hacer y despus como se har, de esta manera el estudiante est en la libertad de hacer la gua basado en el que, siempre y cuando conozca como lo va a hacer

1 Carlos Andrey Montoya

Pasos Previos

La mquina real con W2K3 server debe tener instalado el IIS WEB y FTP ver anexo: instalacin de IIS

Descargue el putty de ftp://ftp.icesi.edu.co/cmontoya/tools/putyy.zip Para descargar un archivo desde el Internet Explorer de W2K3 server, primero debe agregar el sitio como un sitio de confianza, para ello trate de descargarlo y haga clic en botn Add agregue el sitio y trate de descargarlo de nuevo.

La mquina virtual de Linux debe tener dos tarjetas de red antes de arrancar: Ver anexo: adicin de tarjetas de red en VMWare

Asegrese de iniciar la mquina virtual de Linux Fedora 7 o Ubuntu Inicie con el usuarios root, password Password1 Pruebe el servicio de Secure Shell en Linux Pruebe el Servicio de DNS en Linux (Asegrese de que el servicio est corriendo)

2 Carlos Andrey Montoya

Esquema de laboratorio:

Configuracin de la Red

Configuracin de W2K3 Server 1. Configure las direcciones ip eth0 a. b. c. Dir IP: 192.168.2X1.2/24 DNS: 192.168.100.23 Default Gateway: 192.168.2X.1

Configuracin de Linux 1. Configure las direcciones ip eth0 a. Dir IP: 192.168.130.11X/24 b. DNS: 192.168.100.23 c. Default Gateway: 192.168.130.1

2.

Configure las direcciones ip eth1 a. Dir IP: 192.168.2X.1/24 b. DNS: 192.168.100.23 c. Default Gateway: NINGUNO

1

X se refiere al nmero de equipo que le corresponde (verifquelo sobre el monitor)

3 Carlos Andrey Montoya

Si est en Fedora 7, asegrese de que cada interfaz tenga su propia direccin MAC Si las descripciones de las Interfaces (eth0/eth1) no le coinciden exactamente (eth1/eth2) no es problema simplemente identifquelas y tenga en cuenta cual le corresponde para la resolucin de la gua.

/24 se refiere a la cantidad de bits que se deben de poner en uno para la mscara, por ejemplo /24 tendra una mscara 11111111.11111111.11111111.0 si cuenta el nmero de 1s le dara 24 255.255.255.0. es una manera rpida de especificar la mscara de subred. /23 /16 255.255.0.0 255.255.254.0,

En la configuracin de eth1 no se configura Default Gateway debido a que a ese lado de la red no existen otras redes haca donde se pueda enrutar paquetes, mientras que en la eth0 si se debe configurar Default Gateway ya que la informacin se puede enrutar hacia las redes Icesi, Internet.

La direccin MAC (Media Access Control address) es un identificador hexadecimal de 48 bits que se corresponde de forma nica con una tarjeta o interfaz de red2

Abra la ventana Network Configuration haciendo clic en System

Administration

Network

Antes de configurar la direccin ip es necesario verificar que la direccin MAC Asignada a la tarjeta sea correcta

Cuando una mquina virtual cambia su identificador, su direccin MAC tambin cambia; sin embargo, el sistema operativo no se da cuenta de esto y sus archivos de configuracin siguen siendo iguales, incluyendo los archivos donde se referencia la direccin MAC de la tarjeta de red.2

Tomado de Wikipedia

4 Carlos Andrey Montoya

Para verificar que los archivos de configuracin tienen la direccin MAC correcta, entraremos a la ventana de Network Configuration En el tab Devices, seleccionaremos la interfaz de red eth0 y haremos clic en edit, en el tab de Hardware Device se encuentra la direccin MAC que tienen registrada los archivos de configuracin. Copie la direccin MAC haga clic en el botn Probe y compare las dos direcciones

Las interfaces en Linux tienen una referencia ms un identificador de cantidad. Eth# es el nombre ms comn a la tarjetas de red, sin embargo pueden existir otros nombres, dependiendo del sistema operativo y el tipo de interfaz de red. Por ejemplo: hme0, bge0

Un equipo no debe tener dos default gateway configurados, debido a que el sistema operativo no sabra por donde responder las solicitudes que le hagan y se podran tener resultados inesperados en cuanto a las comunicaciones de red se refiere

Antes de empezar con la configuracin de las reglas pruebe, haga una lista de chequeo:

Desde Windows No se preocupe si nono le funcionan algunas cosas, esto se debe a que hasta el momento no se han creado las reglas de NAT Accesar las pginas de la Universidad Accesar pginas de Internet Resolver Nombres de Internet Accesar las pginas Internas de sus compaeros 192.168.130.11Y3.lab.net Accesar el servidor Linux por SSH Para accesar Linux a travs de ssh, descomprima el putty y ejecute putty.exe (haga doble clic). En el campo de IP Address escriba la direccin IP del servidor Linux 192.168.2X.1. Ubuntu: Fedora 7: usuario:usuario usuario:root Password:Password1. Password:Password1.

El servicio de ssh permite hacer gestin remota a travs de una terminal a un servidor con linux de una forma segura.

Desde Linux Accesar las pginas de la Universidad Accesar pginas de Internet Resolver Nombres de Internet

3

Y se refieres a los nmeros de equipo de sus compaeros.

5 Carlos Andrey Montoya

Accesar las pginas Internas de sus compaeros 192.168.130.11Y

Lo primero que haremos ser permitir que el equipo con Windows 2K3 pueda salir a las redes de la Universidad e Internet.

En este momento el equipo con W2K3 Server no puede navegar en Internet porque la red 192.168.2X.0 no est publicada en la Red de la Universidad y por esto ninguno de sus enrutadores podr enrutarla hacia Internet. Por esta razn debemos hacer NAT hacia la red del laboratorio 192.168.130.0/24 a travs del equipo con Linux. Para configurar el traslado de direcciones en el equipo con Linux4 trabajaremos con iptables5, asegrese de estar como el usuario root en las terminales.

iptables -L permite listar las reglas actuales que se tienen en las cadenas INPUT, OUTPUT y FORWARD y el Default Disposition de cada una Default Disposition se refiere a la accin predeterminada que debe cumplir el firewall cuando no encuentre una regla que coincida con el paquete procesado iptables -L

iptables -F permite limpiar las reglas que se encuentran en todas las cadenas de la tabla FILTER, estas cadenas son: INPUT, OUTPUT y FORWARD. Solo se limpian las reglas no se afecta el Default Disposition. iptables -F

Con los siguientes comandos se est establecer el Default Disposition para las cadenas INPUT, OUTPUT y FORWARD a DROP, lo que va a obligar a que se descarten todos los paquetes que lleguen hacia el equipo excepto los que explcitamente permitamos, que es lo que haremos a continuacin. iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP La opcin -P se utiliza para establecer la poltica predeterminada para una cadena DROP, ACCEPT Pruebe si puede hacer SSH hacia el servidor Linux desde Windows y desde Linux

4

Las siguientes instrucciones no dependen del sistema operativo, Fedora 7 o Ubuntu, ya que son propias de iptables 5 Para mayor informacin sobre iptables visite http://www.netfilter.org/

6 Carlos Andrey Montoya

Ahora permitiremos que no tenga restricciones a travs de las interfaces de loopback iptables -A INPUT -i lo -j ACCEPT iptables -A OUTPUT -o lo -j ACCEPT la opcin -A es para adicionar al final de una cadena la regla la opcin -i y -o especifican la interfaz de entrada y salida respectivamente la opcin -j especifica una accin en este caso como estamos permitiendo los paquetes a travs de la interfaz de loopback (lo) es ACCEPT como no se especific ningn protocolo y por ende ningn puerto quiere decir que se est permitiendo todo entre las interfaces de loopback.

Ahora le permitiremos que el equipo con W2K3 pueda hacer SSH al equipo con Linux iptables -A INPUT -p tcp -i eth1 -d 192.168.2X.1 -s 192.168.2X.0/24 --sport 1024:65535 --dport 22 -j ACCEPT iptables -A OUTPUT -p tcp -o eth1 -s 192.168.2X.1 -d 192.168.2X.0/24 --dport 1024:65535 -sport 22 -j ACCEPT la opcin -p especifica el protocolo las opciones -s y -d especifican la direccin fuente y destino respectivamente las opciones --sport y --dport especifican los puertos fuente y destino el puerto 22 es el que se utiliza para el servicio de ssh y los puertos desde el 1024 hasta el 65535 son los utilizados por los clientes cuando se quieren comunicar con cualquier servicio, a menos que se configure en un caso particular lo contrario. En este momento ya puede volver hacer ssh hacia el servidor de Linux desde Windows Las reglas van de acuerdo a las cadenas, es fundamental que se respete las opciones segn la cadena ya que cuando es la cadena de INPUT es porque el paquete le va a llegar al equipo con Linux y cuando se refiere a la cadena de OUTPUT es porque el paquete sale desde el equipo con Linux

Ahora crearemos las reglas que nos permitirn utilizar el servicio dns iptables -A INPUT -p udp --sport 1024:65535 --dport 53 -j ACCEPT iptables -A OUTPUT -p udp --dport 1024:65535 --sport 53 -j ACCEPT Si tiene bien configurado el servicio dns pruebe resolver un nombre de dominio por el que l mismo responda (por ejemplo lab#.com) y pruebe resolver el nombre www.cnn.com para probar la resolucin de nombres utilice en windows: nslookup NOMBRE 192.168.2X.1 El comando anterior le permite resolver el nombre NOMBRE preguntndole al servidor dns 192.168.2X.1 iptables -A INPUT -p udp --dport 1024:65535 --sport 53 -j ACCEPT iptables -A OUTPUT -p udp --sport 1024:65535 --dport 53 -j ACCEPT

7 Carlos Andrey Montoya

Note que las cuatro reglas son diferentes, las dos primeras son para permitir que los clientes dns puedan preguntarle al servidor dns (Linux) y las dos ltimas son para que el servidor dns (Linux) le pueda preguntar a otros servidores dns sobre los nombres que l no conoce. Por esta razn no le resolvi el nombre www.cnn.com. Despus del comando anterior ya se lo debe resolver. iptables -A FORWARD -s 192.168.2X.0/24 -d 192.168.130.111 -p udp --sport 1024:65535 --dport 53 -j ACCEPT iptables -A FORWARD -d 192.168.2X.0/24 -s 192.168.130.111 -p udp --dport 1024:65535 --sport 53 -j ACCEPT Este ser dns comn para el laboratorio, con estas reglas tendremos acceso a l posteriormente La cadena FORWARD se refiere a los paquetes que no van para el equipo Linux sino que les tiene que hacer reenvo o enrutar. Note que siempre se necesitan dos reglas una para hacer las solicitudes y otra para las respuestas.

Hasta este momento no necesitamos enrutar ningn paquete entre W2K3 y otros equipos debido a que todo lo estbamos trabajando entre dos equipos que pertenecan a la misma red. Sin embargo no es posible enrutar los paquetes entre el W2K3 y el Linux haca las redes de la Universidad: ya que, como se haba mencionado, los enrutadores de la Universidad no conocen la red 192.168.2X.0/24. Por esta razn haremos NAT con el equipo de Linux haca la red 192.168.130.0/24, con esta subred si funciona debido a que es conocida por los enrutadores de la red de la Universidad.

Antes de configurar las reglas para traslado de paquetes con el iptables debemos de garantizar que el equipo con Linux permita enrutar paquetes (reenvo de paquetes o forward de paquetes)

Para activar el envo de paquetes solo se debe poner un 1 en un archivo lo que activar el bit de reenvo de paquetes Antes de activar el bit haga un ping -t 192.168.130.11X desde el equipo con W2K3 el resto de comandos los ejecuta en Linux ping -t 192.168.130.11X echo "1" > /proc/sys/net/ipv4/ip_forward iptables -t filter -A INPUT -p icmp -j ACCEPT iptables -t filter -A OUTPUT -p icmp -j ACCEPT verifique el ping en el equipo con W2K3 note que en esta regla se especific la opcin -t que permite indicar sobre que tabla se va a trabajar, si no se especifica la opcin -t se refiere a la tabla de filter por eso en las otras reglas se obvi.

8 Carlos Andrey Montoya

antes de empezar a trabar con las reglas de NAT debemos asegurarnos que no tenga ninguna regla por lo que limpiaremos la tabla y colocaremos el Default Disposition de FORWARD en ACCEPT, esto con el fin de validar, por ahora, solo las reglas de NAT. iptables -t nat -F iptables -P FORWARD ACCEPT la opcin -t nat especifica que el Flush (vaciado) se har solo sobre la tabla nat

ahora configuraremos la regla que nos permitir enmascarar la direccin privada 192.168.2X.0/24 hacia una vlida para la Universidad 192.168.130.11X y definiremos dos variables que nos permitirn ejecutar reglas relacionadas con las interfaces sin preocuparse por la eth0, eth1, eth2 Antes de ejecutar los comandos de las variables asegrese de tener muy claro cual es su interfaz Ethernet (eth) interna (LAN) y externa (acceso hacia Internet) ETH_INT=eth1 ETH_EXT=eth0 iptables -t nat -A POSTROUTING -s 192.168.2X.0/24 -o $ETH_EXT -j MASQUERADE en la tabla de nat se realizarn todos los cambios en paquetes por ejemplo direccin ip fuente, en la cadena de POSTROUTING entrarn todos los paquetes despus de haber sido enrutados, pero solo se activarn las reglas que cumplan con las condiciones, para este caso todos los paquetes que tengan como direccin fuente (-s) una direccin perteneciente a la red 1923.168.2X.0/24 la opcin -j MASQUERADE especifica la opcin en mascarar la direccin fuente del paquete con una de las direcciones de la interfaz para este caso 192.168.130.11X Al utilizar variables en la definicin de las reglas de la poltica permite tener independencia del HW, por ejemplo si se modifican las interfaces en algn momento y se dejan de llamar eth0 y eth1, solo habra que cambiar las variables. En este momento el equipo con W2K3 puede navegar por Internet sin ningn problema.

Ahora empezaremos a restringir la navegacin de los clientes, para ello primero debemos cambiar el Default Disposition de la cadena FORWARD en la tabla filter a DROP iptables -P FORWARD DROP pruebe navegar de nuevo iptables -A FORWARD -s 192.168.2X.0/24 -p tcp --sport 1024:65535 --dport 80 -o $ETH_EXT j ACCEPT iptables -A FORWARD -d 192.168.2X.0/24 -p tcp --dport 1024:65535 --sport 80 -i $ETH_EXT -j ACCEPT pruebe navegar de nuevo en este momento se permiti el trnsito de paquetes por el puerto 80 si hay una pgina que necesita un puerto diferente para navegar no se podr visualizar hasta que se le permita

9 Carlos Andrey Montoya

si quisiramos negar el acceso a una pgina en particular, necesitaramos una regla que pueda negar el acceso a esa pgina antes de que se le permita al resto. Como ya definimos la regla que se permite a cualquier destino por el puerto 80 necesitaramos vaciar las reglas de la cadena FORWARD y poner nuestras nuevas reglas con las nuevas especificaciones. Ahora negaremos el acceso a la pgina de donatello.icesi.edu.co antes de permitir el acceso a todos por el puerto 80. iptables -F FORWARD iptables -A FORWARD -d 200.3.192.124 -j DROP iptables -A FORWARD -s 192.168.2X.0/24 -p tcp --sport 1024:65535 --dport 80 -o $ETH_EXT j ACCEPT iptables -A FORWARD -d 192.168.2X.0/24 -p tcp --dport 1024:65535 --sport 80 -i $ETH_EXT -j ACCEPT trate de navegar por pginas en Internet, incluyendo la pgina de Donatello ahora eliminaremos esa regla solamente, pero primero necesitaremos saber cul es el nmero de esa regla, para esto ejecute: iptables -L FORWARD --line-number Verifique el nmero de la regla donde hace DROP hacia la 200.3.192.124 En la siguiente regla debe colocar el nmero que le corresponde a la regla que desea borrar, sin incluir el smbolo # iptables -D FORWARD # Trate de ver la pgina de Donatello

Ahora negaremos el acceso a una pgina sin tener que hacer el flush de las reglas, bsicamente no aadiremos uan regla sino que la insertaremos en la posicin que necesitamos. Antes de ejecutar las siguientes reglas, pruebe entrar a www.univalle.edu.co nslookup www.univalle.edu.co tenga en cuenta la direccin ip que resuelve el dns para meterla en la regla. iptables -I FORWARD 1 -d 200.26.133.5 -j DROP pruebe navegar incluyendo www.univalle.edu.co

Ahora crearemos las reglas que nos permitirn que desde afuera de la red puedan tener acceso a servicios internos, esto se llama hacer NAT reverso y consiste en trasladar las direcciones destino, de esta manera se pueden prestar servicios en Internet con equipos que tienen direcciones IP invlidas.

Los servicios que prestaremos sern WWW y FTP, los cuales fueron previamente instalados En esta ocacin no colocaremos las reglas de las respuestas de los paquetes ya que utilizaremos una regla que nos permitir identificar los paquetes que ya tienen establecidas las conexiones Iniciaremos con web

10 Carlos Andrey Montoya

iptables -t nat -A PREROUTING -d 192.168.130.11X -p tcp --dport 80 -j DNAT --to 192.168.2X.2:80 iptables -A FORWARD -i $ETH_EXT -d 192.168.2X.2 -p tcp --sport 1024:65535 --dport 80 -j ACCEPT iptables -A FORWARD -p tcp -m state --state RELATED,ESTABLISHED -o $ETH_EXT -j ACCEPT A la cadena de PREROUTING llegan todos los paquetes antes de ser enrutados y se ejecutarn las acciones para los que cumplan las condiciones. Por ejemplo en el primero de los tres comandos anteriores la condicin es que sea dirigido a 192.168.130.11X por el puerto 80, si el paquete cumple esa condicin se trasladar la direccin destino a 192.168.2X.2 por el puerto 80 En la tercera regla se va verificando el estado de los paquetes para ver si ya tiene una conexin establecida o si la piensa iniciar, de esta manera podremos seguir habilitando puertos con una sola regla, en vez de las dos que venamos utilizando hasta el momento. Ahora habilitaremos el servicio de FTP Tenga en cuenta que debe deshabilitar el modo ftp passivo en el internet explorer para que le pueda funcionar Herramientas opciones de Internet Opciones avanzadas Usar FTP Pasivo

iptables -t nat -A PREROUTING -d 192.168.130.11X -p tcp --dport 20:21 -j DNAT --to 192.168.2X.2 iptables -A FORWARD -d 192.168.2X.2 -p tcp --dport 20:21 --sport 1024:65535 -i $ETH_EXT -j ACCEPT note que esta ocasin solo se precis de una regla en la tabla de filter para activar el servicio de FTP en el firewall pruebe entrar al servicio ftp y web de sus compaeros utilizando el nombre equipoY.lab.net

11 Carlos Andrey Montoya

Anexo 1 instalacin de IIS

Clic

12 Carlos Andrey Montoya

Clic

Clic

13 Carlos Andrey Montoya

Anexo: adicin de tarjetas de red en VMWare

Clic

Clic

14 Carlos Andrey Montoya

Clic

Clic

15 Carlos Andrey Montoya