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)