Provided by:
manpages-es-extra_0.8a-17_all 
NAME
ipchains - IP administracion de cortafuegos
SINOPSIS
ipchains -[ADC] cadena especificacion-de-regla [opciones]
ipchains -[RI] cadena numero-regla especificacion-de-regla [opciones]
ipchains -D cadena numero-regla [opciones]
ipchains -[LFZNX] [cadena] [opciones]
ipchains -P cadena objetivo [opciones]
ipchains -M [ -L | -S ] [opciones]
DESCRIPCI'ON
Ipchains se usa para configurar, mantener e inspeccioar las reglas de
cortafuegos IP del nucleo Linux. Estas reglas se pueden dividir en 4
categorias diferentes: la cadena de entrada IP, la cadena de salida IP,
la cadena de reenvio IP y las cadenas definidas por el usuario.
Para cada una de estas categorias se mantiene una tabla de reglas
separada, cualquiera de las cuales podria remitir a una de las cadenas
definidas por el usuario.
Vaease ipfw(4) para mas detalles.
OBJETIVOS
Una regla de cortafuegos especifica citerios para un paquete y un
objetivo. Si el paquete no concuerda se examina la siguiente regla de
la cadena; si concuerda, la siguiente regla se especifica por el valor
del objetivo, que puede ser el nombre de una cadena definida por el
usuario o uno de los valores especiales ACCEPT, DENY, REJECT, MASQ,
REDIRECT o RETURN.
ACCEPT significa dejar pasar el paquete. DENY significa tirar el
paquete al suelo (denegar). REJECT significa lo mismo que denegar,
pero mas educado y facil de depurar, ya que devuelve en mensaje ICMP al
remitente indicando que el paquete fue elliminado. (Observe que DENY y
REJECT son lo mismo para paquetes ICMP).
MASQ es solo legal para reenvio y cadenas definidas por el usuario, y
solo se puede usar cuando el nucleo esta compilado con
CONFIG_IP_MASQUERADE definida. Con esto, los paquetes se enmascaran
como si estuvieran originados desde el host local. Mas aun, los
paquetes devueltos seran reconocidos y desenmascarados automaticamente
y entonces pasados a la cadena de reenvio.
REDIRECT es solo legal para las cadenas de entrada y definidas por el
usuario, y solo se puede usar cuando en nucleo linux esta compilado con
CONFIG_IP_TRANSPARENT_PROXY definido. Con esto, los paquetes se
redirigen al socket local, incluso si son enviados a un host remoto. Si
el puerto de redireccion especificado es 0, que es el valor por
defecto, el puerto objetivo de un paquete se usa como puerto de
redireccion. Cuando se usa este objetivo, se puede suministrar un
argumento extra, el numero de puerto.
Si se llega al final de una cadena definida por el usuario, o se
concuerda con una regla con objetivo RETURN, se examina la siguiente
regla de la cadena previa (llamada). Si se llega al final de una cadena
predefinida o se concuerda con una regla de la cadena predefinida con
el objetivo RETURN el objetivo especificado por la politica de la
cadena determina el destino del paquete.
OPCIONES
Las opciones que reconoce ipchains se pueden dividir en varios grupos
diferentes.
MANDATOS
Estas opciones indican la accion especifica que hay que realizar; solo
se puede especificar una de ellas en la linea de mandatos, salvo que
mas abajo se especifique lo contrario. En todas las versiones largas de
los nombres de mandatos y nombres de opciones, solo es necesario
especificar suficientes letras para asegurarse de que ipchains puede
distinguirla de las otras opciones.
-A, --append
Anade una o mas reglas al final de la cadena seleccionada.
Cuando los nombres origen y/o destino se resuelven a mas de una
direccion, se anade una nueva regla para cada posible
combinacion de direccion.
-D, --delete
Elimina una o mas reglas de la cadena seleccionada. Hay dos
versiones de este comando: la regla se puede especificar como el
numero de la cadena (empezando en 1 para la primera regla) o
como una regla que concuerde.
-R, --replace
Sustituye una regla de la cadena seleccionada. Si los nombres
origen y/o destino se resuelven a multiples direcciones, el
mandato fallara. Las reglas se numeran comenzando por 1.
-I, --insert
Inserta una o mas reglas en la cadena seleccionada con el numero
indicado de regla. Asi, si la regla tiene el numero 1 la regla o
reglas se insertan al principio de la cadena.
-L, --list
Muestra todas las reglas de la cadena seleccionada. Si no hay
cadena seleccionada, se listan todas las cadenas. Es legal
especificar la opcion -Z (cero) tambien, en cuyo caso no se
puede especificar cadena. La salida exacta esta determinada por
los otros argumentos indicados.
-F, --flush
Vacia la cadena seleccionada. Es equivalente a borrar todas las
reglas una a una.
-Z, --zero
Pone a cero los contadores de octetos y paquetes de todas las
cadenas. Es legal specificar la opcion -L, --list (list)
tambien, para ver los contadores inmediatamente antes de que
sean borrados; si se hace esto no se puede indicar una cadena
especifica. (Esto mostrara y borrara todo).
-N, --new-chain
Crea una nueva cadena definida por el usuario con el nombre
dado. No puede haber un objetivo con ese nombre existente.
-X, --delete-chain
Borra la cadena definida por el usuario especificada. No pueden
haber referencias a la cadena (si hay tiene que borrar o
sustituir las referidas reglas antes de poder borrar la cadena).
Si no se dan argumentos, intentara eliminar todas las cadenas no
predefinidas.
-P, --policy
Fija la politica para la cadena con un destino dado. Vease la
seccion OBJETIVOS para los objetivos legles. Solo las cadenas no
definidas por el usuario pueden tener politicas, y ni las
cadenas predefinidas ni las definidas por el usuario pueden ser
objetivos de politica.
-M, --masquerading
Esta opcion permite ver las conexiones enmascaradas actualmente
(en conjuncion con la opcion -L) o fija los parametros de
enmascaramiento del nucleo (con la opcion -S).
-S, --set tcp tcpfin udp
Cambia los plazos de tiempo (timeouts) usados para
enmascaramiento Este comando siempre toma 3 parametros, que
representan los valores de los temporizadores (en segundos) para
sesiones TCP, sesiones TCP tras recibir un paquete FIN, y
paquetes UDP respectivamente. Un valor de temporizador 0
significa que se conserva el valor correspondiente de la
entrada. Esta opcion solo esta permitida en combinacion con la
bandera -M.
-C, --check
Verifica el paquete dado con la regla seleccionada. Es
extremadamente util para comprobar, ya que se usan las mismas
rutinas del nucleo para verificar paquetes "reales" se usan para
verificar este paquete. Se puede usar para verificar cadenas
definidas por el usuario y cadenas predefinidas. Los mismos
argumentos que se usan para especificar reglas de cortafuegos
son los que se usan para construir el paquete el paquete que se
quiere comprobar. En particular son obligatorias las banderas -s
(origen), -d (destino), -p (protocolo) y -i (interfaz).
-h Ayuda. Da una descripcion (actualmente breve) de la sintaxis
del mandato.
PAR'AMETROS
Los siguientes parametros afectan las especificaciones de reglas (como
se usan en los mandatos add, delete, replace, append y check).
-p, --protocol[!] protocol
El protocolo de la regla del paquete que se quiere verificar.
El protocolo especificado puede ser uno de los siguientes: tcp,
udp, icmp o all, o puede ser un valor numerico, que representa
uno de estos protocolos u otro diferente. Tambien esta permitido
un protocolo de nombre de /etc/protocols. Un argumento "!"
antes del protocolo invierte el test. El numero cero es
equivalente a all. Protocolo all concordara con cualquier
protocolo y es tomado por defecto cuando se omite esta opcion.
All no se puede usar en combinacion con el mandato check.
-s, --source [!] direcci'on/m'ascara] [!] [puerto[:puerto]]
Especificacion de origen. Direcci'on puede ser un nombre de
host, un nombre de red o una simple direccion IP. La m'ascara
puede ser una mascara de red o un simple numero que especifique
el numero de unos (1) a la izquierda en la mascara de red. Asi,
una mascara de 24 es equivalente a 255.255.255.0. Un argumento
"!" antes de la especificacion de direccion invierto el sentido
de la direccion.
El origen puede incluir especificaciones de puertos o tipo ICMP.
Esto puede ser bien un nombre de servicio, un numero de puerto,
un tipo numerico ICMP o uno de los nombres de tipo ICMP
mostrados por el mandato ipchains -h icmp. Observe que muchos
de estos nombres ICMP se refieren al tipo y codigo, lo que
significa que un codigo ICMP tras la bandera -d es ilegal. En el
resto de este parrafo, un port significa bien una especificacion
de puerto o un tipo ICMP. Se puede especificar un rango usando
el formato puerto:puerto. Si se omite el primer puerto se
supone "0"; si se omite el ultimo, se supone "65535".
Los puertos se pueden especificar solo en combinacion con los
protocolos tcp, udp o icmp Un "!" antes de la especificacion de
puerto invierte el sentido. Cuando se especifica el mandato
check, se requiere solo un puerto, y si se especifica la bandera
-f (fragmento) no se permiten puertos. La bandera --src es un
alias para esta opcion.
--source-port [!] [puerto[:puerto]]
Esto permite separar las especificaciones del puerto origen o
rango de puertos. Vease la descripcion anterior de la bandera -s
para mas detalles. La bandera --sport es un alias de esta
opcion.
-d, --destination [!] direcci'on[/m'ascara] [!] [puerto[:puerto]]
Especificacion de destino. Vease la descripcion de la bandera
-s (origen) para una detallada descripcion de la sintaxis. Para
ICMP, que no tiene puertos un "puerto destino" se refiere a un
codigo numerico ICMP. La bandera --dst es un alias de esta
opcion.
--destination-port [!] [puerto[:puerto]]
Esto permite separar especificacioens de puertos. Vease la
descripcion de la bandera -s para los detalles. la bandera
--dport es un alias de esta opcion.
--icmp-type [!] nombre-de tipo
Esto permite especificaciones de tipo ICMP This allows
specification of the ICMP type (use la opcion -h icmp para ver
los nombres de tipo ICMP validos). Con frecuencia es mas
conveniente anadirlo a las especificacones de destino.
-j, --jump objetivo
Esto especifica el objetivo de la regla; i.e., que hacer con el
paquete si concuerda con la regla. El objetivo puede ser una
cadena definida por el usuario (no en la que esta la regla) o
uno de los objetivos especiales que decide el destino del
paquete de forma inmediata. Si omitimos esta opcion en una
regla, entonces la concordancia no tendra efecto sobre el
destino del paquete, pero se incremnetaran los contadores de la
regla.
-i, --interface [!] nombre
Nombre opcional de un interfaz a traves del cual se reciben los
paquetes, o mediante el cual salen los paquetes se envian.
Cuando se omite esta opcion se supone una cadena vacia, que
tiene un significado especial, y concordara con cualquier nombre
de interfaz. Cuando se usa el argumento "!" antes del nombre de
interfaz, se invierte el sentido. Si el nombre de interfaz
termina en un "+" entonces concordara cualquier nombre de
interfaz que empiece con ese nombre.
[!] -f, --fragment
Esto significa que la regla solo se refiere al segundo o
siguientes fragmentos de paquetes fragmentados. Como no hay
forma de indicar los puertos origen y destino de tales paquetes
(o tipo ICMP), esos paquetes, tales paquetes no verificaran
ninguna regla que los especifique. Cuando el argumento "!"
precede a la bandera -f, se invierte el sentido.
OTRAS OPCIONES
Se pueden especificar las siguientes opciones adicionales:
-b, --bidirectional
Modo bidireccional. La regla concordara con los paquetes IP en
ambas direcciones; esto tiene los mismos efectos que repetir la
regla cambiando origen y destino.
-v, --verbose
Salida documentada. Esta opcion hace que el mantato list
muestre la drieccion del interfaz, las opciones de la regla (si
hay) y las mascaras TOS. Los contadores tambien se muestran con
los sufijos 'K', 'M' o 'G' para multiplicadores 1000, 1,000,000
y 1,000,000,000 respectivamente (pero vea la bandera -x para
cambiar esto). Cuando se usa en combinacion con -M, la
informacion relativa a los nueros de secuencia delta tambien se
mostraran. Para anadir, insertar, borrar y sustituir, esto hace
que se muestre inforamcion detallada sobre la regla.
-n, --numeric
Salida numerica Las direcciones IP y los numeros de puertos se
imprimiran en formato numerico. Por defecto, el programa
intentara mostrarlos como nombres de hosts, nombres de redes o
servicios (cuando sea aplicable).
-l, --log
Activa el registro del nucleo de los paquetes que concuerden.
Cuando esta opcion esta activa para una regla, el nucleo Linux
imprimira cierta informacion de todos los paquetes que
concuerden (como la mayoria de los campos de cabeceras IP)
mediante printk().
-o, --output [tama~no-m'aximo]
Copia los paquetes al dispositivo espacio de usuario. Esto es en
la actualidad principalmente para desarrolladores que quieren
jugar con efectos de cortafuegos en su espacio. El argumento
opcional tamano-maximo se puede usar para limitar el maximo
numero de bytes del paquete que se van a copiar. Esta opcion
solo es valida si el nucleo se ha compilado con
CONFIG_IP_FIREWALL_NETLINK activo.
-m, --mark valor-marca
Marca paquetes concordados. Los paquetes se pueden marcar con un
valor entero sin signo de 32 bits que (algun dia) puede cambiar
su manejo interno. Si no es un "kernel hacker" no es probable
que tenga que preocuparse por esto. Si la cadena valor-marca
empieza con + o -, este valor se anade o resta del valor actual
del valor de marca de paquetes (que empieza en cero).
-t, --TOS andmask xormask
Mascara usada para modificar el campo TOS de la cabecera IP.
Cuando un paquete concuerda con una regla, a su campo TOS,
priemero se hace un and con la primera mascara y al resultado de
esto se le hace un xor con la segunda mascara. Las mascaras se
tiene que especificar como valores hexadecimales de 8-bit. Como
el LSB del campo TOS debe quedar inalterado (RFC 1349), los
valores TOS, que hicieran que se alterase, se rechazan, como es
cualquier regla que siempre ponga mas que el bit TOS. Las
reglas que podrian poner multiples bits TOS para ciertos
paquetes originan avisos (enviados a stdout) que se pueden
ignorar si sabe que paquetes con valores TOS nuncan alcanzaran
esta regla. Obviamente manipular el TOS es un gesto sin sentido
si el objetivo de la regla es DENY o REJECT.
-x, --exact
Expande numeros. Muestra el valor exacto de los contadores de
bytes y paquetes en lugar de solo los numeros redondeados en K
(multiplos de 1000) M (multiplos de 1000K) o G (multiplss de
1000M). Esta opcion solo es relevante para el mandato -L.
[!] -y, --syn
Solo concuerda con paquetes TCP con el bit SYN activo y los bits
ACK y FIN limpios. Tales paquetes se usan para las solicitudes
de inicio de conexion TCP; por ejemplo, bloqueando tales
paquetes entrantes en un interfaz, prevendra las conexiones TCP,
pero las conexioenes salientes no se veran afectadas. Esta
opcion solo tiene sentido cuando el tipo de protocolo esta como
TCP. Si la bandera "!" flag precede al "-y", el sentido de la
opcion se invierte.
FICHEROS
/proc/net/ip_fwchains
/proc/net/ip_masquerade
BUGS
No hay forma de reiniciar los contadores de paquetes y bytes en una
unica cadena. Es una limitacion del nucleo.
No se realiza la deteccion de bucles en ipchains; los paquetes en un
bucle se eliminan y se registran, pero esto sera lo primero que
encontrara sobre esto si accidentalmente crea un bucle.
La explicacion de que efectos tiene marcar un paquete es vaga
intencianlamente hasta que se publique la documentacion del nucleo que
describe las rutinas de secuenciacion de paquetes del nucleo.
No hay forma de poner a cero los contadores de politica (i.e. las
cadenas predefinidas).
FALLOS
Este ipchains es muy diferente al ipfwadm by Jos Vos, ya que usa los
nuevos arboles de cortafuegos IP. Su funcionalidad incluye ipfwadm, y
hay normalmente una aplicacion 1:1 de los mandatos. Hay, sin embargo,
algunos cambios con los que deberia tener cuidado.
Los fragmentos se manejan de diferente forma. Todos los fragmentos tras
el primero usado se dejan pasar (que normalmente es seguro); ahora se
pueden filtrar. Esto significa que probablemente anadira una regla
especifica para aceptar fragmentos si los esta convirtiendo. Tambien
busque las antiguas reglas de contabilidad que verifican los puertos
origen y destino de 0xFFFF (0xFF para paquetes ICMP) que era la
anterior forma de contabilizar los fragmentos.
La reglas de contabilidad ahora simplemente estan integradas en las
cadenas de entrada y salidad; puede simular el anterior comportamiento
como:
ipchains -N acctin
ipchains -N acctout
ipchains -N acctio
ipchains -I input -j acctio
ipchains -I input -j acctin
ipchains -I output -j acctio
ipchains -I output -j acctout
Esto crea tres cadenas definidas acctin, acctout y acctio, que son para
contener cualquier regla de contabilidad (estas reglas se deberian
especificar sin una bandera -j para que los paquetes simplemente lo
pasen sin perjudicar nada).
A MASQ o REDIRECT objetivos encontrados por el nucleo fuera de lugar
(i.e. no durante una regla de reenvio o de entrada respectivamente)
ocasionaran un mensaje a syslog y que el paquete sea descartado.
El anterior comportamiento de concordancias con SYN y ACK (que era
previamente ignorado para paquetes no TCP) ha cambiado; la opcion SYN
no es valida para reglas no especificas TCP.
La opcion de concordancia ACK ( -k) ya no se soporta; la combinacion de
! y -y proporcionan la equivalencia).
Ahora es ilegal especificar una mascara TOS que acitve o modifique el
bit TOS menos significativo; previamente las mascaras TOS eran
modificadas silenciosamente por el nucleo si intentaban hacer esto.
La bandera -b ahora se gestiona simplemente insertando o borrando un
par de reglas, una con las especificaciones de origen y destino
intercambiadas.
No hay forma de especificar un interfaz por direccion: use su nombre.
V'EASE TAMBI'EN
ipfw(4)
AUTOR
Rusty Russell <Paul.Russell@rustcorp.com.au>
8 Febrero 1998 IPCHAINS(8)