Está en la página 1de 17

Prctica Netfilter 2

IPTABLES
Eduardo Bayn Cascajo Seguridad Informtica 16/02/2012

Eduardo Bayn Cascajo

Seguridad Informtica

ndice
Introduccin..................................................................................................................... 2 Descripcin de la red ..................................................................................................... 2 Esquema de la red ..................................................................................................... 3 Comprobacin de la red............................................................................................ 4 Estado de los puertos.................................................................................................... 6 Prctica Proteger la propia mquina ................................................................... 10 Accept por defecto ................................................................................................... 10 Comprobacin que las normas estn correctamente aplicadas .................. 12 Drop por defecto....................................................................................................... 14

Pgina 1 de 16

Eduardo Bayn Cascajo

Seguridad Informtica

Introduccin
Una vez hemos visto ya unas nociones bsicas sobre Firewall en concreto sobre Netfilter y sus IPTABLES en esta segunda prctica seguiremos con Netfilter (IPTABLES) los puntos 3.1 y 3.2 de este enlace que son una prctica parecida a la anterior, pero que cambia un poco el esquema.

Descripcin de la red
Mi red estar basada en tres equipos: Una mquina virtual con Ubuntu 11.04 instalado que har de Firewall en la red, y por decirlo de algn modo ser el enroutador de sta. Tendr dos tarjetas de red instaladas, con las siguientes direcciones estticas:

Cada una de ellas ser la puerta de enlace de los hosts que irn unidos a este equipo.

Pgina 2 de 16

Eduardo Bayn Cascajo

Seguridad Informtica

Dos mquinas con una distribucin ligera de Linux DSL (Damn Small Linux) que ser los equipos host unidos al anterior y a los que filtraremos el trfico de la red. 1. El primero de ellos, HOST1-LAN tendr la siguiente configuracin de red:

2. El segundo, HOST2-LAN tendr la siguiente:

Tenemos que asegurarnos que en ambos equipos la puerta de enlace es la IP del equipo que hace de firewall, es decir en el primero de ellos la puerta de enlace ser la 192.168.0.20 y en el segundo la 192.168.1.20.

Esquema de la red
Este podra ser un esquema aproximado de mi red, donde se pueden ver los elementos anteriormente descritos de una manera grfica:

Pgina 3 de 16

Eduardo Bayn Cascajo

Seguridad Informtica

Comprobacin de la red
Antes de empezar las prcticas y de aplicar ninguna norma, debemos comprobar que nuestra red es visible toda ella entre s, que todas las mquinas se ven. Para ello, dado que nuestro equipo Ubuntu no es un firewall como tal, tendremos que especificar la siguiente instruccin para que enrute los paquetes que le llegan y se ven entre si las mquinas:

En si, lo que tenemos que hacer es cambiar el contenido del fichero ip_forward por 1 (antes era un 0). De este modo se el equipo que hace de firewall enroutar de forma correcta nuestros paquetes. Decir, que como se ve en la imagen, esta operacin solo la podremos hacer como superusuario (root). Ahora comprobamos que toda la red es visible entre si. Primero del equipo firewall a ambos hosts: Del Firewall a HOST1-LAN:

Del Firewall a HOST2-LAN:

Pgina 4 de 16

Eduardo Bayn Cascajo

Seguridad Informtica

Ahora desde el equipo HOST1-LAN Al equipo Firewall

Al equipo HOST2-LAN

Ahora desde el equipo HOST2-LAN Al equipo Firewall

Al equipo HOST1-LAN

De este modo, hemos comprobado que nuestra red es visible entre si desde todos sus puntos.

Pgina 5 de 16

Eduardo Bayn Cascajo

Seguridad Informtica

Estado de los puertos


Este ser el ltimo paso que debemos comprobar antes de comenzar con nuestras prcticas de Netfiler IPTABLES. Lo que vamos hacer es comprobar el estado actual de los puertos en nuestro equipo Firewall para luego poder aplicar las instrucciones pertinentes. Para ello usaremos diferentes opciones: El comando netstat que nos mostrar los puertos en escucha de nuestra mquina. La aplicacin NMAP que instalar en el equipo Firewall para que nos muestre los puertos abiertos y algn tipo de informacin adicional. El servicio en lnea Shields up que se trata de un sitio web que nos escanear los puertos de una mquina desde la que nos conectemos.

Dado que mi mquina virtual con Ubuntu est limpia y sin ningn servicio instalado, lo que har ser instalar el servidor web Apache, el servidor de bases de datos MySQL y el servicio de transferencia de ficheros FTP, de modo que cuando luego realicemos las diferentes acciones de filtrado lo hagamos sobre cualquiera de estos servicios. Por lo que, instalo Apache en mi equipo:

Del mismo modo tambin instalo MySQL: No debemos olvidar especificar durante la instalacin la contrasea de root para MySQL, aunque esto solo es para realizar las prcticas, en el futuro puede servirnos. Y el servicio FTP:

Realizadas estas tres instalaciones podemos comprobar el estado de los puertos antes de comenzar con las prcticas de Netfilter IPTABLES

Pgina 6 de 16

