Firewalls con Linux

Menú 
  1. Firewalls, ¿Qué son?
  2. Evaluar la necesidad de un firewall.
  3. tcpd: TCP Wrapping.
  4. ipfwadm.
  5. ipchains.
  6. Herramientas firewall gratuitas y complementos para Linux
  7. Firewalls comerciales
  8. Otros recursos

 

 4. ipfwadm.

   ipfwadm es una herramienta de filtrado de paquetes para Linux. Se usa para configurar, mantener e inspeccionar el firewall.

   ipfwadm por si solo es una buena solución de firewall porque permite establecer normas estrictas sobre tráfico entrante y saliente, Su sintaxis básica es así:

ipfwadm [categoría_norma] [accion_normativa] [normativa] [interfaz] [objetivo]

  • La categoría de la norma es el tipo de norma que es está definiendo y si se aplica a cuenta, tráfico entrante, tráfico saliente, tráfico normal (no filtrado) o tráfico enmascarado de paquetes.

  • La acción de la normativa es lo que se quiere hacer con la normativa, esto es, que sea insertada, adjuntada o borrada.

  • La normativa es lo que se quiere hacer con el tráfico, esto es, si se quiere aceptarlo, negarlo o rechazarlo.

  • La interfaz es la interfaz de red a la que se quiere aplicar esta norma.

  • El objetivo es la dirección IP (y quizá el puerto) a la que se aplica esta norma.

   ipfwadm ofrece cinco categorías de normas:

 -A [dirección]  Para especificar las normas de cuenta de IP. "dirección" puede ser "in", "out" o ambas (por defecto)
-F Para especificar normas de envío.
 -I Para especificar normas de filtrado de entrada.
-O Para especificar normas de filtrado de salida.
-M Para especificar normas de enmascaramiento de IP. El enmascaramiento es la práctica de una máquina que ejecute ipfwadm para abastecer a múltiples máquinas con rutas para internet.

   Imaginemos que queremos rechazar el tráfico ppp de 150.128.47.69. Entonces deberíamos comenzar así:

ipfwadm -I

   Los siguiente es darle a ipfwadm un comando. Los comandos disponibles son los siguientes:

 -a [normativa]  Para adjuntar una normativa
 -d [normativa]  Para borrar una normativa
 -f  Vacía todas las normativas
 -h  Ayuda
 -i [normativa]  Para insertar una normativa
 -l  Lista las normativas
 -p [normativa]  Establece la normativa por defecto

   Las normativas pueden ser: accept, deny o reject.

   Así que el comando ipfwadm para el ejemplo seguiría asi:

ipfwadm -I -a deny

   Ahora queda añadir parámetros de identificación al comando. Las posibilidades del ipfwadm son:

 -D [dirección]  Para especificar la dirección de destino
 -P [protocolo]  Para especificar el protocolo
 -S [dirección]  Para especificar la dirección fuente
 -W [interfaz]  Para especificar la interfaz de red a la que se está aplicando la normativa

   Ahora nuestra línea de comandos de ejemplo quedaría así:

ipfwadm -I -a deny -W ppp0 -S 150.128.47.69

   ipfwadm soporta otras opciones interesantes, como son:

 -b  Para aplicar la normativa tanto al tráfico entrante como al saliente. Se usa con -a, -i o -d
 -e  Obtiene una salida más extensa
 -m  Para especificar que los paquetes que vengan bajo esta normativa estén enmascarados como si vinieran del host local
 -n  Saca las IPs en formáto numérico
 -o  Activa el logging kernel en todos lo paquetes bajo esta normativa
 -r [puerto]  Para dirigir los paquetes hacia un socket local
 -v  Obtiene una salida "verbose"

   La configuración de ipfwadm dependerá mucho de las necesidades específicas que se tengan, pero es muy interesante hacer permanente la configuración básica.

   Un método de hacerlo es arrancar el ipfwadm desde /etc/rc.d (directorio varía según la distribución) y especificar esta configuración desde el script rc-local.

   Debería iniciarse el script con una política de negación de accesos por defecto:

ipfwadm -O -p deny

ipfwadm -I -p deny

ipfwadm -F -p deny

   A partir de aqui se puede, por ejemplo, permitir un tráfico no restringido en una LAN interna.