Provided by: manpages-es-extra_0.8a-19_all bug

NAME

       ipchains - IP administración de cortafuegos

SINOPSIS

       ipchains -[ADC] cadena especificación-de-regla [opciones]
       ipchains -[RI] cadena numero-regla especificación-de-regla [opciones]
       ipchains -D cadena numero-regla [opciones]
       ipchains -[LFZNX] [cadena] [opciones]
       ipchains -P cadena objetivo [opciones]
       ipchains -M [ -L | -S ] [opciones]

DESCRIPCIÓN

       Ipchains  se  usa  para configurar, mantener e inspeccioar las reglas de cortafuegos IP del núcleo Linux.
       Estas reglas se pueden dividir en 4 categorías diferentes: la cadena de entrada IP, la cadena  de  salida
       IP, la cadena de reenvío IP y las cadenas definidas por el usuario.

       Para  cada  una  de  estas  categorías se mantiene una tabla de reglas separada, cualquiera de las cuales
       podría remitir a una de las cadenas definidas por el usuario.

       Váease ipfw(4) para más 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 más educado y fácil 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 sólo legal para reenvío y cadenas definidas por el usuario, y sólo se puede usar cuando el núcleo
       está  compilado  con  CONFIG_IP_MASQUERADE  definida.   Con  esto,  los  paquetes  se  enmascaran como si
       estuvieran originados desde  el  host  local.  Más  aún,  los  paquetes  devueltos  serán  reconocidos  y
       desenmascarados automáticamente y entonces pasados a la cadena de reenvío.
       REDIRECT  es  sólo  legal  para  las  cadenas de entrada y definidas por el usuario, y sólo se puede usar
       cuando en núcleo linux está 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 redirección
       especificado es 0, que es el valor por defecto, el puerto objetivo de un paquete se usa  como  puerto  de
       redirección. Cuando se usa este objetivo, se puede suministrar un argumento extra, el número 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 política 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 acción específica que hay que realizar; sólo se puede especificar una de  ellas
       en  la  línea de mandatos, salvo que más abajo se especifique lo contrario. En todas las versiones largas
       de los nombres de mandatos y nombres de opciones, sólo es necesario especificar suficientes  letras  para
       asegurarse de que ipchains puede distinguirla de las otras opciones.

       -A, --append
              Añade  una o más reglas al final de la cadena seleccionada.  Cuando los nombres origen y/o destino
              se resuelven a más de una dirección, se añade una nueva regla para  cada  posible  combinación  de
              dirección.

       -D, --delete
              Elimina una o más reglas de la cadena seleccionada. Hay dos versiones de este comando: la regla se
              puede  especificar  como  el número 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
              múltiples direcciones, el mandato fallará.  Las reglas se numeran comenzando por 1.

       -I, --insert
              Inserta  una  o  más  reglas en la cadena seleccionada con el número indicado de regla. Así, si la
              regla tiene el número 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  opción  -Z  (cero)  también,  en  cuyo  caso  no  se  puede
              especificar cadena.  La salida exacta está determinada por los otros argumentos indicados.

       -F, --flush
              Vacía 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
              opción -L, --list (list) también, para  ver  los  contadores  inmediatamente  antes  de  que  sean
              borrados;  si  se  hace  esto no se puede indicar una cadena específica.  (Esto mostrará y borrará
              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, intentará eliminar todas las cadenas no predefinidas.

       -P, --policy
              Fija la política para la cadena con un destino dado. Véase la sección OBJETIVOS para los objetivos
              legles.  Sólo  las  cadenas  no  definidas por el usuario pueden tener políticas, y ni las cadenas
              predefinidas ni las definidas por el usuario pueden ser objetivos de política.

       -M, --masquerading
              Esta opción permite ver las conexiones enmascaradas actualmente (en conjunción con la opción -L) o
              fija los parámetros de enmascaramiento del núcleo (con la opción -S).

       -S, --set tcp tcpfin udp
              Cambia los plazos de tiempo (timeouts) usados para enmascaramiento Este  comando  siempre  toma  3
              parámetros,  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 opción sólo
              está permitida en combinación con la bandera -M.

       -C, --check
              Verifica el paquete dado con la regla seleccionada. Es extremadamente útil para comprobar, ya  que
              se usan las mismas rutinas del núcleo 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 descripción (actualmente breve) de la sintaxis del mandato.

   PARÁMETROS
       Los  siguientes  parámetros  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 numérico, que representa uno  de
              estos   protocolos   u   otro  diferente.  También  está  permitido  un  protocolo  de  nombre  de
              /etc/protocols.  Un argumento "!" antes  del  protocolo  invierte  el  test.  El  número  cero  es
              equivalente  a  all.   Protocolo  all  concordará  con cualquier protocolo y es tomado por defecto
              cuando se omite esta opción.  All no se puede usar en combinación con el mandato check.

       -s, --source [!] dirección/máscara] [!] [puerto[:puerto]]
              Especificación de origen.  Dirección puede ser un nombre de host, un nombre de red  o  una  simple
              dirección  IP.   La  máscara  puede  ser  una máscara de red o un simple número que especifique el
              número de unos (1) a la izquierda en la máscara de red.  Así, una máscara de 24 es  equivalente  a
              255.255.255.0.  Un argumento "!" antes de la especificación de dirección invierto el sentido de la
              dirección.
              El  origen puede incluir especificaciones de puertos o tipo ICMP. Esto puede ser bien un nombre de
              servicio, un número de puerto, un tipo numérico 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
              código, lo que significa que un código ICMP tras la bandera -d es ilegal.  En  el  resto  de  este
              párrafo,  un port significa bien una especificación 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 último, se supone "65535".
              Los puertos se pueden especificar sólo en combinación con los protocolos tcp, udp o  icmp  Un  "!"
              antes  de  la especificación de puerto invierte el sentido. Cuando se especifica el mandato check,
              se requiere sólo un puerto, y si se especifica la bandera -f (fragmento) no se  permiten  puertos.
              La bandera --src es un alias para esta opción.

       --source-port [!] [puerto[:puerto]]
              Esto  permite  separar  las  especificaciones  del  puerto  origen  o  rango  de puertos. Véase la
              descripción anterior de la bandera -s para más detalles. La bandera --sport es un  alias  de  esta
              opción.

       -d, --destination [!] dirección[/máscara] [!] [puerto[:puerto]]
              Especificación  de  destino.   Véase  la  descripción de la bandera -s (origen) para una detallada
              descripción de la sintaxis. Para ICMP, que no tiene puertos un "puerto destino" se  refiere  a  un
              código numérico ICMP. La bandera --dst es un alias de esta opción.

       --destination-port [!] [puerto[:puerto]]
              Esto  permite  separar especificacioens de puertos. Véase la descripción de la bandera -s para los
              detalles. la bandera --dport es un alias de esta opción.

       --icmp-type [!] nombre-de tipo
              Esto permite especificaciones de tipo ICMP This allows specification of  the  ICMP  type  (use  la
              opción  -h  icmp  para  ver  los  nombres de tipo ICMP válidos). Con frecuencia es más conveniente
              añadirlo a las especificacones de destino.

       -j, --jump objetivo
              Esto especifica el objetivo de la regla; i.e., qué hacer con el paquete si concuerda con la regla.
              El objetivo puede ser una cadena definida por el usuario (no en la que está la regla) o uno de los
              objetivos especiales que decide el destino del paquete de forma inmediata. Si omitimos esta opción
              en una regla, entonces la concordancia no tendrá efecto sobre el  destino  del  paquete,  pero  se
              incremnetarán los contadores de la regla.

       -i, --interface [!] nombre
              Nombre opcional de un interfaz a través del cual se reciben los paquetes, o mediante el cual salen
              los  paquetes  se  envían.  Cuando  se  omite esta opción se supone una cadena vacía, que tiene un
              significado especial, y concordará 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 concordará cualquier nombre de interfaz que empiece con ese nombre.

       [!]  -f, --fragment
              Esto significa que la regla sólo 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 verificarán 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 concordará 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 opción hace que el mantato list muestre la driección del  interfaz,  las
              opciones  de  la  regla  (si  hay)  y las máscaras TOS. Los contadores también 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 combinación con -M, la información
              relativa a los núeros de secuencia delta también se mostrarán.  Para añadir,  insertar,  borrar  y
              sustituir, esto hace que se muestre inforamción detallada sobre la regla.

       -n, --numeric
              Salida numérica Las direcciones IP y los números de puertos se imprimirán en formato numérico. Por
              defecto,  el  programa  intentará  mostrarlos  como nombres de hosts, nombres de redes o servicios
              (cuando sea aplicable).

       -l, --log
              Activa el registro del núcleo de los paquetes que concuerden. Cuando esta opción está activa  para
              una regla, el núcleo Linux imprimirá cierta información de todos los paquetes que concuerden (como
              la mayoría de los campos de cabeceras IP) mediante printk().

       -o, --output [tamaño-máximo]
              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
              tamaño-máximo se puede usar para limitar el máximo número de  bytes  del  paquete  que  se  van  a
              copiar.  Esta  opción  sólo  es válida si el núcleo 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 (algún día) 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 añade o
              resta del valor actual del valor de marca de paquetes (que empieza  en cero).

       -t, --TOS andmask xormask
              Máscara  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 máscara y al resultado de esto se le
              hace un xor  con  la  segunda  máscara.  Las  máscaras  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 más  que
              el bit TOS.  Las reglas que podrían poner múltiples bits TOS para ciertos paquetes originan avisos
              (enviados  a  stdout) que se pueden ignorar si sabe que paquetes con valores TOS nuncan alcanzarán
              esta regla. Obviamente manipular el TOS es un gesto sin sentido si el objetivo de la regla es DENY
              o REJECT.

       -x, --exact
              Expande números.  Muestra el valor exacto de los contadores de bytes y paquetes en lugar  de  sólo
              los  números redondeados en K (múltiplos de 1000) M (múltiplos de 1000K) o G (múltiplss de 1000M).
              Esta opción sólo es relevante para el mandato -L.

       [!] -y, --syn
              Sólo 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 conexión TCP; por  ejemplo,  bloqueando  tales  paquetes
              entrantes en un interfaz, prevendrá las conexiones TCP, pero las conexioenes salientes no se verán
              afectadas. Esta opción sólo tiene sentido cuando el tipo de protocolo está como TCP. Si la bandera
              "!" flag precede al "-y", el sentido de la opción 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 única cadena. Es una limitación del
       núcleo.

       No se realiza la detección de bucles en ipchains; los paquetes en un bucle se eliminan  y  se  registran,
       pero esto será lo primero que encontrará sobre esto si accidentalmente crea un bucle.

       La  explicación  de qué efectos tiene marcar un paquete es vaga intencianlamente hasta que se publique la
       documentación del núcleo que describe las rutinas de secuenciación de paquetes del núcleo.

       No hay forma de poner a cero los contadores de política (i.e. las cadenas predefinidas).

