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