En el comienzo de cada paquete dice donde va, de donde viene, el tipo del paquete, y otros detalles administrativos. Esta parte del paquete se llama encabezado. El resto del paquete, contiene los datos reales que se están transmitiendo, lo que normalmente es llamado cuerpo.
Algunos protocolos, tal como TCP, que se usa para tráfico de la web, correo y logins remotos, usan el concepto de 'conexión` -- antes de que cualquier paquete de datos reales se envien, varios paquetes de configuración (con encabezados especiales) son intercambiados diciendo `Quiero conectarme', `OK ' y `Gracias'. Luego, se intercambian paquetes normales.
Un filtro de paquetes es una porción de software que analiza el encabezado de los paquetes cuando ellos lo atraviesan, y decide el destino del paquete entero. Podría decidir denegar el paquete (ie. deseche el paquete como si nunca lo hubiese recibido), aceptar el paquete (ie. permita que el paquete lo atraviese), o rechazar el paquete (parecido a denegar, pero le dice a la fuente del paquete que así lo ha hecho).
Bajo Linux, el filtrado de paquetes está implementado en el kernel, y hay unas cosas más complicadas que podemos hacer con paquetes, pero el principio general es el de mirar los encabezados y decidir el destino del paquete.
Control:
Cuando acostumbra una máquina Linux para conectar su red interna a otra red (digamos, Internet) usted tiene la oportunidad de permitir ciertos tipos de tráfico, y desaprobar otros. Por ejemplo, el encabezado de un paquete contiene la dirección del destino del paquete, así que usted puede prevenir paquetes que van a una cierta parte de la red externa. Como otro ejemplo, uso Netscape para acceder a los archivos de Dilbert. Hay anuncios de doubleclick.net en la página, y Netscape alegremente pierde mi tiempo descargandolos. Diciendo al filtro de paquetes que no permita ningún paquete hacia o desde las direcciones propiedad de doubleclick.net ese problema resuelve (aunque hay maneras mejores de hacerlo).
Seguridad:
Cuando su máquina Linux es la única cosa entre el caos de Internet y su agradable, ordenada red, es bueno conocer que puede restringir lo que viene a su puerta. Por ejemplo, usted podría permitir que algo salga de su red, pero podría preocuparse por el muy conocido 'Ping de la Muerte' que llega desde los intrusos malvados. Como otro ejemplo, usted podría no querer que los intrusos hagan telnet a su máquina Linux, aunque todas sus cuentas tengan contraseñas, telnetting de los forasteros a su Linux embala, a pesar de que todas sus cuentas tengan contraseñas; quizá desea (como la mayoría de las personas) ser un observador en la Internet, y no un servidor (en otro caso)--simplemente no permitirle a nadie conectarse, teniendo el filtro de paquetes rechazando los paquetes entrantes que levantan (inician) las conexiones.
Vigilancia:
A veces una máquina mal configurada en la red local decidirá arrojar paquetes al mundo externo. Es bueno decirle al filtro de paquetes que le permita saber si algo anormal ocurre, quizás pueda hacer algo, o simplemente quizás, usted es curioso por naturaleza.
Si no es así, usted necesita un kernel que tenga ip firewall chains. Primero, descargue los fuentes del kernel que desea. Si tiene el kernel 2.1.102 o superior, no necesitará parcharlo. Caso contrario, aplique el parche de la página web listada anteriormente, y configurelo como se indica abajo. Si no sabe hacerlo, no tenga miedo -- lea el Kernel-HOWTO.
Las opciones de la configuración que usted necesitará para las series 2.0 del kernel son:
CONFIG_EXPERIMENTAL=y CONFIG_FIREWALL=y CONFIG_IP_FIREWALL=y CONFIG_IP_FIREWALL_CHAINS=y
Para las series 2.1 o 2.2 del kernel:
CONFIG_FIREWALL=y CONFIG_IP_FIREWALL=yLa herramienta ipchains le dice al kernel qué paquetes se filtran. A menos que usted sea programador, o muy curioso, está es la forma como controlará el filtrado de paquetes.