Eduardo Bayn Cascajo

Seguridad Informtica

Comprobamos el estado de los puertos con el comando netstat seguido de las opciones an que nos mostrarn todos los que haya y los filtraremos con |more para que podamos ver los primeros:

Podemos observar, que los servicios que acabamos de instalar estn activos en sus puertos MySQL (puerto 3306), FTP (puerto 21) y Apache (puerto 80).

Ahora vamos a realizar lo mismo con NMAP, primero lo he instalado mediante la instruccin y luego he especificado las opciones T A v seguido de la interface localhost:

De este modo vemos, parte, la siguiente informacin:

Pgina 7 de 16

Eduardo Bayn Cascajo

Seguridad Informtica

Y como informacin adicional los puertos abiertos a que servicio corresponden:

Por ltimo vamos a probar con la herramienta online que nos proporciona Shields up, por lo que iremos a su sitio web https://www.grc.com/x/ne.dll?bh0bkyd2 desde nuestro equipo que realizar las veces de firewall para que detecte de l los puertos en escucha.

Pulsamos sobre Proceed para comenzar: Y seleccionamos All service ports para elegir todos los puertos activos:

Pgina 8 de 16

Eduardo Bayn Cascajo

Seguridad Informtica

Pero el problema de esta herramienta es que lo que hace es comprobar el estado de los puertos del punto de acceso con el que vamos a internet y claro en este caso el firewall no lo es y lo que hace es rastrear mi router de casa.

Pgina 9 de 16

Eduardo Bayn Cascajo

Seguridad Informtica

Prctica Proteger la propia mquina


Vamos a ver a continuacin dos scripts creado para que Netfilter-IPTABLES trabaje con el tanto con la orden por defecto ACCEPT como DROP.

Accept por defecto


Ahora que tenemos las mquinas preparadas y sobre todo el Firewall Linux vamos a crear las normas. Lo que haremos ser crear un script de shell en donde se van aplicando las reglas. Los script de iptables que proteja nuestra mquina del trfico TCP malicioso puede ser de este tipo:

Pgina 10 de 16

Eduardo Bayn Cascajo

Seguridad Informtica

Una vez creado le damos permisos de ejecucin sobre l

y lo ejecutamos, de modo que veremos lo siguiente, ya que hemos especificado esos mensajes en el script:

Tal y como indicamos en el script revisamos que las reglas estn tal y como queremos con el comando iptables L n:

Podemos ver como las reglas se han aplicado sobre la tabla de politicas por defecto ACCEPT.

Pgina 11 de 16

Eduardo Bayn Cascajo

Seguridad Informtica

Comprobacin que las normas estn correctamente aplicadas Para ello, vamos a intentar acceder desde el equipo HOST1-LAN sobre el puerto 20 o 21 que solo puede acceder el equipo HOST2-LAN. Intentamos acceder desde HOST1-LAN al ftp del equipo Firewall y efectivamente vemos que no podemos:

Del mismo modo debemos probar que desde el equipo HOST2-LAN si lo hay y tiene acceso a ese puerto correctamente:

Pgina 12 de 16

Eduardo Bayn Cascajo

Seguridad Informtica

Voy a realizar la misma prueba pero sobre el puerto del servicio MySQL (3306), en el que solo el equipo HOST1-LAN puede tener acceso segn las reglas especificadas y el equipo HOST2-LAN no tiene. Vemos como el equipo HOST2-LAN no tiene acceso sobre el puerto 3306:

El problema que tengo, es que desde HOST1-LAN debera acceder, y no lo hacer, exactamente no se por que, he revisado las normas y estn bien aplicadas. De la misma manera, podemos comprobar con un escaneo con NMAP el estado de nuestro Firewall, en concreto veremos el estado de los puertos y de que forma han cambiado respecto a antes de aplicar los filtros:

Vemos que solo se tiene acceso total sobre los puertos 80 y 53 y que el resto est filtrados correctamente.

Pgina 13 de 16

Eduardo Bayn Cascajo

Seguridad Informtica

Drop por defecto


A continuacin vamos a aplicar unas normas parecidas pero con la opcin DROP por defecto para proteger la maquina correctamente y por ejemplo debemos permitir que la propia mquina sea capaz de salir a internet Creamos el fichero donde generaremos el script y le damos permisos de ejecucin:

A continuacin vemos el posible script que realizara esta accin:

Pgina 14 de 16

Eduardo Bayn Cascajo

Seguridad Informtica

Por lo que ejecutamos el script:

Comprobamos el estado de las normas aplicadas tras ejecutar el script:

Y podemos comprobar, por ejemplo, que ahora ninguno de los dos HOSTS que tenemos en nuestra subred tienen acceso sobre el puerto 21 del FTP:

Pgina 15 de 16

Eduardo Bayn Cascajo

Seguridad Informtica

De hecho, si pasamos de nuevo nmap sobre la mquina que trabaja como Firewall vemos que solo tenemos activo el puerto 80, el resto no aparecen ya que con la poltica por defecto DROP estn cerrados todos salvo los especificados:

Pgina 16 de 16

También podría gustarte