FALLOS

       Este ipchains es muy diferente al ipfwadm by Jos Vos, ya que usa los nuevos árboles de cortafuegos IP. Su
       funcionalidad incluye ipfwadm, y hay normalmente una aplicación 1:1 de los mandatos.  Hay,  sin  embargo,
       algunos cambios con los que debería 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 añadirá una  regla
       específica  para  aceptar  fragmentos  si  los  está  convirtiendo. También 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 están 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 deberían especificar sin una bandera -j para  que los paquetes simplemente
       lo pasen sin perjudicar nada).

       A MASQ o REDIRECT objetivos encontrados por el núcleo fuera de  lugar  (i.e.  no  durante  una  regla  de
       reenvío o de entrada respectivamente) ocasionarán 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 opción SYN no es válida para reglas no específicas TCP.

       La opción de concordancia ACK ( -k) ya no  se  soporta;  la  combinación  de  !   y  -y  proporcionan  la
       equivalencia).

       Ahora  es  ilegal  especificar  una  máscara  TOS  que acitve o modifique el bit TOS menos significativo;
       previamente las máscaras TOS eran modificadas silenciosamente por el núcleo 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 dirección: use su nombre.

VÉASE TAMBIÉN

       ipfw(4)

AUTOR

       Rusty Russell <Paul.Russell@rustcorp.com.au>

                                                 8 Febrero 1998                                      IPCHAINS(8)