Anda di halaman 1dari 12

IPTABLES UBUNTUS10.

10
Sistemas Operativos Corporativos
Juan Sebastin Vega Len Francisco Pealoza Ariel Jimnez Miguel Caldern Tcnico conectividad y redes - seccin 1 Profesor: Cesar Torres Guerrero

ndice

Pgina 2

ndice

Pgina 3

introduccin

Pgina 4

historia

Pgina 5-7

lista de comandos

Pgina 8

planteamiento del problema

Pgina 9-11

solucin al problema

Pgina 12

conclusin

Introduccin Un cortafuego en una definicin simple se refiere a la existencia de un ego dispositivo de seguridad, software o hardware que funciona denegando y permitiendo datos desde una red a otra o localmente. ndo Un ejemplo bsico visual se la siguiente. sera

IPTABLES es una buena e eleccin al momento de utilizar el sistema operativo Linux ya que nos genera un menor costo de implementacin al encontrarse aadido junto al kernel del sistema Linux. Solo necesitaremos los olo conocimientos necesario para llevarlo a la prctica y poder aplicar de forma necesarios eficaz su funcionalidad como cortafuego. Tendremos que entender, por ejemplo la definicin de sus estructuras principales y utilizar comandos para llevar cabo una accin en especfica. Por tanto en el desarrollo quedara demostrado lo esencial que puede ser esta herramienta para un administrador de red a la hora de querer denegar ciertas tareas innecesarias o utilizar bien el uso del acceso a la informacin bajo so criterios de productividad y de seguridad.

Historia iptables IPTABLES Es un sistema de firewall vinculado al kernel de Linux que se ha extendido enormemente a partir del kernel 2.4 de dicho sistema, IPTABLES nace del proyecto netfilter en 1998 de la mano de Paul "Rusty" Rusell que tambin es autor del proyecto Ipchains, nace como un proyecto en conjunto con varias personas participando en l, IPTABLES esta licenciado bajo la licencia GPL (Licencia General Publica). El nombre ipfilter frecuentemente se interpreta de forma errnea para referirse a toda la infraestructura ofrecida por el proyecto Netfilter dado que mucha gente los asocia a un nico programa dado que netfilter ofrece otros sub-sistemas independientes al Iptables como el sistema de seguimiento de conexiones(Connection Tracking System) que permite encolar paquetes para que sean desde el espacio usuario. Iptables es un software que podemos encontrar prcticamente en todas las distribuciones de Linux. Iptables es un servicio con el cual podemos implementar un firewall en el servidor utilizado, para gestionar las conexiones el cual remplazo a Ipchains que fue utilizado en Linux 2.2.x e ipfwadm Linux 2.0.x, fue incorporado en marzo del 2000 este al Kernel 2.4 del sistema Linux. Iptables no es un software que podamos descargar de internet dado que viene integrado al kernel LINUX. Para poder iniciarlo debemos confirmar que nuestra distribucin Linux trae incorporado este servicio, en caso de no ser as se debe instalar con la lnea apt-get install iptables Luego de confirmar esto podernos iniciar el servicio creando un script que se ejecutara al iniciar la maquina con nuestras sentencias especificas, dependiendo de nuestras necesidades. Iptables es la herramienta donde el usuario puede definir polticas de filtrado del trfico que circula por la red y tambin realizar traducciones de NAT. Es una herramienta muy compleja y completamente configurable dado a la cantidad de comando que esta posee.

Caractersticas principales 1. 2. 3. 4. Filtrado de paquetes: Por protocolo, puertos, direccin IP, Mac. Infrastructura flexible y extendible. Network address Translation (NAT). Capacidad de agregar nuevas funcionalidades mediante parches.

Lista de comandos para iptables:

Cadenas de tablas INPUT Cadena de entrada, comando utilizado para los paquetes entrantes, cuyo destino es el propio cortafuego. OUTPUT Cadena de salida, comando utilizado para filtrar paquetes generados en el propio host con destinos externos. FORWARD Cadena de redireccin, comando que se emplea para decidir qu hacer con los paquetes que llegan al cortafuegos y tienen como destino otro host, as podemos decidir si encaminarlos o no. PREROUTING Cadena de pre-ruteo, este comando se utiliza cuando se quiere alterar los paquetes tan pronto llegan al cortafuegos. POSTROUTING Cadena de post-ruteo, comando que sirve para alterar los paquetes que acaban de dejar el cortafuego.

