En el principio de cada paquete se dice a donde va, de donde viene, el tipo de paquete y otros detalles de administración. El principio del paquete se llama cabecera. El resto contiene los datos que estan siendo transmitidos, que normalmente se llama cuerpo.
Algunos protocolos, como el TCP, el cual se usa para el trafico en la web,
correo y logins remotos, utiliza el concepto de conexión ( antes de
mandar el paquete se mandan varios de configuración, con unas cabecares
especiales, y las máquinas se con
munican diciendose, ' te has conectado', 'si', 'vale', 'gracias'. Los paquetes
normales se mandan.
En Linux, el filtrado de paquetes se crea en el kernel (como un módulo por el momento) y hay pocas cosas que se pueden hacer con los paquetes, pero como principio debemos mirar las cabeceras y decidir el destino del paquete.
Cuando se esta usando Linux para conectar la máquina a otra red (como internet) tienes la oportunidad de permitir ciertos tipos de trafico y de desactivar otros. Por ejemplo, la cabecera de un paquete permite la direccion del destinatario del paquete, asi tu puedes prevenir que los paquetes vayan a cierta parte de la red. Otro ejemplo seria, cuando se accede con Netscape a los archivos Dilbert. Hay anuncios de doubleclick.net en la página y Netscape me hace perder el tiempo descargandolos. Diciendole al filtrado que no permita los paquetes que pertenezcan a doubleclick.net resolveremos el problema (Hay mejores formas de hacer esto).
Cuando tu máquina Linux es lo único entre el caos de internet y el maravilloso orden de tu red, es bueno saber que tu puedes restringir el aceso a lo que llama a tu puerta. Por ejemplo, tu debes permitir cualquier cosa que salga fuera de tu red, pero debes tener cuidado con el conocido 'Ping de la muerte' que proviene de otras máquinas. Otro ejemplo seria, no permitir a la gente de fuera que hiciera telnet en tu máquina aunque tubieran todas las cuentas y claves de tu máquina. Pero seguranmente (como casi toda la gente) tu seras un observador y no un servidor. Simplemente no dejes nada conectado, mediante un reject a todos los paquetes que pidan activar una conexión.
Algunas veces una mala configuración de una máquina
en una red local puede decidir devolver todos los paquetes al resto del mundo.
Se deberia decirle al filtro que nos avise cuando ocurra algo anormal. En
este caso tu deberias hacer algo aunque sea por la natural curiosidad.
Para utilizarlo te hace falta un kernel que tenga la infraestructura de netfilter; netfilter es un framework general dentro del kernel de Linux, con otras cosas (como el modulo iptables) que se pueden meter. Esto significa que tu necesitas el kernel 2.3.15 y responder que si a la pregunta CONFIG_NETFILTER, en la configuraciòn del kernel.
La herramienta de iptables le habla al kernel y le dice que paquetes tiene que filtrar. A no ser que seas programador o estremadamente curioso, es como controlaras el filtrado de paquetes.
iptables reemplazo a ipfwadm y a ipchains. Mira Using ipchains and ipfwadm para aprender iptables sin miedo, si estas usando una de estas herramientas.
Mientras tanto pon los comandos requeridos y las reglas en un scrpit que se inicialize al arrancar la máquina. Comprueba que haces algo inteligente si uno de los comandos falla (normalmente 'exec /sbin/sulogin').