jueves, 6 de marzo de 2008

Iptables

Es un sistema de seleccion de paquetes formado por un sistema de tablas que permite definir reglas para seleccionar los paquetes.
tablas principales:

-filter:Filtrado de paquetes
-nat:Traduccion de direcciones de red
-mangle:Manipulacion general de paquetes

* Filter table (Tabla de filtros) — Esta tabla es la responsable del filtrado (es decir, de bloquear o permitir que un paquete continúe su camino). Todos los paquetes pasan a través de la tabla de filtros. Contiene las siguientes cadenas predefinidas y cualquier paquete pasará por una de ellas:


INPUT
chain (Cadena de ENTRADA) — Todos los paquetes destinados a este sistema atraviesan esta cadena (y por esto se la llama algunas veces LOCAL_INPUT o ENTRADA_LOCAL)


OUTPUT
chain (Cadena de SALIDA) — Todos los paquetes creados por este sistema atraviesan esta cadena (a la que también se la conoce como LOCAL_OUTPUT o SALIDA_LOCAL)


FORWARD
chain (Cadena de REDIRECCIÓN) — Todos los paquetes que meramente pasan por este sistema (para ser ruteados) recorren esta cadena



* NAT table (Tabla de traducción de direcciones de red) — Esta tabla es la responsable de configurar las reglas de reescritura de direcciones o de puertos de los paquetes. El primer paquete en cualquier conexión pasa a través de esta tabla; los veredictos determinan como van a reescribirse todos los paquetes de esa conexión. Contiene las siguientes cadenas redefinidas:


PREROUTING
chain (Cadena de PRERUTEO) — Los paquetes entrantes pasan a través de esta cadena antes de que se consulte la tabla de ruteo local, principalmente para DNAT (destination-NAT o traducción de direcciones de red de destino)


POSTROUTING
chain (Cadena de POSRUTEO) — Los paquetes salientes pasan por esta cadena después de haberse tomado la decisión del ruteo, principalmente para SNAT (source-NAT o traducción de direcciones de red de origen)


OUTPUT
chain (Cadena de SALIDA) — Permite hacer un DNAT limitado en paquetes generados localmen



*MANGLE table (Tabla de destrozo) — Esta tabla es la responsable de ajustar las opciones de los paquetes, como por ejemplo la calidad de servicio. Todos los paquetes pasan por esta tabla. Debido a que está diseñada para efectos avanzados, contiene todas las cadenas predefinidas posibles:


PREROUTING
chain (Cadena de PRERUTEO) — Todos los paquetes que logran entrar a este sistema, antes de que el ruteo decida si el paquete debe ser reenviado (cadena de REENVÍO) o si tiene destino local (cadena de ENTRADA)


INPUT
chain (Cadena de ENTRADA) — Todos los paquetes destinados para este sistema pasan a través de esta cadena


FORWARD
chain (Cadena de REDIRECCIÓN) — Todos los paquetes que exactamente pasan por este sistema pasan a través de esta cadena


OUTPUT
chain (Cadena de SALIDA) — Todos los paquetes creados en este sistema pasan a través de esta cadena


POSTROUTING
chain (Cadena de POSRUTEO) — Todos los paquetes que abandonan este sistema pasan a través de esta cadena



Destinos de reglas

El destino de una regla puede ser el nombre de una cadena definida por el usuario o uno de los destinos ya incorporados ACCEPT, DROP, QUEUE, o RETURN (aceptar, descartar, encolar o retornar, respectivamente).

*Existen los siguientes destinos ya incorporados:


ACCEPT
(aceptar)
Este destino hace que netfilter acepte el paquete.


DROP
(descartar)
Este destino hace que netfilter descarte el paquete sin ningún otro tipo de procesamiento.


QUEUE
(encolar)
Este destino hace que el paquete sea enviado a una cola en el espacio de usuario.


RETURN
(retorno)
Hace que el paquete en cuestión deje de circular por la cadena en cuya regla se ejecutó el destino


RETURN.
Si dicha cadena es una subcadena de otra, el paquete continuará por la cadena superior como si nada hubiera pasado.



*Hay muchos destinos de extensión disponibles. Algunos de los más comunes son:


REJECT
(rechazo)
Este destino tiene el mismo efecto que 'DROP', salvo que envía un paquete de error a quien envió originalmente.


LOG
(bitácora)
Este destino lleva un log o bitácora del paquete. Puede usarse en cualquier cadena en cualquier tabla, y muchas veces se usa para debuggear (análisis de fallos, como ser la verificación de qué paquetes están siendo descartados).


ULOG

Este destino lleva un log o bitácora del paquete, pero no de la misma manera que el destino LOG. El destino LOG le envía información al log del núcleo, pero ULOG hace multidifusión de los paquetes que matchean esta regla a través de un socket netlink, de manera que programas del espacio de usuario puedan recibir este paquete conectándose al socket.


DNAT

Este destino hace que la dirección (y opcionalmente el puerto) de destino del paquete sean reescritos para traducción de dirección de red. Mediante la opción '--to-destination' debe indicarse el destino a usar.


SNAT

Este destino hace que la dirección (y opcionalmente el puerto) de origen del paquete sean reescritos para traducción de dirección de red. Mediante la opción '--to-source' debe indicarse el origen a usar.


MASQUERADE

Esta es una forma especial, restringida de SNAT para direcciones IP dinámicas, como las que proveen la mayoría de los proveedores de servicios de Internet (ISPs) para modems o línea de abonado digital (DSL).

No hay comentarios: