Próxima página Página anterior Contenido

2. Fundamentos sobre el Filtrado de Paquetes

¿2.1 Qué?

Todo el tráfico a través de una red se envía en la forma de paquetes. Por ejemplo, descargando este paquete (que dice 50k de tamaño) podría suceder que reciba algo como 36 paquetes de 1460 bytes cada uno (por poner números al azar).

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.

¿2.2 Por qué?

Control. Seguridad. Vigilancia.

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.

¿2.3 Cómo?

Un kernel con filtrado de paquetes.

Necesita un kernel que tenga el nuevo IP firewall chains. Puede saber si el kernel que está ejecutando actualmente lo tiene instalado, simplemente buscando el archivo '/proc/net/ip_fwchains'.

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=y


La 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.

ipchains

Esta herramienta reemplaza a ipfwadm usado en el antíguo código de Ip firewall. El paquete también contiene un shell script llamado ipfwadm-wrapper el cual le permitirá hacer filtrado tal como se hacia antes. No debe usar este script a menos que desee una manera rápida de actualizar un sistema que use ipfwadm (es más lento, y no verifica argumentos, etc). En ese caso, no necesita mucho este HOWTO. Vea el Apéndice Diferencia entre ipchains e ipfwadm y el Apéndice Usando 'ipfwadm-wrapper' script para más detalles sobre problemas de ipfwadm

Próxima página Página anterior Contenido