Destinos De Reglas ACCEPT (aceptar) Comando que sirve para aceptar paquetes segn el tipo de cadena a utilizar (entrada, salida, forward). DROP (denegar) Comando utilizado para descartar un paquete sin ningn otro tipo de procesamiento. QUEUE (encolar) Comando que hace que un paquete sea enviado a una cola en el espacio del usuario. Es muy similar al drop. RETURN (retorno) Utilizado para que un paquete deje de circular por la cadena en cuya regla ejecuto el destino return. LOG (bitcora) Comando que puede utilizarse en cualquier cadena o tabla, y muchas veces se usa para debuggear (anlisis de fallos). DNAT Es el encargado de que la direccin (y opcionalmente el puerto) de destino del paquete sean reescritos para nat. Mediante la opcin --todestination debe indicarse el destino a usar. Esto es vlido solamente en las cadenas de salida y pre ruteo dentro de la tabla de nat. SNAT Similar dnat pero los paquetes son reescritos en el origen para nat mediante la opcin --to-source debe indicarse el origen a usar. Esto es vlido solamente en la cadena de post-ruteo.

Opciones comunes -t Aplica un comando a una tabla especificada. Si esta opcin se omite, el comando se aplica a la tabla filter (filtro) por defecto. -v Comando que Produce una salida con detalles.

-n Produce una salida numrica (es decir, nmeros de puerto en lugar de nombres de servicio y direcciones IP en lugar de nombres de dominio). --line-numbers Cuando se listan reglas, agrega nmeros de lnea al comienzo de cada regla, correspondientes a la posicin de esa regla en su cadena.

Especificaciones de las reglas -s Comando que indica un dominio o IP (rango de IPs) de origen sobre el que se evala la condicin de la regla. -d Sirve para indicar un dominio o IP (rango de IPs) de destino el que se evala la condicin de la regla. -i Indica la interfaz de entrada sobre la cual se hace la condicin de la regla. -o Indica la interfaz de salida sobre la cual se hace la condicin de la regla.

-p Especifica un protocolo algunos nombres vlidos de protocolos son; tcp, udp, icmp, o su respectivo numero. -j Especifica el destino de una regla.(DROP, ACCEPT, etc).

-s Compara paquetes IP viniendo de la direccin de origen especificada. La direccin de origen puede ser una direccin IP, una direccin IP con un prefijo de red asociado, o un nombre de terminal (hostname). -d Compara paquetes IP a travs de direccin de destino especificada. La direccin de destino puede ser una direccin IP, o un nombre de terminal. --dport Comando que hace referencia a un puerto lgico y o rango de puertos. Trabaja con la instruccin -p analizando puertos TCP o UDP. -m mac --mac-source Comando que hace referencia a una direccin MAC en especfico.

Comandos para aadir y manipular cadenas. -N -X -F -P -L Comando que se usa para crear una nueva cadena. Sirve para eliminar una cadena que est vaca. Elimina todas las reglas de una cadena. Comando utilizado para llamar a un protocolo. muestra las reglas o polticas de una cadena.

Comandos para poder manejar las reglas de una cadena -A -I -R -D Inserta al final de una cadena una nueva regla. Inserta al comienzo de una chain una nueva regla. Reemplaza una regla de una cadena Comando que elimina una regla de una cadena.

Palabras claves NEW: Intentando crear una conexin nueva. ESTABLISHED: Parte de una conexin ya existente. RELATED: Relacionada, aunque no realmente parte de una conexin existente. INVALID: No es parte de una conexin existente e incapaz de crear una conexin nueva.

Esquema de sintaxis y aplicacin: Una vez conocidos los comandos necesitamos el esquema para aplicarlos de la forma adecuada y poder armar nuestras sentencias adecuadamente. El esquema para la invocacin de una regla es: iptables [comando manejar las reglas de una cadena] [tabla] especificacin de regla | opciones comunes [destinos de regla] Un pequeo ejemplo para aplicar una sentencia es: iptables -A INPUT -i eth0 -s 200.100.50.1 -p icmp -j DROP. Donde estamos denegando la respuesta a los paquetes icmp (ping) del host 200.100.50.1 que sean entrantes en la interface eth0 de nuestro servidor.

Planteamiento de un problema de seguridad En la actualidad la red donde trabajan mltiples protocolos y servicios, el planteamiento de aplicar seguridad a nuestras maquinas es cada da mucho mayor. Con la creciente demanda de los dispositivos y la necesidad de la conectividad entre ellos se hace de suma necesidad utilizar ciertas herramientas para proteger nuestros bienes de posibles intrusos o mal intencionados usuarios que podran vulnerar nuestras maquinas y acceder a informacin de carcter personal o empresarial. Una muy buena herramienta para controlar el trfico de paquetes a un nivel profesional es iptables. Para demostrar su funcionalidad nos plantearemos un escenario donde un cliente nos pide filtrar ciertas caractersticas que ms adelante detallaremos y solucionaremos eficazmente.

