0% encontró este documento útil (0 votos)
159 vistas33 páginas

Iptables Esp

Cargado por

Yael Ghh
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
159 vistas33 páginas

Iptables Esp

Cargado por

Yael Ghh
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Posteado por Pablo Jorge Sanguinetti

iptables en espaol
pon el paquete sobre la mesa

Bellone, Matas matias@[Link] 15 de noviembre de 2006

Indice general
1. Semntica 1 1.1. Historia ................................ 1 1.2. Funcionamientointerno ....................... 2 1.3. Tablas ................................. 2 1.4. Cadenas................................ 3 1.5. Reglas ................................. 4 1.5.1. Destino ............................ 4 1.6. Mdulosextras ............................ 5 1.6.1. Mdulosdetablasycadenas . . . . . . . . . . . . . . . . 6 2. Sintxis 8 2.1. ManejodeCadenas.......................... 8 2.1.1. Crearunanuevacadenas .................. 9 2.1.2. Vercadenasexistentes .................... 9 2.1.3. Eliminarcadenas ....................... 10 2.1.4. Denirlapolticadeunacadena . . . . . . . . . . . . . . 10 2.2. Opcionesmanejadasporlainterfaz . . . . . . . . . . . . . . . . . 10 2.3. Construccindeltros ........................ 11 2.3.1. Destinodelltro ....................... 11 2.3.2. Filtradoporprotocolo .................... 12 2.3.3. Filtradopordireccin .................... 12 2.3.4. Filtradoporinterfaz ..................... 12 2.3.5. Manejodefragmentos .................... 13 2.4. Extensiones .............................. 14 2.4.1. Includasenelsistema .................... 14 2.4.2. Noincludasenelsistema .................. 18 3. Prctica 20 3.1. Problemasdeiptables ........................ 20 3.1.1. Sintxiscomplicada ..................... 20 3.1.2. Guardandolaconguracin . . . . . . . . . . . . . . . . . 21 3.2. Respaldos ............................... 22 3.2.1. Actualizaciones ........................ 22 3.3. Frontends ............................... 23

3.3.1. Firestarter .......................... 23 3.3.2. KNetFilter .......................... 23 3.3.3. FirewallBuilder ....................... 23 3.4. Wrappers ............................... 24 3.4.1. Shorewall ........................... 24 3.4.2. Ferm.............................. 24 3.4.3. gShield ............................ 24 3.5. Otros ................................. 25 3.5.1. AutoFireWall ........................ 25 3.5.2. FloppyFireWall ....................... 25 4. Enlaces 26

Resumen El objetivo de este laboratorio fue investigar acerca de iptables, comprender su funcionamiento y sintxis. Ms all de una simple recopilacin de informacin, es nuestra intencin servir de introduccin tanto terica como prctica a esta potente herramienta.

Captulo 1

Semntica
1.1. Historia
En el ao 1998 el equipo de netfilter decidi tomar el cdigo de ipfwadm e ipchains unicndolo y mejorndolo. Esto no fue slo para consolidar dos aplicaciones que cumplan la misma funcin sino tambin para poder sacar lo mejor de cada una eliminando la necesidad de comprender el funcionamiento (y su sintxis) de dos aplicaciones para poder cubrir todas las necesidades.
1

Por otro lado, era necesario dicha transicin debido a los extensos cambios en el cdigo del kernel pertinente. Dichas aplicaciones tenan serios problemas en sus dependencias con la implementacin de sockets y las funciones de GLibC que se fueron modicando a lo largo de las diferentes ipfwadm se desarroll como una forma sencilla de administracin de las funversiones de las mismas. ciones de rewall ofrecidas por el kernel. Dependa de la aplicacin ipfw que se encargaba de modicar las opciones de los sockets correspondientes. Tena serios problemas para hacer NAT (Network Address Translation) debido a que dependa de los puertos utilizados para hacerlo. Adems, el manejo de UDP era complicado debido a la falta de un socket permanente utilizando funciones especiales para manejarlo y el manejo de TCP no tena en cuenta los estados de las conexiones. Por otro lado, su comportamiento -a pesar de estar divido en mdulos -era demasiado monoltico lo que complicaba el extenderlo. Con la evolucin del kernel hacia su versin 2.2 ciertas funciones de manejo de sockets y las libreras GNU de C estndar (la tan conocida GLibC) fueron modicadas. Dichas modicaciones provocaban que ipfwadm dejara de funcionar; afortunadamente ipchains ya haba visto la luz. Su modularizacin era mucho mejor, mejoraba el manejo de conexiones, puertos y la independencia de otros cambios en el kernel y/o libreras utilizadas. Sin embargo, el manejo de NAT era realizado por una aplicacin separada ipnatctl. Un nivel ms de modularizacin es lo que hizo (y hace) a iptables tan poderoso y verstil. El trabajo del equipo de netfilter fue lo sucientemente bueno como para
1

[Link]

que el cdigo que necesitaban modicar en el kernel para permitir el manejo de paquetes fuese includo dentro del kernel principal por defecto. 2 Anteriormente, se deba tener el cdigo del kernel, agregar el parche a mano y compilar el kernel.

1.2. Funcionamiento interno


Como recin mencionamos, para que iptables funcione, debemos de tener un kernel con las modicaciones hechas por el equipo de netfilter. Estas, sin embargo, fueron includas en el cdigo ocial toma su nombre de un funcionamiento segn tablas. Cada tabla contiene cadenas, nombre heredado de ipchains para determinar a un conjunto de reglas de ltrado. Para poder funcionar, sin embargo, necesita del mdulo de kernel ip_tables y del programa iptables que sirve como interfaz de usuario. Este es el mdulo principal y se encuentra disponible para todas las versiones 2.4 y 2.6 de kernels existentes y puede utilizarse bien compilado monolticamente o bien como si fuese un mdulo que se cargue cuando sea necesario. Se pueden, adems, agregar otros mdulos que expanden la funcionalidad del mismo. Cabe destacar, sin embargo, que las tablas se cargan al iniciar el mdulo pero estn vacas. Se deben de utilizar otros mtodos para hacerlas permanentes.

1.3. Tablas
Por defecto iptables no posee tabla alguna. Dejando al usuario la creacin de las mismas. Sin embargo, debido a que las tareas de ltrado son relativamente estndares, existen mlduos de kernel que trabajan sobre el mdulo ip_tables agregando las tablas ms utilizadas. La tabla ms utilizada es la que proporciona el mdulo: iptable_filter, casualmente la tabla se llama lter

Obviamente, como el sistema fue modularizado pensado tambin en que sea extendible. Sin embargo, el agregado de tablas con signicado directo slo puede realizarse mediante mdulos de kernel. Esto se debe a que deben interactuar directamente con el mdulo principal ip_tables aprovechando los hooks que las modicaciones de netlter introdujeron al kernel. iptable_nat iptable_mangle Cada una de stas agrega una tabla a iptables con el nombre que indica.
2

