NOMBRE¶
ipfwadm - Administración del cortafuegos y contabilidad IP
SINOPSIS¶
ipfwadm -A parámetros [opciones]
ipfwadm -I parámetros [opciones]
ipfwadm -O parámetros [opciones]
ipfwadm -F parámetros [opciones]
ipfwadm -M [-l | -s] [opciones]
DESCRIPCIÓN¶
Ipfwadm se utiliza para configurar, mantener e inspeccionar los
cortafuegos IP y las reglas de contabilidad del núcleo Linux. Estas
reglas se pueden dividir en cuatro categorías diferentes: contabilidad
de paquetes IP, cortafuegos de entrada IP, cortafuegos de salida IP y
cortafuegos de reenvío. Para cada una de estas categorías se
mantiene una lista separada de reglas.
Las prestaciones de cortafuegos y de contabilidad del núcleo Linux
proporcionan mecanismos para contabilizar paquetes IP, para construir
cortafuegos basados en el filtrado a nivel de paquetes, para construir
cortafuegos que usen servidores proxy transparentes (mediante
redirección de paquetes a conectores (sockets) locales), y para el
reenvio de paquetes enmascarados (con IP-masquerade). La administración
de estas funciones se mantiene en el núcleo mediante cuatro listas
separadas, cada una de las cuales contiene reglas: ninguna, una, dos... Cada
regla contiene información específica sobre las direcciones
origen y destino, protocolos, número de puerto y algunas otras
características. Un paquete se ajusta a una regla cuando las
características de una regla se ajustan a la dirección IP de ese
paquete. Estas reglas se pueden dividir en cuatro categorías
diferentes:
- Reglas de contabilidad del cortafuegos IP:
- Se usan para todos los paquetes IP que son enviados o recibidos por el
interfaz local de red. Cada paquete se compara con la lista de reglas, y
en caso de coincidencia se incrementan los contadores de paquetes y bytes
asociados con las reglas.
- Reglas de entrada del cortafuegos IP:
- Estas reglas se aplican a los paquetes IP entrantes. Todos los paquetes
que llegan por algún interfaz local se comprueban con las reglas de
entrada. La primera regla que se verifica determina la política que
se usa. Cuando no se ajusta a ninguna regla se utiliza la política
por defecto.
- Reglas de salida del cortafuegos IP:
- Estas reglas definen los permisos para enviar paquetes IP. Todos los
paquetes que están listos para ser enviados por un interfaz local
son comprobados con las reglas de salida. La primera regla que se cumple
determina el comportamiento que se aplica. Cuando no se ajusta a ninguna
regla se utiliza la política por defecto.
- Reglas de reenvío del cortafuegos IP:
- Estas reglas definen los permisos para el reenvío de paquetes IP.
Todos los paquetes enviados por un host remoto con destino a otro host
remoto se comprueban con las reglas de reenvío. La primera regla
que verifica un paquete determina la política que se
utilizará. Cuando no se verifica ninguna regla, se aplica el
comportamiento por defecto.
Para cada una de estas categorías se mantiene una lista separada de
reglas. Véase
ipfw(4) para más detalles.
OPCIONES¶
Las opciones reconocidas por
ipfwadm se dividen en varios grupos
diferentes.
CATEGORÍAS¶
Las siguientes opciones se usan para seleccionar la categoría de reglas a
las que se aplican los comandos:
- -A [dirección]
- Reglas de contabilidad IP. Opcionalmente se puede especificar un
sentido (in, out, both), indicando si
sólo se deben contar paquetes de entrada, de salida o de ambos
tipos. La opción por defecto es both.
- -I
- Reglas de entrada al cortafuegos IP.
- -O
- Reglas de salida del cortafuegos IP.
- -F
- Reglas de reenvío del cortafuegos IP.
- -M
- Administración de "IP masquerading". Esta
categoría sólo se puede usar en combinación con el
comando -l (list) o el comando -s (fijar tiempo de
expiración).
Se tiene que especificar exactamente una de estas opciones.
COMANDOS¶
Las siguientes opciones especifican la acción concreta que hay que
realizar. Sólo se puede especificar una de ellas en la línea de
comandos, salvo que se indique otra cosa en la descripción.
- -a [comportamiento]
- Añade una o más reglas al final de la lista seleccionada.
Para la contabilidad no se puede especificar ningún comportamiento.
Para el cortafuegos es necesario especificar una de las siguientes
políticas: accept, masquerade (válida
sólo para reglas de reenvío), deny o reject.
Cuando los nombre de origen y/o destino se resuelven con más de una
dirección, se añadirá una regla para cada posible
combinación.
- -i [comportamiento]
- Inserta una o más reglas al principio de la lista seleccionada. Vea
la descripción del comando -a para más detalles.
- -d [comportamiento]
- Borra una o más entradas al comienzo de la lista seleccionada. La
semántica es idéntica a la de los comandos anteriores. Los
parámetros especificados deben coincidir exactamente con los dados
en los comandos añadir o insertar. En otro caso, si no se ajusta a
nada, no se borrará ninguna regla. Sólo se borra la primera
coincidencia.
- -l
- Lista todas las reglas de la lista seleccionada. Este comando se puede
combinar con el comando -z (reiniciar el contador a cero). En ese
caso los contadores de bytes y de paquetes se reinician inmediatamente
tras mostrar sus valores actuales. Salvo que la opción -x
esté presente, los contadores de paquetes (si son listados) se
mostrarán como númeroK o númeroM donde 1K significa
1000 y 1M significa 1000K (redondeado al valor entero más cercano).
Vea también las opciones -e y -x para ver más
posibilidades.
- -z
- Reinicia los contadores de bytes y de paquetes de todas las reglas de la
lista seleccionada. Este comando se puede combinar con el comando
-l (list).
- -f
- Vacía la lista de reglas seleccionada.
- -p política
- Cambia la política por defecto para el tipo seleccionado de
cortafuegos. La política dada tiene que ser una de accept,
masquerade (sólo válida para reglas de
reenvío), deny o reject. La política por
defecto se utiliza cuando no se encuentra ninguna regla que se ajuste.
Esta operación sólo es válida para cortafuegos IP,
esto es, en combinación con las opciones -I, -O o
-F.
- -c
- Comprueba si este paquete IP sería aceptado, denegado o rechazado
por el tipo de cortafuegos seleccionado. Esta operación sólo
es válida para cortafuegos IP en combinación con las
opciones -I, -O
o -F.
- -s tcp tcpfin udp
- Cambia los valores de caducidad (timeout) usados en el enmascaramiento.
Este comando siempre toma tres parámetros, que representan valores
de caducidad (en segundos) para sesiones TCP, sesiones TCP tras recibir un
paquete FIN y paquetes UDP, respectivamente. Un valor de caducidad 0
significa que el valor actual de caducidad, de la entrada correspondiente,
se preserva. Esta operación sólo está permitida en
combinación con la opción -M.
- -h
- Ayuda. Da una descripción (actualmente breve) de la sintaxis del
comando.
PARÁMETROS¶
Los siguientes parámetros se pueden usar en combinación con los
comandos
-a,
-i,
-d o
-c:
- -P protocolo
- El protocolo de la regla o del paquete a comprobar. El protocolo
especificado puede ser tcp, udp, icpm o all.
El protocolo all se adaptará a todos los protocolos y se
toma por defecto cuando se omite esta opción. all no se
puede usar en combinación con el comando -c.
- -S dirección[/máscara] [puerto...]
- Especificación de origen (obligatorio). La dirección puede
ser bien un nombre de host, un nombre de red o una dirección IP
concreta. La máscara puede ser una máscara de red o un
número que indique el número de bits con valor 1 a la
izquierda de la máscara de red. Es decir, son equivalentes la
máscara 255.255.255.0 y el número 24. El origen puede
incluir una o más especificaciones de puertos o tipos ICMP. Cada
uno de ellos puede ser un nombre de servicio, número de puerto o un
tipo ICPM (numérico). En el resto de este párrafo, puerto
significa o una especificación de puerto o un tipo ICPM. Una de
estas especificaciones puede ser un rango de puertos, con el formato
puerto:puerto. Además, el número total de puertos
especificados con las direcciones origen y destino no debe ser mayor que
IP_FW_MAX_PORTS (actualmente 10). Aquí un rango de puertos cuenta
como dos puertos.
Los paquetes que no son el primer fragmento de un paquete TCP,
UDP o ICMP son siempre aceptados por el cortafuegos. Por
motivos de contabilidad, estos segundos y posteriores fragmentos se tratan
de forma especial para poderlos contar de alguna forma. El puerto
número 0xFFFF (65535) se usa para ajustarse con el segundo y
siguientes fragmentos de paquetes TCP o UDP. Estos paquetes se
tratarán para propósitos de contabilidad como si sus puertos
fueran 0xFFFF. El número 0xFF (255) se usa para ajustarse con el
segundo y siguientes fragmentos para contabilidad de paquetes ICPM. Estos
paquetes se tratarán, para propósitos de contabilidad, como
si sus tipos ICPM fueran 0xFF. Observe que los comando y protocolo
especificados pueden implicar restricciones sobre el puerto que sea
especificado en combinación con los protocolos tcp,
udp o icpm. También, cuando se especifica el comando
-c, se requiere exactamente un puerto.
- -D dirección[/máscara] [puerto...]
- Especificaciones de destino (obligatorio). Vea la descripción de la
opción -S (origen) para una descripción detallada de
la sintaxis. Observe que los tipos ICMP no están permitidos
en combinación con la opción -D; los tipos
ICMP sólo se pueden especificar tras la bandera
-S.
- -V dirección
- La dirección opcional de un interfaz a través del cual se
envía o recibe un paquete. dirección puede ser un
nombre de host o una dirección IP. Cuando se especifica un nombre
de host, éste se debe resolver a exactamente una dirección
IP. Cuando se omite esta opción, se supone la dirección
0.0.0.0, que tiene un significado especial y se ajustará a
cualquier dirección de interfaz. Para el comando -c, esta
opción es obligatoria.
- -W nombre
- Nombre opcional de un interfaz a través del cual se envían o
reciben paquetes. Cuando se omite, se supone una cadena de caracteres
vacía, que tiene un significado especial y se ajustará a
cualquier nombre de interfaz.
OTRAS OPCIONES¶
Se pueden especificar las siguientes opciones adicionales:
- -b
- Modo Bidireccional. La regla se ajustará con paquetes IP en ambas
direcciones. Esta opción sólo es válida en
combinación con los comandos -a, -i o -d.
- -e
- Salida extendida. Esta opción hace al comando -l mostrar
también la dirección del interfaz y las opciones de la regla
(si existe). Para las listas del cortafuegos, también se
mostrarán los contadores de bytes y paquetes (por defecto
sólo se muestran los contadores para las reglas de contabilidad) y
se muestran las máscaras TOS. Cuando se usa en combinación
con -M, también mostrará la información
relacionada con la secuencia de números delta. Esta opción
sólo es válida en combinación con el comando
-l.
- -k
- Ajustar sólo a paquetes TCP con el bit ACK activo. Esta
opción sólo es válida en combinación con los
comandos -a, -i o -d, y el protocolo TCP.
- -m
- Enmascaramiento de paquetes aceptados para reenvío. Cuando se
utiliza esta opción, los paquetes aceptados por esta regla
serán enmascarados como si fueran originales del host local.
Además, los paquetes de respuesta serán reconocidos como
tales y serán desenmascarados automáticamente pasando el
cortafuegos de reenvío. Esta opción es sólo
válida para las reglas de reenvío con comportamiento
accept (o cuando se haya especificado accept como el
comportamiento por defecto), y sólo se puede usar cuando se compila
el núcleo con la opción CONFIG_IP_MASQUERADE.
- -n
- Salida numérica. Las direcciones IP y números se
imprimirán en formato numérico. Por defecto, el programa
intentará mostrarlos como nombres de host, nombres de red o
servicios (cuando sea aplicable).
- -o
- Activa el registro del núcleo de paquetes ajustados. Cuando se pone
esta opción para una regla, el núcleo de Linux
imprimirá cierta información básica de todos los
paquetes que se ajusten a ella mediante printk(). Esta
opción sólo será efectiva cuando se compile el
núcleo con la opción CONFIG_IP_FIREWALL_VERBOSE. Esta
opción sólo es válida en combinación con los
comandos -a, -i o -d.
- -r [puerto]
- Redirecciona paquetes a un conector (socket) local. Cuanto se utiliza esta
opción, los paquetes aceptados por la regla serán
redireccionados a un conector local, incluso si fueran redireccionados a
un host remoto. Si el puerto redireccionado es 0, que es el valor por
defecto, se usará el puerto destino del paquete como el puerto de
redirección. Esta opción es sólo válida en las
reglas de entrada del cortafuegos con comportamiento accept y
sólo puede ser utilizada cuando el núcleo de Linux
está compilado con la opción
CONFIG_IP_TRANSPARENT_PROXY.
- -t andmask xormask
- Máscara utilizada para modificar el campo TOS en la cabecera IP.
Cuando un paquete se acepta (con o sin masquerade) por una regla del
cortafuegos, a su campo TOS primero se le hace un Y-lógico
con la máscara andmask y al resultado se le aplica un
O-lógico exclusivo con la máscara xormask. La
máscara se debe especificar en valores de 8 bits hexadecimales.
Esta opción sólo es válida en combinación con
los comandos -a, -i o -d, y no tendrá efectos
cuando se utilice en combinación con reglas de contabilidad o de
cortafuegos para rechazar o denegar un paquete.
- -v
- Salida detallada. Imprime información detallada de la regla o
paquete añadido, borrado o comprobado. Esta opción
sólo tendrá efecto con los comandos -a, -i,
-d o -c.
- -x
- Expande números. Muestra el valor exacto de los contadores de bytes
y de paquetes, en lugar de sólo los números redondeados a
múltiplos de 1K o de 1M (múltiplo de 1000K). Esta
opción sólo tendrá efecto cuando se muestren los
contadores de cualquier forma (vea la opción -e).
- -y
- Solo ajusta paquetes TCP con el bit SYN activado y el bit ACK desactivado.
Esta opción sólo es válida en combinación con
los comandos -a, -i o -d, y el protocolo TCP.
FICHEROS¶
/proc/net/ip_acct
/proc/net/ip_input
/proc/net/ip_output
/proc/net/ip_forward
/proc/net/ip_masquerade
VÉASE TAMBIÉN¶
ipfw(4)
AUTOR¶
Jos Vos <jos@xos.nl>
X/OS Expert in Open Systems BV, Amsterdam, The Netherlands