Desarrollo y solucin del problema:

Como ya hemos mencionado, necesitamos desarrollar una solucin eficaz para el complejo de el filtro de contenido en una red, el primer paso es seleccionar entre s escogeremos un software o hardware para solucionar la necesidad planteada. En este caso escogeremos la herramienta IPTABLES montado sobre un sistema operativo UBUNTUS 10.10 para aplicar el filtro deseado. La arquitectura que usaremos es la siguiente:

Como se puede apreciar en la imagen la arquitectura de red contiene dos maquinas clientes y un servidor conectados mediante un switch, sobre este ltimo dispositivo cabe mencionar que estn todos los host conectados a la misma VLAN por tanto son transparente entre cada uno de ellos. El servidor entrega servicios de WEB y FTP a los clientes y se desea filtrar contenido especfico por motivos de seguridad a estos servicios. Para esta tarea implementaremos IPTABLES donde nuestro cliente nos solicita las siguientes polticas: *Denegar al CLIENTE 1 el servicio FTP. *Denegar al CLIENTE 2 el servicio WEB. *Que ambos CLIENTES no puedan hacer PING al servidor.

Ahora debemos decidir como filtraremos desde nuestro servidor. Para el caso se puede filtrar por direccin IP o por direccin MAC. Como existe la posibilidad que algn usuario cambie la direccin IP de la maquina usaremos ambos parmetros para filtrar para asegurarnos que no exista posibilidad de error. Primero debemos activar IPTABLES sobre nuestro sistema operativo. Para esto crearemos un Script donde detallaremos las reglas necesarias para lo nuestro servidor cumpla lo que se nos ha pedido. En el servidor ingresamos a la terminal y nos logeamos como sper usuario con el comando sudo -s. Ahora vamos a la ruta /etc/init.d y creamos un nuevo documento de texto al cual llamaremos iptables-ubuntus o como deseemos llamarlo, pero se recomienda usar un nombre que haga referencia a que sirve para luego poder encontrarlo con facilidad si deseamos agregar nuevas reglas o editarlo. Dentro el documento ingresaremos el siguiente Script:

#!/bin/bash iptables -F iptables -P INPUT ACCEPT iptables -P OUTPUT ACCEPT iptables -P FORWARD DROP iptables -t filter -A INPUT -s 192.168.100.1 -m mac --mac-source 00:00:00:00:00:01 -p tcp --dport 20 -j DROP iptables -t filter -A INPUT -s 192.168.100.2 -m mac --mac-source 00:00:00:00:00:02 -p tcp --dport 80 -j DROP iptables -t filter -A INPUT -s 192.168.100.1 -m mac --mac-source 00:00:00:00:00:01 -p icmp -j DROP iptables -t filter -A INPUT -s 192.168.100.2 -m mac --mac-source 00:00:00:00:00:02 -p icmp -j DROP

Guardamos el documento en el directorio ya descrito y luego damos permisos de ejecucin a este documento con el comando chmod +x iptables-ubuntus

Ahora ya est listo e servidor para funcionar con nuestras restricciones, solo falta agregarlo a la cola de ejecuciones inicio de nuestro sistema operativo, para esto debemos ejecutar: update-rc.d iptables defaults Debemos reiniciar IPTABLES para aplicar los cambios: /etc/init.d/iptables-ubuntus restart Para confirmar que tenemos nuestro servicio se inicio correctamente debemos ejecutar desde la consola terminal: iptables -L Donde listara todas las reglas de entrada, salida y reenvi de datos. Nos debe mostrar las reglas activas en el INPUT de esta manera:

Ya solo nos queda probar las maquinas CLIENTES, notaremos que ya no nos responder el comando PING al ejecutarlo hacia la IP del servidor desde ninguno de los dos CLIENTES. El CLIENTE 2 no podr navegar por la intranet que proporciona el servidor y el CLIENTE 1 no podr usar el servicio FTP.

Conclusin: Con estas configuraciones aplicadas a nuestro servidor podemos implementar seguridad a nuestra red y as cumplir con los requerimientos que nos plantea nuestros superiores o a modo de prueba para a quien se interese en este tema. Todas las sentencias que deseemos en un futuro agregar o cambiar en nuestro servidor para filtro de contenido, permisos o trafico por NAT desde IPTABLES, debemos agregarlas a nuestro Script que en esta ocasin llamamos iptablesubuntus, en la cola del actual en ejecucin o editndolo a nuestro gusto, siempre y cuando se tenga el conocimiento necesario sobre la sintaxis y la lgica forma de operar que necesitamos que cumpla IPTABLES.