parche es una modicacin de cdigo guardada en formato especial para distribuir slo las diferencias y reconstruir la versin deseada

1.4. Cadenas
Las cadenas son, como ya mencionamos, simples conjuntos de reglas. Sin embargo, esto es una simplicacin de un concepto un poco ms complicado. Originalmente (en ipchains) el ltrado de paquetes se haca en cadena debido a la forma en la que ste atravesaba el sistema. Se hacan chequeos, controles, ruteo, ltrado, etc. en forma secuencial, como una cadena de produccin -de ah el nombre -.

Sin embargo, este comportamiento fue modicado en iptables para optimizar el ltrado. Cada cadena est asociada a un punto de la ruta que puede tomar un paquete determinado que ya no es lineal. La tabla ms utilizada (lter) posee tres cadenas distintas: INPUT OUTPUT FORWARD Como se mencion anteriormente las tablas agregadas por mdulos contienene ciertas cadenas por defecto. La razn por la que dichas tablas deben ser cargadas como mdulos es que stas cadenas se corresponden con la ruta de un paquete. Esto quiere decir que se utilizan ganchos (hooks) en el 3 kernel para forzar el ltrado por las cadenas correspondientes segn el 4 siguiente grco : Entrada --> Enrutamiento ------> FORWARD ------> Salida --> |^ v| INPUT OUTPUT |^ || +----------> PC Local ------------+ Esto signica que todo paquete atraviesa slo una de las cadenas. El enrutamiento no es ms que decidir si el paquete est dirigido hacia la propia PC o no. En caso de estarlo, pasara por la cadena de INPUT, de lo contrario, por la de FORWARD. Por otro lado, cualquier paquete generado localmente pasar por la cadena OUTPUT. Evidentemente, la modularizacin es mucho ms marcada facilitando la comprensin del sistema. Como si fuese poco, los nombres representativos de cada cadena evitan confusiones o problemas en los ltros por superposicin o contradiccin de reglas. Lo que es ms, el funcionamiento de iptables permite el agregado de nuevas cadenas mediante la interfaz de usuario. Evidentemente, stas no estarn relacionadas con la ruta seguida por el paquete ya que eso 3
4

Estos son provistos por el soporte de netfilter en el kernel Perdn por el ascii-art pero me falta prctica para imgenes en LATEX... y tiempo para hacer las imgenes

se logra interactuando directamente con el mdulo principal (ip_tables). Sin embargo, permite un manejo ms sencillo y modular de los ltros por parte del usuario.

1.5. Reglas
Cada una de las cadenas se compone de ltros, aqu llamados reglas. Estas se componen de una extensin que indica qu suceder con los paquetes regidos por dicha regla y una serie de parmetros (un patrn) que indican las condiciones que debe de cumplir un paquete para obedecer dicha regla. Las cadenas son construidas secuencialmente. Esto quiere decir que las reglas poseen un orden dado por el orden en el que se agregan. Este ser tambin el orden en el que se evaluarn las reglas, determinando una debilidad del sistema en s: no se tiene en cuenta qu regla concuerda ms especcamente con el 5 paquete sino slo la primera que coincide. La razn por la que sto es importante es que el orden de las reglas es realmente importante. Los errores ms comunes en ltrado de paquetes se deben a un orden inapropiado de las reglas para lo que se desea hacer. Por otro lado, el agregar una regla en una posicin especca signicara eliminar las reglas siguientes, agregar la regla deseada y voler a agregar la regla original lo que implica una tarea tediosa y engorrosa, especialmente cuando la cantidad de reglas aumenta o en un sistema que necesite de un control complejo.

1.5.1. Destino
Llamamos destino a la accin a realizar con un paquete segn una regla dada. Por defecto, los destinos son: ACCEPT QUEUE RETURN DROP
Como seguramente se adivina ACCEPT permite el paso del paquete por la ruta que transita. QUEUE provoca que el paquete sea transferido a una cola de espera en el espacio del usuario para que sea revisado; podr revisarlo cualquier aplicacin que haga uso de las libreras libipq. RETURN, por su parte, provoca un salto hacia el nal de la cadena; en las cadenas denidas por el usuario esto implicara volver a la cadena anterior.

Finalmente, DROP desecha completamente el paquete. Cabe destacar que el paquete es desechado, no rechazado. Esto implica que el paquete no llegar a
5

Existen excepciones en las que la evaluacin de reglas contina despus de una coincidencia, pero sern vistos ms adelante

