Provided by: manpages-es_4.23.1-1_all 

NOMBRE
iptables/ip6tables — Herramienta de administración para el filtrado de paquetes Ipv4 e IPv6 y NAT
SINOPSIS
iptables [-t tabla] {-A|-C|-D|-V} cadena definición-regla
ip6tables [-t tabla] {-A|-C|-D|-V} cadena definición-regla
iptables [-t tabla] -I cadena [num_regla] definición-regla
iptables [-t tabla] -R cadena numregla definición-regla
iptables [-t tabla] -D cadena numregla
iptables [-t tabla] -S [cadena [numregla]]
iptables [-t tabla] {-F|-L|-Z} [cadena [numregla]] [opciones...]
iptables [-t tabla] -N cadena
iptables [-t tabla] -X [cadena]
iptables [-t tabla] -P cadena objetivo
iptables [-t tabla] -E antiguo-nombre-cadena nuevo-nombre-cadena
definición-regla = [aciertos...] [objetivo]
acierto = -m nombre-acierto [opciones-por-acierto]
objetivo = -j nombre-objetivo [opciones-por-objetivo]
DESCRIPCIÓN
iptables y ip6tables se usan para definir, mantener e inspeccionar las tablas para el filtrado de
paquetes Ipv4 e Ipv6 del núcleo de Linux. Es posible definir varias tablas y cada una de ellas contiene
varias cadenas predefinidas y también puede incluir cadenas definidas por el usuario.
Una cadena consiste en una lista de reglas que pueden concordar con un conjunto de paquetes en lo que se
denomina un 'objetivo' que puede llevar hasta una cadena definida por el usuario dentro de la misma
tabla.
OBJETIVOS
Una regla del cortafuegos define un criterio para un paquete y un objetivo. Si el paquete no concuerda
con ese criterio, se analiza la regla siguiente de la cadena. Si concuerda, la siguiente regla a aplicar
vendrá dada por el 'objetivo', éste podrá ser el nombre de una cadena que haya definido el usuario, uno
de los objetivos descrito en iptables-extensions(8) o uno de los valores especiales ACCEPT, DROP o
RETURN.
ACCEPT indica que se permita el paso al paquete. DROP descarta el paquete mientras que RETURN indica que
se debe dejar esta cadena y reanudar en la siguiente regla en la cadena anterior. Si se alcanza el final
de una cadena predefinida o existe una concordancia con una cadena predefinida con el objetivo RETURN, el
destino del paquete vendrá dado por el objetivo definido en la norma de la cadena.
TABLAS
Actualmente existen cinco tablas independientes. Según la configuración del núcleo y de sus módulos,
tendremos unas u otras tablas presentes.
-t, --table tabla
Esta opción define la tabla de concordancia de paquetes con que la orden debe operar. Si el núcleo
está configurado para cargar módulos dinámicamente, se intentará cargar el necesario para esta
tabla si no lo está ya.
Las tablas son las siguientes:
filter:
Esta es la tabla por defecto (si no se ha definido la opción -t). Contiene tres cadenas
predefinidas: INPUT para paquetes con destino a conectores locales), FORWARD para paquetes con
destino a otros equipos, y OUTPUT para paquetes creados en el propio equipo.
nat:
Se consulta esta tabla cada vez que se topa con un paquete que trata de iniciar una conexión.
Consta de cuatro elementos predefinidos: PREROUTING para modificar paquetes tan pronto como
llegan, INPUT para los paquetes con destino a un conector local, OUTPUT para los paquetes
generados desde el propio equipo antes de ser enrutados y POSTROUTING para alterar paquetes a
punto de salir. La implementación de IPV6 NAT está disponible desde la versión 3.7 del núcleo.
mangle:
Esta tabla se emplea para alteraciones especiales de paquetes. Hasta la versión 2.4.17 del
núcleo, disponía de dos cadenas predefinidas: PREROUTING para modificar paquetes entrantes
antes de ser enrutados y OUPUT para modificar paquetes creados en el propio sistema también
antes de ser enrutados. Desde la versión 2.4.18, están disponibles otras trescadenas
predefinidas: INPUT para los paquetes que llegan al propio equipo, FORWARD para modificar
paquetes enrutados a través del equipo y POSTROUTING para modificar paquetes que están a punto
de salir.
raw:
Esta tabla se usa principalmente para la configuración de excepciones al seguimiento de
conexiones con el objetivo NOTRACK. Se anota en el gancho netfilter con una mayor prioridad
haciendo que se interprete antes que ip_conntrack y qe cualquier otra tabla. Proporciona las
siguientes cadenas predefinidas: PREROUTING para paquetes entrantes desde cualquier interfaz
de red, OUTPUT para paquetes creados por procesos locales.
security:
Esta tabla se usa cuando se imponen reglas de control de acceso (MAC)para el tráfico de red
tales como los establecidos por los objeticos SECMARK y CONNSECMARK. El control de acceso se
implementa mediante módulos de seguridad de Linux como SELinux. La tabla de seguridad se
interpreta después de la de filtrado (filter) permitiendo que cualquier regla de control
discrecional de acceso (DAC) que contenga la tabla de filtrado pueda aplicarse antes de las
reglas MAC. Esta tabla contiene las siguientes cadenas predefinidas: INPUT para los paquetes
creados en el propio equipo, OUTPUT para modificar paquetes creados en el propio sistema antes
de ser enrutados y FORWARD para modificar paquetes enrutados a través de este equipo.
OPCIONES
Las opciones reconocidas por iptables y ip6tables se dividen en varios grupos.
ORDENES
Estas opciones definen las acciones que se desea realizar. Solo una de ellas puede definirse en la línea
de órdenes salvo que se especifique otra cosa. Para usar las versiones largas de de las ordenes y
opciones, solo es necesario asegurarse de usar suficientes letras para que iptables puede distinguirlas
del resto.
-A, --append cadena especificación-de-regla
Añade una o más reglas al final de la cadena seleccionada. Cuando el nombre del origen o del
destino se pueda traducir a más de una dirección, deberá añadirse una regla para cada una de las
combinaciones posibles.
-C, --check cadena especificación-de-regla
Comprueba si existe una regla que concuerda con la especificación en la cadena seleccionada. Esta
orden emplea el mismo sistema que -D para encontrar una entrada concordante pero no modifica a
configuración actual de iptables y utiliza su estado de salida para indicar su éxito o error.
-D, --delete cadena especificación-de-regla
-D, --delete cadena numregla
Borra una o más reglas de la cadena seleccionada. Existen dos versiones de esta orden: la regla
puede definirse como un número en la cadena (el 1 sería la primera regla) o una regla concordante.
-I, --insert chain [numregla] especificación-de-regla
Inserta una o más reglas con el número indicad en la cadena seleccionada. Así, si el número de la
regla es el 1, dicha regla se insertará al inicio de la cadena. También se pone al inicio si no se
indica ningún número.
-R, --replace cadena numregla especificación-de-regla
Sustituye una regla en la cadena seleccionada. Si el origen o el destino pueden resolver a más de
una dirección, la ejecución fallará. Las reglas se numeran empezando por el número uno.
-L, --list [cadena]
Muestra todas las reglas en la cadena seleccionada. Si no se selecciona ninguna cadena, se
mostrarán todas. Aligual que con cualquier otra orden de iptables, se aplicará a la tabla
especificada (por defecto la de filtrado). Así para ver las reglas NAT deberá ejecutar:
iptables -t nat -n -L
Suele utilizarse con la opción -n para evitar largas búsquedas de DNS. También es posible definir
la opción -Z (cero), en cuyo caso las cadenas se enumerarán y se pondrán a cero de una e una. El
resultado exacto se ve afectado por los otros argumentos dados. Las reglas exactas se suprimen
hasta que se ejecute:
iptables -L -v
o bien iptables-save(8).
-S, --list-rules [cadena]
Muestra todas las reglas de la cadena seleccionada. Si no se define ninguna cadena, se muestran
todas como en iptable-save. Al igual que cualquier otra orden de iptables, se aplica en la tabla
definida (por defecto 'filter').
-F, --flush [cadena]
Elimina la cadena seleccionada (todas las cadenas de la tabla si no se define ninguna en
concreto). Esto es lo mismo que borrar todas las reglas una por una.
-Z, --zero [cadena [reglanum]]
Resetea el paquete y el contador de bytes en todas las cadenas, solo en la cadena indicada, o solo
en una determinada regla de una cadena. De igual modos, es posible definir la opción -L, --list
(lista) para ver los contadores justo antes de resetearse (consulta más atrás).
-N, --new-chain cadena
Crea una nueva cadena con el nombre dado. No puede existir ningún objetivo con ese nombre
previamente.
-X, --delete-chain [cadena]
Elimina la cadena opcional definida por el usuario. No puede quedar ninguna referencia a ella, si
las hubiese tendrán que eliminarse o modificarse dichas reglas para que pueda eliminarse. La
cadena tendrá que estar vacía, no contener ninguna regla. Si no se indica ningún argumento,
intentará eliminar todas las cadenas no nativas de la tabla. Las cadenas vacías preconfiguradas
sólo podrán eliminarse mediante iptables-nft.
-P, --policy cadena objetivo
Define la norma que se aplicará para la cadena nativa (no definida por el usuario) para el
objetivo definido. Dicha norma tiene que ser ACCEPT o DROP.
-E, --rename-chain nombre-antiguo nombre-nuevo
Renombra la cadena definida con el nombre dado. Esto solo tiene un efecto estético no afectando a
la estructura de la tabla.
-h Ayuda. Proporciona una muy breve descripción de la sintaxis de la orden.
PARÁMETROS
Los siguientes parámetros componen una definición de regla (tal como se emplea en las órdenes add,
delete, insert, replace y append).
-4, --ipv4
Esta opción no tiene ningún efecto sobre iptables ni iptables-restore. Si se inserta una regla con
la opción -4 con (y solo con) ip6tables-restore, se ignorará sin más. Cualquier otra posibilidad
emitirá un error. Esta opción permite incluir reglas IPv4 e IPv6 en un mismo archivo para que lo
puedan utlizar tanto iptables-restore como ip6tables-restore.
-6, --ipv6
Esta opción no tiene ningún efecto sobre ip6tables ni ip6tables-restore. Si se inserta una regla
con la opción -6 con (y solo con) iptables-restore, se ignorará sin más. Cualquier otra
posibilidad emitirá un error. Esta opción permite incluir reglas IPv4 e IPv6 en un mismo archivo
para que lo puedan utlizar tanto iptables-restore como ip6tables-restore.
[!] -p, --protocol protocolo
El protocolo de la regla o del paquete a comprobar. Dicho protocolo pueder ser alguno de estos:
tcp, udp, udplite, icmp, icmpv6,esp, ah, sctp, mh o el comodín "all", también puede ser un valor
numérico en representación de un de estos protocolos o de otro diferente. También es posible
indicar un nombre incluido en /etc/protocols. El carácter "!" invierte la orden dada. El número
'0' equivale a all concordando con todos lo protocolos y será el comportamiento por defecto cuando
se omita esta opción. No se permite el uso de extensiones del encabezado IPv6 salvo esp. Tanto esp
como ipv6-nonext pueden usarse a partir de la versión 2.6.11 del núcleo. El hecho de que el '0'
sea equivalente a todos los protocolos hace que no sea posible chequear directamente si este campo
tiene el valor '0'. Para buscar la concordancia con un encabezado HBH, aunque sea el último, no se
puede usar -p 0 si -m hbh.
[!] -s, --source dirección[/máscara][,...]
Definición del origen. Dirección puede ser un nombre de red, un nombre de equipo, una dirección IP
de red (con /máscara) o una dirección IP simple. Los nombres de equipo se resolverán solo una vez,
antes de enviar la regla al núcleo. No es buena idea especificar cualquier nombre para resolver
con una consulta remota como DNS. La máscara puede ser una máscara de red ipv4 (para iptables) o
un número simple, especificando el número de unos en el lado izquierdo de la máscara de red. Por
lo tanto, una máscara de iptables de 24 es equivalente a 255.255.255.0. El argumento '!' antes de
especificar la dirección invertirá el sentido de la dirección. El indicador --src es un alias para
esta opción. Se pueden especificar varias direcciones, pero hará expandir a múltiples reglas (al
agregar con -A) o provocará que se eliminen múltiples reglas (con -D).
[!] -d, --destination dirección[/máscara][,...]
Definición del destino. Consulte la descripción del indicador -s (fuente) para obtener una
descripción detallada de la sintaxis. El indicador --dst es un alias para esta opción.
-m, --match match
Define una concordancia para usar, es decir, un módulo de extensión que comprueba una propiedad
específica. El conjunto de concordancias será la condición bajo la cual se invoca un objetivo. Las
concordancias se evalúan del primero al último según lo especificado en la línea de órdenes. la
evaluación se detendrá tan pronto el resultado de una extensión resulte falso.
-j, --jump objetivo
Esto definirá el objetivo de la regla; es decir, qué hacer si el paquete concuerda. El objetivo
puede ser una cadena definida por el usuario (distinta de aquella en la que se encuentra esta
regla), uno de los objetivos integrados especiales que deciden el destino del paquete o una
extensión (consulte EXTENSIONES DE CONCORDANCIA Y OBJETIVO a continuación). Si esta opción se
omite en una regla (y no se usa -g), el hecho de concordar con la regla no tendrá ningún efecto en
el destino del paquete, pero los contadores de la regla se incrementarán.
-g, --goto cadena
Esto indica que el procesamiento debe continuar en una cadena definida por el usuario. A
diferencia de la opción --jump, RETURN no continuará procesando en esta cadena sino en la cadena
que nos invocó a través de --jump.
[!] -i, --in-interface nombre
Nombre de una interfaz a través de la cual se recibió un paquete (solo para paquetes que ingresan
a las cadenas INPUT, FORWARD y PREROUTING). El argumento '!' empleado antes del nombre de la
interfaz, invertirá el significado. Si el nombre de la interfaz termina en '+', concordará con
cualquier interfaz que comience con este nombre. Si se omite esta opción, cualquier nombre de
interfaz concordará..
[!] -o, --out-interface nombre
Nombre de una interfaz a través de la cual se va a enviar un paquete (para paquetes que entran en
las cadenas FORWARD, OUTPUT y POSTROUTING). El argumento '!' antes del nombre de la interfaz hará
que el sentido se invierta. Si el nombre de la interfaz termina con '+', concordará con cualquier
interfaz que comience con este nombre. Si se omite esta opción, cualquier nombre de interfaz
concordará.
[!] -f, --fragment
Esto significa que la regla sólo se refiere al segundo y posteriores fragmentos IPv4 de paquetes
fragmentados. Dado que no es posible conocer los puertos de origen o destino de dicho paquete (o
tipo de ICMP), dichos paquetes no concordarán con ninguna regla que los especifique. Cuando el
argumento '!' precede al indicador '-f', la regla solo concordarácon fragmentos principales o
paquetes no fragmentados. Esta opción es específica de IPv4, no está disponible en ip6tables.
-c, --set-counters paquetes bytes
Permite al administrador inicializar los contadores de paquetes y bytes de una regla (durante las
operaciones INSERT, APPEND, REPLACE).
OTRAS OPCIONES
Pueden especificarse las siguientes opciones adicionales:
-v, --verbose
Salida detallada. Esta opción hace que la orden de listado muestre el nombre de la interfaz, las
opciones de regla (si las hay) y las máscaras TOS. Los contadores de paquetes y bytes también se
enumeran, con el sufijo 'K', 'M' o 'G' para multiplicadores de 1000, 1.000.000 y 1.000.000.000
respectivamente (consulte el indicador -x para modificarlo). Ya sea para agregar, insertar,
eliminar o eemplazar, esto mostrará información detallada sobre la regla o reglas. -v se puede
especificar varias veces para (posiblemente) que muestre mensajes de depuración más y más
detallados: si se especifica dos veces, iptables-legacy volcará la información de la tabla y las
entradas en libiptc, iptables-nft volcará las reglas en netlink (código VM) presentación. Si se
especifica tres veces, iptables-nft también volcará cualquier mensaje de enlace de red enviado al
núcleo.
-V, --version
Muestra la versión del programa y la API del núcleo utilizada.
-w, --wait [segundos]
Espere a que se bloquee xtables. Para evitar que se ejecuten varias instancias del programa al
mismo tiempo, se intentará obtener un bloqueo exclusivo en el inicio. Por defecto, el programa se
cerrará si no se puede obtener el bloqueo. Con esta opción, el programa esperará (indefinidamente
o los segundos indicados) hasta que pueda obtener dicho bloqueo exclusivo.
-n, --numeric
Salida numérica. Las direcciones IP y los números de puerto se mostrarán en formato numérico. De
forma predeterminada, el programa intentará mostrarlos como nombres de equipo, nombres de red o
servicios; según corresponda.
-x, --exact
Expande números. Muestra el valor exacto de los contadores de paquetes y bytes, en lugar de solo
el número redondeado en K (múltiplos de 1000), M (múltiplos de 1000 K) o G (múltiplos de 1000 M).
Esta opción sólo es relevante para la orden -L.
--line-numbers
Añade el número de línea al inicio de cada regla cuando se listen las reglas, viendo así la
posición de la regla en la cadena.
--modprobe=orden
Emplea orden para cargar cualquier módulo que necesite (objetivos, etc...) al añadir o insertar
reglas en una cadena.
ARCHIVO DE BLOQUEO
iptables usa el archivo /run/xtables.lock para su bloqueo exclusivo al inicio.
La variable de entorno XTABLES_LOCKFILE puede usarse para anular la configuración predeterminada.
CONCORDANCIAS Y EXTENSIONES DE OBJETIVO
iptables puede utilizar módulos de destino y concordancia de paquetes extendidos. Puede ver una lista en
la página de manual iptables-extensions(8).
DIAGNÓSTICOS
Varios mensajes de error se muestran por la salida de error estándar. Como es usual, el código 0 indica
un correcto funcionamiento. Los errores causados por parámetros no válidos o abusados causarán un código
de salida de 2. Los errores que indican una incompatibilidad entre el núcleo y el espacio del usuario
emiten un código de salida de 3. Los errores que indican un problema de recursos, como un bloqueo
ocupado, la asignación de memoria fallida o los mensajes de error del núcleo provocan un código de salida
de 4. Otro tipo de errores provocarán un código de salida de 1.
ERRORES
¿Errores? ¿Qué será eso? ;-) Enfín, eche un vistazo en https://bugzilla.netfilter.org/ iptables terminará
su ejecución inmediatamente con un código de error 111 si se intenta ejecutar como SUID root. iptables no
se puede utilizar de forma segura de esta manera porque confía en las bibliotecas compartidas
(concordancias, objetivos) cargadas en tiempo de ejecución; es posible configurar la ruta de búsqueda
mediante variables de entorno.
COMPATIBILIDAD CON IPCHAINS
iptables es muy similar a ipchains. La principal diferencia es que las cadenas INPUT y OUTPUT solo son
'atravesadas' por paquetes que llegan y por los que se origina en el equipo local. Por lo tanto, cada
paquete sólo pasa a través de una de las tres cadenas (excepto el tráfico de loopback, donde se
involucran las cadenas de ENTRADA y SALIDA); anteriormente, un paquete reenviado pasaría por los tres.
La otra diferencia principal es que -i se refiere a la interfaz de entrada; -o se refiere a la interfaz
de salida y ambas están disponibles para paquetes que entran en la cadena FORWARD.
Se han separado las distintas formas de NAT; iptables es un filtro de paquetes puro cuando se utiliza la
tabla de 'filtro' predeterminada, con módulos de extensión opcionales. Esto debería evitar gran parte de
la confusión sobre la combinación de enmascaramiento de IP y filtrado de paquetes vista anteriormente.
Entonces las siguientes opciones se manejan de manera diferente:
-j MASQ
-M -S
-M -L
Hay varios otros cambios en iptables.
VÉASE TAMBIÉN
iptables-apply(8), iptables-save(8), iptables-restore(8), iptables-extensions(8),
El documento COMO (HOW-TO en inglés) de filtrado de paquetes detalla el uso de iptables para el filtrado
de paquetes, el COMO de NAT detalla NAT, el COMO de extensiones de netfilter detalla extensiones que no
están en la distribución estándar y el COMO de hacking de netfilter detalla las partes internas de
netfilter.
Visite https://www.netfilter.org/.
AUTORES
Rusty Russel es el autor original de iptable en conjunción con Michael Neuling.
Marc Boucher hizo que Rusty abandonara ipnatctl presionando para que se creara un marco de selección de
paquetes genérico en iptables, luego escribió la tabla de mangle, la concordancia de propietario, varios
asuntos del marcado además de varias aportaciones interesantes en general.
James Morris escribió el objetivo TOS, y el acierto tos.
Jozsef Kadlecsik escribió el objetivo REJECT.
Harald Welte escribió el objetivo ULOG y NFQUEUE, el nuevo libiptc, así como las concordancias y
objetivos TTL, DSCP, ECN.
El equipo principal de Netfilter lo forman: Jozsef Kadlecsik, Pablo Neira Ayuso , Eric Leblond, Florian
Westphal y Arturo Borrero Gonzalez. Los miembros eméritos de dicho equipo son los siguientes: Marc
Boucher, Martin Josefsson, Yasuyuki Kozakai, James Morris, Harald Welte and Rusty Russell.
Esta página de manual fue escrita por Herve Eychenne <rv@wallfire.org>.
VERSIÓN
Esta página de manual es aplicable a la versión 1.8.10 de iptables/ip6tables
TRADUCCIÓN
La traducción al español de esta página del manual fue creada por Marcos Fouces <marcos@debian.org>
Esta traducción es documentación libre; lea la GNU General Public License Version 3 o posterior con
respecto a las condiciones de copyright. No existe NINGUNA RESPONSABILIDAD.
Si encuentra algún error en la traducción de esta página del manual, envíe un correo electrónico a
debian-l10n-spanish@lists.debian.org.
iptables 1.8.10 IPTABLES(8)