Un filtro de paquetes es un software que examina la cabecera de los paquetes según van pasando, y decide la suerte del paquete completo. Podría decidir descartarlo (DROP) (esto es, como si nunca lo hubiera recibido), aceptarlo (ACCEPT) (dejar que pase), o cosas más complicadas.
En Linux, el filtrado de paquetes está programado en el núcleo (como módulo o como componente estático), y hay algunas cosas curiosas que podemos hacer con los paquetes, pero aún sigue ahí el principio general de mirar las cabeceras para decidir la suerte del paquete.
Control. Seguridad. Vigilancia.
cuando está usando una máquina Linux para conectar su red interna a otra (por ejemplo, Internet), tiene la oportunidad de permitir ciertos tipos de tráfico, y restringir otros. Por ejemplo, la cabecera de un paquete contiene la dirección de destino del paquete, de manera que puede evitar que salgan los que van a cierto sitio fuera de la red. Otro ejemplo: yo uso le Netscape para acceder a los archivos de Dilbert. Hay anuncios de doubleclick.net en la página, y Netscape malgasta mi tiempo bajándoselos alegremente. Diciéndole a mi filtro de paquetes que no permita que ningún paquete vaya de o hacia las direcciones de doubleclick.net resuelve el problema (hay mejores maneras de hacer esto, sin embargo: vea el Junkbuster).
cuando su máquina Linux es lo único entre el caos de Internet y su bonita y ordenada red, es bueno saber que puede restringir lo que llega aporreando su puerta. Por ejemplo, podríamos permitir todo lo que salga de la red, pero puede que esté preocupado por el bien conocido «Ping de la Muerte» que puede llegar de gente maliciosa del exterior. En otro ejemplo, podría ser que no quisiera que la gente de fuera pueda hacer telnet a su máquina Linux, incluso aunque todas sus cuentas tengan clave. Quizá quiera (como la mayoría) ser un observador en Internet, y no un servidor (). Simplemente, no quiere dejar que nadie se conecte, haciendo que el filtro de paquetes rechace los paquetes entrantes que se usan para establecer conexiones.
algunas veces, una máquina mal configurada de la red local puede decidir vomitar paquetes al mundo exterior. Es bueno decirle al filtro de paquetes que le avise si ocurre algo anormal; quizá usted pueda hacer algo al respecto, o puede que sencillamente sea curioso por naturaleza.
Los núcleos de Linux han tenido capacidades de filtrado de paquetes de desde la serie 1.1. La primera generación, basada en el ipfw de BSD, fue adaptada por Alan Cox a finales de 1994. Fue mejorada por Jos Vos y otros para Linux 2.0; la herramienta «ipfwadm», ejecutada en espacio de usuario, controlaba las reglas de filtrado del núcleo. A mediados de 1998, rehíce en gran medida esa parte del núcleo, con la ayuda de Michael Neuling, e introduje la herramienta «ipchains». Finalmente, a mediados de 1999 hubo otra reescritura del núcleo, y la herramienta de cuarta generación, «iptables», para Linux 2.4. Es en esta iptables en la que se centra este COMO.
Neceista un núcelo que contenga la infraestructura netfilter. Netfilter es un área de trabajo general dentro del núcleo, a la que pueden conectarse otras cosas (como el módulo de iptables). Esto significa que necesitará un núcleo 2.3.15 o más nuevo, y responder «Y» a CONFIG_NETFILTER en la configuración del núcleo.
La herramienta iptables
se comunica con el núcleo y le dice qué
paquetes filtrar. A menos que sea programador, o muy curioso, es ésta la
manera en que controlará el filtrado de paquetes.
La heramienta iptables
inserta y elimina reglas de la tabla de
filtrado de paquetes del núcleo. Esto significa que cualquier cosa que
establezca, se perderá cuando reinicie; vea
Hacer permanentes las reglas para estar seguro de que serán
restauradas la siguiente vez que Linux arranque.
iptables
es un sustituto para ipfwadm
e
ipchains
: vea
Uso de ipchains e ipfwadm para ver cómo evitar iptables y evitarse muchos dolores de
cabeza si ya estaba usando una de estas otras herramientas.
La configuración que su cortafuegos tiene en este momento está almacenada en el núcleo, de manera que se perderá cuando reinicie. En mi lista TODO (Por Hacer) está escribir iptables-save e iptables-restore. Cuando existan, serán increíbles, lo prometo.
Mientras tanto, escriba las órdenes necesarias para configurar sus reglas en un guión (script) de inicio. Asegúrese de que hace algo inteligente en el caso de que alguna de las reglas falle (normalmente «exec /sbin/sulogin»)