las capas superiores, como si nunca hubiese existido. En tales casos, la PC destino jams recibir el paquete y agotar su tiempo de espera para un acuse de recibo (un ACK) en caso de estar esperando uno. Este comportamiento puede llegar ser deseable, impidiendo establecer conexiones no deseadas o dar 6 indicios de presencia ante intentos de vericacin externos por parte de sistemas no regulados (por medio de una regla anloga que s lo permita.

Sin embargo, pueden existir casos en los que se preera enviar el paquete de error, o inclusive otras accions distintas a cualquiera de esas dos. Para ello existen mdulos que agregan destinos o condiciones de ltro. Por otro lado, tambin se puede especicar como destino de un paquete otra cadena. Normalmente esto sera utilizado con cadenas denidas por el usuario permitiendo, de esta forma, un mejor manejo de las reglas. Lo que es ms, una correcta modularizacin permitira reducir al mnimo los inconvenientes que signican agregar una regla y que sta quede en el orden deseado. Polticas
Hay algo sin embargo que no se mecion: qu sucede cuando se utiliza un RETURN en una cadena que no es del usuario? qu sucede cuando un paquete no coincide con ninguna regla dada?. Sera esperable pensar que, dado que el sistema interere con el ruteo del paquete, ste siga su curso normalmente.

De hecho, si bien es el caso, sto no siempre es el comportamiento deseado. Por ello, se puede determinar la accin por defecto de una cadena. Esta accin por defecto se denomina poltica de la cadena y puede ser cualquiera de las extensiones disponibles (que no sean una cadena denida por el usuario).

1.6. Mdulos extras


Como ya se mencion, iptables fue diseado para ser extensible y adaptable a muchas y diversas necesidades. En general, se necesita que el kernel haya sido compilado con soporte para netfilter lo que agrega instrucciones en el kernel que permite tomar paquetes en puntos especcos de la ruta que siguen. Adems, es necesario el mdulo ip_tables que utiliza dichos puntos en el kernel para proveer de una interfaz ms sencilla de manejar y la estructura interna del sistema como ya se explic. Y es sobre ste mdulo que se trabaja nalmente. Sin embargo, para poder agregar tablas, cadenas y extensiones, se necesitan de otros mdulos. Por otro lado, existen otros mdulos de los que iptables puede aproveclos mdulos tambin permiten agregar otras funcionalidades. Dividiremos, entonces, los mdulos en tres grandes grupos: Mdulos de netfilter
6

Es muy comn por parte de atacantes tener un sistema que enva paquetes para determinar la existencia de posibles objetivos si stos devuelven algn tipo de respuesta.

Mdulos de tablas y cadenas Mdulos de destinos Si bien no se encontr informacin que as lo asegure, parecera existir algn tipo de convencin o estndar en el nombre que reciben los mdulos. Como se ver ms adelante, se cumpliran las siguientes reglas: Mdulos de netfilter Estn prejados por ip_ y un nombre descriptivo de lo que realizan. El mdulo ip_tables estara en este grupo. Mdulos de tablas Contienen el prejo iptable_ seguido del nombre de la tabla que agregan. Mdulos de destinos Contienen el prejo ipt_ seguido del nombre del destino maysculas. Puede suceder que el destino no sea exactamente el nombre del mdulo sino que sea una forma corta (para facilitar el uso). Sern cubiertos ms adelante ya que no ataen al funcionamiento interno Cabe destacar que, si bien aqu se los menciona por separado, la mayora (sino todos) de los mdulos que se describirn y muchos otros estn includos en una instalacin por defecto. No slo eso, sino que incluso algunos nisiquiera son un mdulo extra que debe ser instalado y cargado pero se lo reconoce como una extensin; an as, no dejan de ser mdulos prcticamente independientes.

1.6.1. Mdulos de tablas y cadenas


Estos mdulos se caracterizan por agregar nuevas tablas y cadenas por defecto en stas tablas. Dichas cadenas se corresponden con algn punto 7 especco de la ruta seguida por un paquete. Los ms utilizados ya fueron mencionados: iptable_filter, iptable_nat e iptable_mangle. El primero ya fue analizado en detalle, veamos ahora qu funcionalidades proveen los otros dos. iptable nat Este mdulo, como bien indica su nombre sirve para poder hacer NAT (Network Address Translation) mediante iptables. Para poder lograrlo agrega al sistema una tabla, casualmente llamada nat, y tres cadenas por defecto: OUTPUT, PREROUTING y POSTROUTING. La cadena OUTPUT es idntica a aquella presente en la tabla lter en cuanto al papel que representa en el esquema de ruteo de un paquete. La principal diferencia radica en las otras dos cadenas ubicadas en dos puntos distintos del ruteo del paquete a todas las dems cadenas vistas hasta ahora. El grco a continuacin as lo evidencia: ---> PREROUTING --> Enrutamiento --> FORWARD --> POSTROUTING ---> |^
7

Adems, estos son los unicos de los que conocemos existencia

v| INPUT OUTPUT |^ || +-------> PC Local ------>---+ Para quienes sepan ingls habrn notado los signicados de las nuevas cadenas implican un pre-ruteo y un post-routeo para todos los paquetes que atraviesan el alcance del sistema. Obviamente, esto se debe a los momentos en los que se pueden tomar decisiones sobre NAT evitando perder tiempo. Si la cadena PREROUTING estuviese despus del ruteo, no se podra hacer un simple enmascaramiento de la red ya que todos los paquetes hacia la red interna atraviesaran la cadena INPUT primero, implicando la necesidad de generar un nuevo paquete de forma local para poder enviarlo hacia la red interna. Obviamente, se agregan una serie de extensiones que nos permitirn el manejo de paquetes y transformaciones de IPs haciendo DNAT (Destination o SNAT NAT (Source NAT) sin problema alguno. iptable mangle
No conforme con las capacidades actuales del sistema existe an un mdulo ms de amplia utilizacin. iptable_mangle agrega, como ya se mencion, una nueva tabla llamada mangle (alterar hasta hacerlo irreconocible en ingls) que posee todas las cadenas hasta ahora vistas: INPUT, OUTPUT, FORWARD, PREROUTING y POSTROUTING.

Las capacidades de esta tabla son las de modicar prcticamente cualquier aspecto conocido de un paquete dado. De all el nombre.

Captulo 2

Sintxis
Con el conocimiento del funcionamiento interno de iptables el poder utilizar el sistema se limita a aprender la sintxis necesaria para poder majar los mismos. Evidentemente, para ello se dispone de una aplicacin que interacta con las tablas y reglas de una forma sencilla: iptables. El uso que se le pueda dar est limitado por nuestra creatividad y los lmites innatos del sistema en s. A continuacin se exponen las opciones para el manejo de dicha aplicacin en conjunto con sencillos ejemplos. Como se comprob en el cdigo fuente, para el manejo de opciones iptables hace uso de la abstraccin brindada por getopts facilitando la utilizacin de versiones pero ms expresivas de los parmetros. Esto permite a usuarios novatos cortas y largas comprender lo que hace cada regla si utilizan las versiones largas sin perder las ventajas de evitar tipear nombres largos.

2.1. Manejo de Cadenas


Si bien iptables incluye cadenas por defecto, se puede modularizar el sis tema de ltrado hacindolo ms sencillo de comprender y mantener. Esto se unica condicise superpongan n cadenas existentes. logra agregando cadenas propias, bajo la conque sus nombres no Para trabajar con una tabla en especial se la puede especicar agregando -t nombre_tabla. Esto no es necesario, sin embargo, debido a que el sistema interpreta que, por defecto, uno siempre se reere a la tabla lter, si sto no es lo deseado entonces se debe especicar la tabla sobre la que se est Tambin es trabajando. de destacar el hecho que la utilizacin de mdulos modica la cantidad de opciones aceptadas por la interfaz de usuario. De ah que exista la opcin -m nombre_mdulo que fuerza la carga de un mdulo determinado para poder aprovechar las opciones de las que dispone. La extensa utilizacin de ciertos mdulos, sin embargo, permite la omisin de dicha opcin para el uso de ciertas opciones. Para mayor simplicidad, de ahora en adelante se supondr que, a menos que

no sea posible, se trabajar sobre la tabla lter y no se forzar la carga de mdulos siempre que sea posible. Por su parte, los parmetros sern indicados segn la notacin ms concida y aceptada, de gran similitud con expresiones regulares. Corchetes Indicarn parmetros opcionales. Esto es, que pueden aparecer o no Llaves Cada elemento separado por comas dentro de ellas es una de los posibles valores aceptados. Texto en espaol Siempre que se observe un texto en espaol con un nombre bastante descriptivo se debe reemplazar el mismo por lo que est pidiendo. Existen adems, una serie de opciones generales que pueden ser especicadas en cualquier instruccin. A saber: -v El siempre conocido verbose que provoca mensajes ms descriptivos y detallados de la actividad circundante. -n La salida de direcciones IPs y puertos se mantiene en forma numrica (por ejemplo: [Link] en lugar de localhost) line-numbers Cada regla tendr asignado un nmero dentro de la cadena. Esta opcin provoca que dichos nmeros sean mostrados antes de cada regla.

2.1.1. Crear una nueva cadenas


Para hacerlo slo se debe ejecutar el siguiente comando: -N nombre_cadena

2.1.2. Ver cadenas existentes


Evidentemente se debe de poder ver qu reglas contiene una cadena dada. Para hacerlo, basta con ejecutar: -L [nombre_cadena] Cabe la posibilidad de no proveer nombre de cadena alguno. Caso en el que se mostrarn por la salida estndar todas las reglas asociadas a cadena.

2.1.3. Eliminar cadenas


Si podemos agregar cadenas, entonces deberamos de poder eliminarlas. Para ello contamos con la siguiente regla: -X [nombre_cadena] De forma consistente con las dems, esta regla elimina todas las cadenas creadas por el usuario si ninguna es especicada.

2.1.4. Denir la poltica de una cadena


Como bien se mencion anteriormente, cada cadena posee un destino que acompaar a todo paquete que no coincida con nignuna regla. Dicho destino determina la poltica de la cadena y se puede especicar mediante la siguiente instruccin: -P nombre_cadena destino_por_defecto

2.2. Opciones manejadas por la interfaz


Cada cadena tiene sus propias reglas. Para poder agregar una regla a una cadena especicada debemos decidir si queremos hacerlo al principio o al nal de la cadena en cuestin. Si lo queremos hacer al nal, basta con ejecutar: -A regla_deseada Si, en cambio, deseamos agregarla en un punto en particular (por defecto la agrega al comienzo) : -I regla_deseada [numero_de_orden] Por otro lado, tambin puede suceder que deseemos eliminar una regla especca. Para ello podemos hacerlo bien por medio de un tro exacto o por el nmero de orden de la orden en una cadena: -D regla_deseada -D nmero_de_regla Evidentemente, la primera es de ms fcil lectura pero presenta un inconveniente: es necesario recordar exactamente el enunciado de la misma para que sea eliminada. El utilizar los nmeros de reglas tendra un benecio evidente.

Si se desea, sin embargo, eliminar todas las reglas de una cadena el trabajo es lento y tedioso. Para ello, disponemos de otra opcin: -F cadena Esto provoca que todas las reglas de la cadena especicado sean desechadas y se vuelva al estado inicial de la coguracin dicha tabla en el que no tiene regla alguna. Queda, sin embargo, un valor que no es reseteado; ste valor se trata de una extensin del sistema que permite Para poder resetear dichos contadores, disponemos de la opcin: llevar cuenta de ciertos paquetes. -Z cadena ultimo, suponiendo el caso en que uno estuviera probando una nueva regla Por pero no est del todo seguro de su funcionamiento. A tal efecto, uno suele probar hasta que se logra el efecto deseado y el agregar y quitar reglas permanentemente es demasiado trabajo; especialmente cuando se dispone de la posibilida de reemplazar una regla en una cadena determinada: -R cadena numero_de_regla

2.3. Construccin de ltros


La potencia de iptables radica en su excelente nivel de modularizacin. Por ello, en lugar de estudiar grandes y complicadas reglas para construir ltros, daremos las opciones ms comunes para que cada quien las utilice segn sus necesidades. Todas las opciones que se especicarn a continuacin pueden ser negadas. Para ello se debe preceder a los valores deseados (o la opcin en uno de los casos) con un signo de exclamacin (! sin comillas) de forma similar a la negacin de una variable en el lenguaje de programacin C. De esta forma se podrn hacer ltros de una forma ms sencilla. A continuacin se describirn aquellas opciones incluidas por defecto dentro de la aplicacin. Estas pueden ser rpidamente revisadas gracias a la ayuda de la misma al ejecutar: iptables -h A diferencia de dicha ayuda, aqu se encontrarn ordenadas segn utilidad o el orden que se crey ms til o sencillo para comprender. En la ayuda includa, como es prctica usual, se encuentran ordenadas por orden alfabtico.

2.3.1. Destino del ltro Lo primero que se debe saber para poder construir un ltro con iptables es
cmo especicar el destino de los paquetes que coincidan con l. La opcin

que controla ste aspecto del ltro se puede resumir en: -j destino_vlido [opciones] Recordemos que los valores posibles de destino_vlido dependen de los mdulos cargados en un momento dado. Por defecto seran ACCEPT y DROPLas opciones son modicadores extras que dependen del destino.

2.3.2. Filtrado por protocolo


Una de las primeras distinciones a realizar en un paquete es el protocolo segn el que transita. Como administradores de sistemas puede ser de nuestro inters el ltrar alguno de los protocolos ms utilizados. Esto se logra mediante: -p {tcp,udp,icmp} Si no se especica protocolo alguno, directamente no se lo tendr ne cuenta. Si es especicado, en cambio -dependiendo del protocolo especicado -se podran generar una serie de parmetros extras especcos de dicho protocolo para facilitar el trabajo.

2.3.3. Filtrado por direccin


Pudiendo bloquear por protocolo, sera un despropsito no poder ltrar por IP. Para ello, podemos ltrar a aquellos paquetes que estn originados o destinados a cierta IP mediante las reglas: -s {direccin_IP[/mscara_de_red],nombre_de_host} -d {direccin_IP[/mscara_de_red],nombre_de_host} Indica la direccin de origen (o destino, respectivamente) del paquete. Esta puede ser indicada por el nombre de host (por ejemplo: [Link]) o con la direccin IP en forma numrica. La mscara de red, a su vez, se puede indicar del modo tradicional de 4 nmeros decimales separados por puntos o un entero entre 0 y 32 indicando la cantidad de bits que se jan de la mscara.

2.3.4. Filtrado por interfaz


Por otro lado, tambin se puede ltrar por interfaz (la aplicacin ifconfig mostrar la lista de interfaces activas) gracias a las opciones: -i nombre_interfaz -o nombre_interfaz
1

Interfaz es el trmino que dena una abstraccin sobre los dispositivos de red.

Estos pueden ltrar segn la interfaz por la que entre o salga (respectivamente) un paquete. Parecera ser intil el poder ltrar por interfaz si ya se dispone de la capacidad de ltrar por IP. Sin embargo, no es extrao el encontrar ataques que se basan en la creacin de paquetes especiales. Por ejemplo, crear un paquete que parezca provenir de una IP local (tcnica denominada spoong). La forma ms fcil de controlar estos ataques sera revisando las interfazs involucradas. Evidentemente, slo los paquetes que atraviesen la cadena FORWARD tendrn ambas interfaces. Aquellos que sean dirigidos a la propia PC (y que atraviesen la cadena INPUT) no tendrn interfaz de salida. Por lo tanto, cualquiera regla de dicha cadena que incluya esa opcin no coincidir con ningn paquete. Secede algo anlogo con los paquetes que atraviesan la cadena OUTPUT que no tendrn interfaz de entrada, as que la regla -i no funcionar.

Tambin es de destacar que es perfectamente vlido especicar un interfaz que no existe. La regla en cuestin simplemente no coincidir con ningn paquete. Como un caso especial, un nombre de interfaz con el sujo + coincidir con todas los interfaces que comiencen con dicha cadena.

2.3.5. Manejo de fragmentos


Aquellos familiares con la forma en la que se encapsula la informacin debido al modelo por capas con el que se trabaja se habrn percatado de que no todos los paquetes poseen toda la informacin necesaria para poder ltrarlos. Ms puntualmente, el puerto de origen o destino slo pueden ser encontrados en la cabecera del protocolo. Si el paquete se fragmenta en varias porciones: cmo hago para ltrar el resto de los paquetes que no contienen esa informacin? Tericamente, no debera de ser necesario. Si la cabecera de un mensaje contiene toda la informacin entonces ser ltrada en caso que as se lo desee. Por ms que los dems fragmentos no posean dicha informacin y pasen los ltros desapercibidos las capas correspondientes no sern capaces de reconstruirlo sin la cabecera que s fue ltrada. En la prctica sin embargo, hay muchos efectos no deseados. El primero es que un paquete roto signica un pedido de retransmisin. Como el paquete fue roto voluntariamente todas las retransmisiones tambin lo estarn. Esto provoca un trco no slamente intil sino tambin innecesario desperdiciando recursos (tanto econmicos como de ancho de banda).

Por otro lado, todo el trco de los fragmentos hasta las capas superiores implica una cantidad de procesamiento. Si es nuestra intencin impedir el acceso a esa informacin sera ms eciente el bloquear todos los fragmentos que slo algunos de ellos e impedir la recontruccin del original. Para ello, iptables hace un seguimiento de los paquetes para que todos los fragmentos coincidan con las reglas del paquete que les corresponda. An as, provee la siguiente opcin para diferenciar el primer paquete de los dems: -f

En caso de aparecer en una regla, indica que slo se aplicar a los fragmentos que no sean el primero.

2.4. Extensiones
Como bien fue mencionado varias veces ya, iptables fue diseado teniendo en cuenta la modularizacin para hacerlo fcilmente extendible. Esto se puede lograr, bien mediante mdulos -para tareas complicadas -o simplemente con libreras que interactan con el usuario. Las extensiones existentes responden a diferentes necesidades que se presentaron con el uso del sistema y fueron desarrollados aprovechando la extensibilidad del mismo. Podemos clasicarlas segn dos criterios distintos pero para nada disjuntos: inclusin en el sistema rea que extendien. Contrario a lo que es usual, ser el primero el principal criterio de divisin utilizado -dejando el otro para una subclasicacin -debido a que este documento est pensado para facilitar el uso del sistema. Es de destacar que, en algunos casos ser necesario explicitar el deseo de uso de alguna de dichas extensin por medio de la opcin: verb+-m extension+ En otros casos, sin embargo, esto puede ser omitido y la aplicacin cargar la extensin automticamente. Para saber cules son las extensiones de las que disponemos, nada ms sencillo que buscar entre los mdulos de kernel con el comando lsmod o simplemente listar las libreras que guran en /lib/iptables

2.4.1. Includas en el sistema


Muchas de las extensiones o populares que fueron includas directamente utiles fueron consideradas tan en el sistema base. Esto quiere decir que deberan de estar disponibles en una instalacin limpia de iptables. Si bien se listarn las opciones ms utilizadas con una breve descripcin, siempre se podr consultar la ayuda includa con el comando: iptables -m modulo --help TCP, UDP, ICMP Como bien vimos, iptables puede ltrar nativamente por protocolo. Es de notar que cada uno de estos protocolos lleva asociado una extensin que permite la utilizacin de opciones adicionales. La ms sencilla de todas es ICMP que slo agrega una opcin: icmp-type. Esta permite, como seguramente se imaginan, ltrar los paquetes ICMP segn el tipo (pings, errores de red, etc).

UDP por su parte, slo agrega dos opciones capaces de ayudarnos a ltrar por puerto o rango de puertos y si es el puerto de origen destino con: sport y dport. Finalmente TCP es la ms completa ya que, adems de las opciones brindadas por la extensin UDP, provee dos ltros adicionales: tcp-option y tcp-ags que permite distinguir el valor del campo de opcin de la cabecera TCP y saber qu ags estn activadas. Sobre ste ltimo, necesita de dos valores: una mscara una lista separada por comas de uno o ms de SYN, ACK, FIN, RST, URG y PSH o bien ALL como una forma corta de agregar todas las opciones NONE para no indicar ninguna un ltro otra lista separada por comas de aquellas opciones que aparecen en la mscara que deben de estar activadas para que coincida el paquete mac Algo tambin de gran inters para asegurar una red privada es el ltro para comparar paquetes segn direcciones Ethernet (MAC). Es de destacar, sin 2 embargo, que slo puede ltrar por direccin entrante por lo que slo se lo puede utilizar en las cadenas PREROUTING e INPUT. Necesita de ser utilizado explcitamente mediante -m mac y provee, de esa forma, slo de la opcin mac-source. Sus resultados son obvios. limit
Este mdulo debe ser especicado explcitamente con -m limit y se utiliza para restringir la tasa de coincidencias indicando una mxima cantidad de paquetes por unidad de tiempo que seguirn esa regla. Agotada dicha cantidad de paquetes, las reglas que contengan este condicionador actuarn como si tuviesen un destino DROP.

Provee de dos opciones con las que trabajar: limit-burst y limit. La primera indica la cantidad mxima de paquetes a analizar antes de comenzar a descartarlos (5 paquetes por defecto) y la segunda indica la tasa de recuperacin de coincidencias por unidad de tiempo (3 paquetes por hora Se puede, por defecto).adems, especicar la unidad de tiempo utilizando diferentes unidades como second, minute, hour oday. Acepta inclusive abreviaciones: (5/second es lo mismo que 5/s). Ntese sin embargo, que no es posible crear una regla en la que se se especique una tasa de recuperacin multiplicada por el lmite de paquetes deber ser menor a 59 horas. La combinacin de estas opciones permite indicar una tasa mxima. En el caso por defecto (5 de mxima, recuperando 3 paquetes por hora) cada paquete que coincida disminuir la mxima y sta aumentar en 1 por cada 20 minutos (3
2

Esto se debe a que estamos trabajando a nivel de capa de red, donde un paquete est dirigido a la direccin mac del dispositivo siguiente en la ruta. Lo que quiere decir que todos los paquetes que pasen por una PC estarn dirigidos a su direccin mac, ms no necesariamente a su direccin IP

por hora). En cuanto a las limitaciones de contabilizacin, si se desea establecer una tasa de 1/da el mximo deber ser menor a 3 (1/day con limit de 3 fuerza la contabilizacin de 72 horas continuas). mark y MARK
Existe un mdulo especial que provee tanto de una opcin para ltrar paquetes como un destino. Est restringido a la tabla mangle ya que modica los paquetes: los marca. Utilizndolo como destino provee de las opciones setmark, and-mark y or-mark que establecen el valor de la marca u operan con un y lgico u lgico segn el parmetro pasado.

Sabiendo, adems, que la evaluacin de las reglas no se detendra es posible utilizar las marcas como una forma de agrupar paquetes y luego actuar sobre ellos mediante el ltro mark (notar que en este caso es necesario cargar la extensin con -m mark). Tambin, la aplicacin iproute2 es capaz de leer las marcas para, gracias a iptables, modicar el ruteo de los paquetes. CLASSIFY De la misma forma que la extensin mark puede ayudarnos a agrupar paquetes, existe esta otra capaz de clasicarlos. La diferencia, sin embargo, es las aplicaciones para las que dicha clasicacin es til. El destino CLASSIFY provee la opcin set-class que acepta dos nmeros separados por dos puntos (:). Esta clasicacin luego puede ser leda por la aplicacin tc para poder hacer trac shaping. Correctamente implementado evitara el tener que indicar tambin a tc rangos de IP, mac, etc. para poder dividir redes o ltrar servicios de una forma ms especca evitando la reprogramacin de accesos y permisos NOTRACK En algunos casos, la performance del sistema es crtica y, por lo tanto, los recursos disponibles deben de ser aprovechados al mximo. A tal efecto, disponemos del destino NOTRACK, que simplemente evita el seguimiento de una conexin. Esto libera recursos para los paquetes de conexiones que no se deseen controlar. Su uso sencillo ya que no toma opciones y su utilidad es evidente en grandes redes con varias sub-redes que se encargan de seguir sus propias conexiones REDIRECT El poder hacer NAT muchas veces no es suciente. A veces slo necesitamos cambiar el puerto de una conexin entrante ya que el presupuesto no nos permite tener dos equipose separados con los puertos por defecto funcionando. O tal vez queremos utilizar un cach de forma transparente. A tal efecto, el la extensin de destino REDIRECT aade la opcin to-ports que permite hacer el cambio pertinente.

REJECT
Como se haba mencionado, el sistema de iptables por defecto slo puede descartar paquetes mediante DROP. Este paquete agrega un nuevo destino para los paquetes con un comportamiento similar. No slo descarta el paquete sino que, adems, genera un paquete de error ICMP y lo enva de vuelta al origen del paquete ltrado.

Permite, adems, congurar el tipo de paquete de error ICMP que se enva. Por defecto es port unreachable pero puede cambiarse con la opcin rejectwith seguida del tipo deseado. LOG Cualquier administrador de sistemas sabe que algo tan importante como la informacin que contienen sus sistemas son los registros logs generados por funcionamiento de los mismos. Estos contienen informacin sobre toda la el actividad que se desarrolla en los mismos. La activida de red, actualmente, es una de las ms importantes. No slo por la cantidad de sistemas que dependen de la red para funcionar, sino tambin por el simple hecho de que es la principal puerta para ataques. Un sistema indefenso se caracteriza por permitir un acceso sencillo al sistema por medio de la red. Si no se lo desea, se debe utilizar algn tipo de ltrado para evitarlo y, lo que es ms importante, nunca est de ms registrar cuando dichos intentos suceden. iptables contiene una extensin para generar logs de una forma sencilla. Simplemente se agrega una regla cuyo destino sea LOG. Este destino es especial, a diferencia de las dems reglas, aquellas con ste destino no concluirn la evaluacin de reglas. De esta forma, si se quiere rechazar o descartar un paquete y loguearlo se debe de poner la regla que lo loguee primero; de lo contrario, el paquete se desechar y jams llegar hasta la regla que lo loguee. El logueo se realiza en conjunto con los dems logs del sistema operativo y es posible especicar el nivel de logueo con log-level e inclusive una cadena de hasta 29 caracteres que servirn de prejo con log-prex. Esto posibilita el diferenciar la cadena utilizada para cada paquete logueado. Existen otras opciones que permiten loguear opciones, nmeros de secuencia o el ID de usuario del socket ustilizado. Es de notar que, para una PC conectada a internet, los registros pueden volverse muy extensos; especialmente si se intenta reducir el trco al mnimo. Por ello, es necesario un buen manejo de los logs del sistema operativo para evitar agotar el espacio del disco duro. La extensin limit descripta anteriormente puede ser de gran ayuda. MASQUERADE Con el transcurso del tiempo, la difusin de redes locales fue cada vez mayor... al igual que el deseo de interconectarlas. Obviamente, el conectar cada dispositivo con todos los dems sera no slo engorroso sino tambin costoso.

Por ello, toda red local dispone de uno o ms dispositivos que sirve como puerta de enlace hacia las dems redes. Sin embargo esto plantea un problema sencillo en cuanto a comunicacin de dos equipos en la seccin interna de cada red. Si slo dichas puertas de enlace pueden comunicarse directamente, se necesita de una forma de simular una conexin entre los dispositivos de las redes locales. Para ello existe el enmascaramiento (masquerading). Como las reglas para poder manejar estos casos son en exceso complicadas debido a los cambios que se deben de realizar en los paquetes, se cre un destino especco a tal efecto. Cualquier paquete que atraviese algn punto de la tabla nat puede tener MASQ como destino, implicando tal accin. Esto implica no tener que utilizar toda una serie complicada de reglas para controlarlo

2.4.2. No includas en el sistema


La cantidad de extensiones no includas en el sistema es inmensa. Esto se debe, no slo a la facilidad del desarrollo de una, sino tambin al hecho que fueron pensadas para solucionar problemas muy especcos o facilitar alguno ya solucionado. Se pueden encontrar en dos formas distintas: mdulos extras parches para Estos ultimos implican la recompilacinclusive de algn mdulo por no ser el cdigo. n de la aplicacin o ociales (a pesar de estar extensamente probados algunos); es por ello que nos centraremos en los primeros. ip conntrack: state
Este es un mdulo de kernel que se acopla al sistema de netlter. Sin ir ms lejos, fue desarrollado por netlter para proveer de una forma de mantener un registro de las conexiones existentes. En particular, este mdulo es includo dentro de la instalacin base por una cuestin de dependencias del mdulo ipt_nat demostrando ser un pilar importante del funcionamiento del sistema. No lo mencionamos anteriormente porque es en s un mdulo separado de iptables.

Es ste mdulo que permite la existencia del mdulo state, capaz de ltrar paquetes segn el estado de su conexin (ledo directamente de la informacin que mantiene conntrack). Debe de ser explcito en su uso mediante -m state y ofrece slo una opcin: state que toma como parmetro una lista separada por comas de los siguientes valores: NEW Conexiones nuevas, por lo general, el primer paquete que entra o sale ESTABLISHED Todos los dems paquetes de una conexin despus del primero INVALID Un paquete cuya conexin no pudo ser identicada, ya sea por cuestiones de memoria o paquetes ICMP que no correspondieron a ninguna conexin

RELATED Paquetes que no son parte de una conexin, pero derivan de ella (como paquetes ICMP) ftp A pesar de todos los mdulos y extensiones de los que ya hemos hablado. Sigue habiendo un problema: las conexiones FTP. Sucede que el protocolo FTP utiliza una conexin de control pero otra conexin completamente bierto sera un despropsito datos. distinta para la transmisin de para unEsta ultima no es permanente y rewall. mantener el puerto Es por eso que netlter pone a nuestra disposicin dos mdulos ms: ip conntrack ftp e ipt nat ftp. El primero se encarga de que el mdulo de seguimiento de conexiones pueda relacionar las dos conexiones que acabamos de mencionar sobre el protocolo FTP. El segundo en cambio, se encarga de sgonear en los paquetes que pasan por las cadenas de la tabla nat para poder hacer lo mismo. Sin estos mdulos, no hay forma alguna en la que se pueda utilizar dicho modo de FTP teniendo un rewall restrictivo al mismo tiempo. De la misma forma, existen mdulos para muchos otros protocolos con inconvenientes similares como H.323, IRC, amanda, PPTP, TFPT, etc.

Captulo 3

Prctica
La teora de construccin de rewalls es muy sencilla, simplemente es aprender la sintxis o mtodos de conguracin de la aplicacin deseada y punto. Nada que no pueda encontrarse en las pginas de manual o repartido en varias pginas de internet. Lo que s cuesta es encontrar las herramientas que nos ayudan a hacer el trabajo ms sencillo o guas sobre las prcticas ms usuales.

3.1. Problemas de iptables


En un intento de ser objetivos, no todo es de color de rosa con iptables, tiene defectos como cualquier otro sistema. Defectos para el que existen soluciones pero que pueden no ser del todo convenientes para el criterio de algunos. Los ms comunes son dos:

3.1.1. Sintxis complicada


Como bien se repas a lo largo de todo este documento, la sintxis de iptables no es para nada sencilla. Las opciones bsicas son poderosas pero para cualquier uso que se le quiera dar se necesita de un poco ms de conocimiento. La cantidad de opciones y extensiones disponibles no facilitan el trabajo tampoco. Las opciones se multiplican, las combinaciones posibles, restricciones y requisitos para utilizar cada una de ellas no son siempre de lo ms sencillas de comprender. Y, si queremos utilizar extensiones no estndar todo es an ms interesante ya que algunas implican tener que compilar porciones de cdigo a mano. Las soluciones a todo esto son variadas. Algunas las revisaremos ms adelante: frontends y wrappers, pero todas tienen sus problemas. Las primeras no permiten un control completo y minucioso de todas las posibilidades y cualquier uso demasiado avanzado requerir de conocimientos directos de iptables. Los

segundos, en cambio, no simplican la sintxis sino que slo la cambian por otra que puede (o no) resultarnos ms cmoda o familiar. Constructores De todas formas podemos tener un rewall sin tener la ms remota idea de iptables. Para ello existen, pululando por internet sistemas completos en los que uno selecciona servicios, puertos y topologa de la red y ste nos devuelve las reglas de iptables necesarias para implementarlo. Uno de ellos. y a mi criterio el ms completo, es el On-line FireWall generator . Con unos cuantos clicks nos brinda las reglas capaces de manejar un equipo aislado o un servidor que funcionar de puerta de enlace hacia internet para una red completa o brindar uno que otro servicio. Si bien est en ingls, provee de una extensa ayuda sobre cada opcin congurable para un mejor entendimiento de lo que se est haciendo. Como si esto fuese poco, el cdigo generado (que no es ms que un script de shell) est muy bien organizado y es fcilmente entendible. Lo que es ms, los extensos comentarios sobre el mismo hace casi innecesario tener conocimiento alguno sobre iptables para saber qu es lo que hace cada lnea.
1

3.1.2. Guardando la conguracin


Si no lo han notado, toda la sintaxis explicada anteriormente trabaja directamente sobre los mdulos de kernel agregando -en tiempo de ejecucin -las reglas a las cadenas deseadas. Cada una de stas es mantenida en memoria para el permanente chequeo de cada paquete con ventajas de ser posible modicarlo en tiempo real ... pero se pierde al reiniciar la PC. La aplicacin iptables posee, sin embargo, dos aplicaciones que nos podran ayudar a tal efecto: iptables-restore e iptables-save. Como bien indican sus nombres, sirven para restaurar y guardar la conguracin de iptables en un momento dado. Ofrecen la posibilidad de guardar cada tabla por separado, guardar los contadores de paquetes y bytes e inclusive hacer restauraciones incrementales del rewall.

Para utilizarlo basta con ejecutarlos y redireccionando la entrada o salida a un archivo correspondiente. La opcin -c es la que controla el tema de los contadores, -t sirve para indicar la tabla a guardar y -n evita el vaciado de las tablas al restaurar el rewall. Sin embargo, es algo tedioso de hacer a mano cada vez; ni hablar cuando se trata de un servidor remoto y autnomo que puede llegar a sufrir de cortes de luz o inconvenientes inesperados similares. Denitivamente no queremos que quede sin rewall. Carga al arranque Una solucin posible sera generar un script que sea ejecutado automticamente durante el arranque de la PC. Dicho script no hara ms que invocar la
1

Lo podrn encontrar en [Link]

aplicacin iptables-restore leyendo desde un archivo en el que hayamos guardado previamente nuestras reglas de rewall con la aplicacin Obviamente esto puede complicarse un poco ms, modularizando el rewall iptables-saveguardando cada tabla por separado. O ms an, utilizando scripts propios que ejecuten una por una las instrucciones para reconstruir nuestro rewall. La idea es siempre la misma y es aquella utilizada por defecto en la mayora de los sistemas agregando dicho script a la lista de scripts ejecutados al iniciar la PC en el directorio /etc/init.d/ con algn nombre apropiado. Carga junto con la red
La solucin anterior es la correcta y la necesaria para sistemas que necesitan de un rewall corriendo permanentemente ya que estn siempre conectadas a internet o funcionan como server o puerta de enlace para una red. Para un equipo personal que no est conectado permanentemente a internet, eso puede ser no slo un despropsito sino tambin un desperdicio de recursos.

Para ello se puede congurar el sistema para que ejecute el script al levantar una interfase de red. Esto sera extremadamente similar a lo anteriormente descripto, slo que los scripts deberan de ubicarse o referenciarse de otra forma. En sistemas Debian o similares, esto podra ser en /etc/network/if-up.d/.

3.2. Respaldos
Es importante siempre tener copias de respaldo de las reglas del rewall. Esto es porque, con el tiempo, los servicios que uno va abriendo o cerrando, las reglas y mdulos que utiliza. En casos crticos, la informacin que se respalda son siempre los datos del sistema de archivos, los usuarios y servicios brindados por la PC... rara vez incluye el rewall.

Esto puede ser extremadamente engorroso ya que nos obliga a recurrir a un rewall deciente e improvisado. Lo que es ms, causa incesantes dolores de cabeza sobre las cosas que se fueron modicando sobre la marcha y que deben de ser realizadas nuevamente.

3.2.1. Actualizaciones
De la misma manera, al momento de hacer una actualizacin al rewall, la versin corriente debe de estar correctamente respaldada y algn tipo de medida de contingencia. Esto nos permitir actuar de manera rpida y eciente en caso que alguna modicacin no resultare como esperamos. Es de vital importancia considerar dos casos completamente separados. El primero sera cuando uno est trabajando directamente sobre la PC en la que funciona el rewall, cuando uno est frente al hardware en cuestin. En dichos casos, la solucin a este tipo de problemas puede ser tan sencillo como eliminar todas las reglas y poner las polticas a DROP hasta tanto el rewall est nuevamente en funcionamiento.

El segundo caso es cuando uno est trabajando de forma remota. En estos casos uno no puede hacer lo mismo que antes se mencion por la simple razn de que ello bloqueara permanentemente cualquier tipo de conexin desde el exterior... incluso la que estaba utilizando para ingresar al servidor.

3.3. Frontends
Otra solucin a los problemas de iptables en cuanto a su complejidad son los frontends. Estos consisten en simplemente una interfaz grca para un entorno X que ayudar a la administracin del rewall. Algunos de ellos son:

3.3.1. Firestarter
Sitio ocial: [Link] El rewall manager de GNOME. Lo he utilizado y es extremadamente sencillo, inclusive para manejar una PC que funcione como puerta de enlace. Se encarga de cargar todos los mdulos necesarios y brinda excelentes opciones de personalizacin del rewall. Utiliza las reglas de logueo para mostrar en tiempo real las conexiones existentes, los paquetes rechazados y mucha otra informacin til. Permite prender y apagar el rewall o modicarlo en caliente quedando como residente para un mejor control en tiempo real. Muy recomendado para usuarios novatos, o aquellos que no tienen muchas ganas de ponerse a aprender sintxis.

3.3.2. KNetFilter
Sitio ocial: [Link] Es la versin de KDE de Firestarter. No la he utilizado y no he podido encontrar referencia alguna que indique su funcionamiento en kernels posteriores a 2.4. Se vea bien en los screenshots sin embargo.

3.3.3. Firewall Builder


Sitio ocial: [Link] Uno de los GUIs ms poderosos que he visto. De los ms completos... y complicados. Necesita de sendos conocimientos sobre redes y lo que se desea hacer con el rewall. Est muy bien documentado y tiene extensas ayudas. Todo en ingls sin embargo y no es recomendable para alguien que quiere hacer algo sencillo y rpido. Para un usuario avanzado con un gusto por interfases grcas, es lo mejor que he visto.

3.4. Wrappers
As como existen interfases grcas para implementar iptables, existen tambin sistemas completos que se encargan de proveer de una nueva forma de congurar el rewall (y alguna que otra cosa tambin). Estos sistemas se encargan de parsear estas conguraciones y traducirlas a las reglas de iptables necesarias.

Muchas veces proveen de ms utilidades al integrarse tambin con otras aplicaciones. Proveen, adems, de un estndar en cuanto al almacenamiento de conguraciones del rewall y no lo dejan librado al gusto del administrador. Sin embargo, sus sintxis de conguracin pueden ser tanto o ms complicadas que las de iptables; pero eso queda a criterio de cada uno.

3.4.1. Shorewall
Sitio ocial: [Link] Uno de los ms populares y mejor documentados. Con una sintxis de conguracin sencilla pero con parmetros sospechosamente similares a aquellos que podemos utilizar en iptables. Se basa en la conguracin de zonas y sus polticas de seguridad. Conguramos qu se permite y que no para cada zona y las conexiones que corresponden a cada una. Permite integracin con tc para hacer trac shaping desde el mismo archivo de conguracin. Tiene la gran ventaja de que una extensa porcin de su documentacin tambin puede encontrarse en espaol.

3.4.2. Ferm
Sitio ocial: [Link]
Un proyecto cuyo nombre proviene del acrnimo de Para la Simple Creacin de Reglas (del ingls For Easy Rule Making). Al igual que Shorewall, sus parmetros de conguracin son sospechosamente similares a los que se pueden encontrar en iptables; pero su conguracin se realiza mediante una sintaxis muy parecida a cdigo C.

Permite utilizar nombres de protocolos en lugar de los nmeros de puerto por stos utilizados. Adems de poder agrupar reglas, utilizar variables, funciones, bloques, etc para un mejor control.

3.4.3. gShield
Sitio ocial: [Link] Es un potente sistema que toma scripts de shell y los transforma en reglas de iptables. Excelentemente documentado y muy potente. Como si fuese 2 poco, cuenta con una completa interfase grca: gShieldConf . Aprovechando la potencia del lenguaje bash permite construir conguraciones complicadas con
2

Sitio ocial: [Link]

sencillos scripts para quienes tengan el conocimiento necesario o la utilizacin de la interfase grca para quienes quieran algo ms sencillo.

3.5. Otros
3.5.1. Auto FireWall
Sitio ocial: [Link] Este es una aplicacin completa que genera reglas de ruteo y un rewall muy decente para el usuario promedio. Basta con correr la aplicacin para que sta auto-detecte el estado del sistema y se congure a s misma. No es la mejor solucin, pero una de las mejores que existen que funcionan bien as como vienen. Especialmente recomendado para usuarios nveles que quieren conectarse a internet y olvidarse del asunto. Eso s, deben recordar ejecutarla manualmente al conectarse (o antes).

3.5.2. Floppy FireWall


Sitio Ocial: [Link] Es una distribucin completa de Linux diseada especialmente para correr slo desde un disquette y administrar un servidor completo. La conguracin es muy simple e intuitiva modicando archivos de texto y puede ser realizada tanto desde Windows como de Linux. Yo la estoy utilizando con excelentes resultados en una PC sin disco rgido, poco procesador y poca memoria (Pentium 586 con 64 Mb) para hacer de puerta de enlace a 6 PCs. No ha fallado casi nunca; pero depende en gran medida de la vida til del disquette. Al estar orientada a servidores provee de archivos de conguracin para determinar cmo se realizar la conexin a internet (PPP o PPPoE), si las IPs sern estticas o se utilizar DHCP dentro de la red, si se permitir algn tipo de conexin hacia dentro de la red -como para permitir la conexin remota a alguna de ellas -y muchas otras cosas comentadas en exceso dentro de los mismos archivos. En constante desarrollo y muy bien documentado.

Captulo 4

Enlaces
ADMLogger: una herramienta que parsea logs de iptables [Link] Auto FireWall [Link] Comparacin entre distintos wrappers de iptables [Link] Ferm [Link] FireStarter [Link] Firewall Builder [Link] Floppy FireWall [Link] gShield [Link] gShieldConf [Link] kNetlter [Link] Mdulos raros y no tanto de iptables [Link] 20050717 164535 On-line Firewall Generator [Link] Shorewall [Link]

También podría gustarte