Follow Techotopia on Twitter

On-line Guides
All Guides
eBook Store
iOS / Android
Linux for Beginners
Office Productivity
Linux Installation
Linux Security
Linux Utilities
Linux Virtualization
Linux Kernel
System/Network Admin
Programming
Scripting Languages
Development Tools
Web Development
GUI Toolkits/Desktop
Databases
Mail Systems
openSolaris
Eclipse Documentation
Techotopia.com
Virtuatopia.com
Answertopia.com

How To Guides
Virtualization
General System Admin
Linux Security
Linux Filesystems
Web Servers
Graphics & Desktop
PC Hardware
Windows
Problem Solutions
Privacy Policy

  




 

 

NOTE: CentOS Enterprise Linux is built from the Red Hat Enterprise Linux source code. Other than logo and name changes CentOS Enterprise Linux is compatible with the equivalent Red Hat version. This document applies equally to both Red Hat and CentOS Enterprise Linux.
Linuxtopia - CentOS Enterprise Linux 4: Manual de referencia - Opciones usadas en comandos iptables

18.3. Opciones usadas en comandos iptables

Las reglas para el filtrado de paquetes se ponen en funcionamiento ejecutando el comando iptables. Con frecuencia se utilizan los aspectos siguientes del paquete como el criterio:

  • Tipo de paquete — Dicta qu� tipo de paquetes filtra el comando.

  • Fuente/Destino del paquete — Especifica cu�les paquetes filtra el comando bas�ndose en el origen o destino del paquete.

  • Objetivo — Indica qu� acci�n es tomada en paquetes que cumplen los criterios mencionados anteriormente.

Para m�s informaci�n sobre opciones espec�ficas que resuelven estos aspectos de un paquete, consulte la Secci�n 18.3.4 y la Secci�n 18.3.5.

Las opciones usadas con las reglas iptables dadas deben estar agrupadas l�gicamente, bas�ndose en el prop�sito y en las condiciones de la regla general, para que la regla sea v�lida. El resto de esta secci�n explica las opciones usadas com�nmente para el comando iptables.

18.3.1. Estructura de las opciones iptables

Muchos comandos iptables tienen la siguiente estructura:

iptables [-t <table-name>] <command> <chain-name> <parameter-1> \
         <option-1> <parameter-n> <option-n>

La opci�n <table-name> permite al usuario seleccionar una tabla diferente a la tabla predeterminada filter a usar con el comando. La opci�n <command> indica una acci�n espec�fica a realizar, tal como anexar o eliminar la regla especificada por la opci�n <chain-name>. Luego de la opci�n <chain-name> se encuentran un par de par�metros y opciones que definen qu� pasar� cuando un paquete coincide con la regla.

Cuando miramos la estructura de un comando iptables, es importante recordar que, al contrario que la mayor�a de los comandos, la longitud y complejidad de un comando iptables puede cambiar en funci�n de su prop�sito. Un comando para borrar una regla de una cadena puede ser muy corto, mientras que un comando dise�ado para filtrar paquetes de una subred particular usando un conjunto de par�metros espec�ficos y opciones puede ser mucho m�s largo. Al crear comandos iptables puede ser de ayuda reconocer que algunos par�metros y opciones pueden crear la necesidad de utilizar otros par�metros y opciones para especificar m�s a�n la petici�n de la opci�n anterior. Para construir una regla v�lida, esto deber� continuar hasta que todos los par�metros y opciones que requieran otro conjunto de opciones hayan sido satisfechos.

Escriba iptables -h para ver una lista detallada de la estructura de los comandos iptables.

18.3.2. Opciones de comandos

Las opciones de comandos le dicen a iptables que realice una acci�n espec�fica. Solamente una opci�n de comando se permite por comando iptables. Excepto el comando de ayuda, todos los comandos se escriben en may�sculas.

Los comandos de iptables son los siguientes:

  • -A — A�ade la regla iptables al final de la cadena especificada. Este es el comando utilizado para simplemente a�adir una regla cuando el orden de las reglas en la cadena no importa.

  • -C — Verifica una regla en particular antes de a�adirla en la cadena especificada por el usuario. Este comando puede ser de ayuda para construir reglas iptables complejas pidi�ndole que introduzca par�metros y opciones adicionales.

  • -D — Borra una regla de una cadena en particular por n�mero (como el 5 para la quinta regla de una cadena). Puede tambi�n teclear la regla entera e iptables borrar� la regla en la cadena que corresponda.

  • -E — Renombra una cadena definida por el usuario. Esto no afecta la estructura de la tabla.

  • -F — Libera la cadena seleccionada, que borra cada regla de la cadena. Si no se especifica ninguna cadena, este comando libera cada regla de cada cadena.

  • -h — Proporciona una lista de estructuras de comandos, as� como tambi�n un res�men r�pido de par�metros de comandos y opciones.

  • -I — Inserta una regla en una cadena en un punto especificado por un valor entero definido por el usuario. Si no se especifica ning�n n�mero, iptables colocar� el comando en el tope de la cadena.

    Atenci�nAtenci�n
     

    Tenga en cuenta que al utilizar las opciones -A o -I el orden de las reglas dentro de una cadena es importante para determinar cu�l regla aplica a cu�les paquetes.

  • -L — Lista todas las reglas de la cadena especificada tras el comando. Para ver una lista de todas las reglas en todas las cadenas en la tabla por defecto filter, no especifique ninguna cadena o tabla. De lo contrario, la sintaxis siguiente deber� utilizarse para listar las reglas en una cadena espec�fica en una tabla en particular:

    iptables -L <chain-name> -t <table-name>

    En la Secci�n 18.3.6 se describen opciones adicionales para la opci�n de comando -L, que proporcionan n�meros de reglas y permiten descripciones m�s detalladas.

  • -N — Crea una nueva cadena con un nombre especificado por el usuario.

  • -P — Configura la pol�tica por defecto para una cadena en particular, de tal forma que, cuando los paquetes atraviesen la cadena completa sin cumplir ninguna regla, ser�n enviados a un objetivo en particular, como puedan ser ACCEPT o DROP.

  • -R — Reemplaza una regla en una cadena particular. El n�mero de la regla debe ser especificado despu�s del nombre de la cadena. La primera regla en una cadena corresponde a la regla n�mero uno.

  • -X — Borra una cadena especificada por el usuario. No se permite borrar ninguna de las cadenas predefinidas para cualquier tabla.

  • -Z — Pone ceros en los contadores de byte y de paquete en todas las cadenas de una tabla en particular.

18.3.3. Opciones de par�metros de iptables

Una vez que se especifiquen ciertos comandos iptables, incluyendo aquellos para a�adir, anexar, eliminar, insertar o reemplazar reglas dentro de una cadena, se requieren par�metros para construir una regla de filtrado de paquetes.

  • -c — Resetea los contadores de una regla en particular. Este par�metro acepta las opciones PKTS y BYTES para especificar qu� contador hay que resetear.

  • -d — Configura el nombre de la m�quina destino, direcci�n IP o red de un paquete que coincide con la regla. Cuando se coincida una red, se soportan los siguientes formatos de direcciones IP o m�scaras de red:

    • N.N.N.N/M.M.M.M — Donde N.N.N.N es el rango de direcciones IP y M.M.M.M es la m�scara de la red.

    • N.N.N.N/M — Donde N.N.N.N es el rango de direcciones IP y M es la m�scara de bit.

  • -f — Aplica esta regla s�lo a los paquetes fragmentados.

    Usando la opci�n ! despu�s de este par�metro, �nicamente se har�n coincidir los paquetes no fragmentados.

  • -i — Configura la interfaz de red entrante, tal como eth0 o ppp0. Con iptables, este par�metro opcional puede ser usado solamente con las cadenas INPUT y FORWARD cuando es usado con la tabla filter y la cadena PREROUTING con las tablas nat y mangle.

    Este par�metro tambi�n soporta las siguientes opciones especiales:

    • El car�cter de exclamaci�n ! — Invierte la directriz, es decir, se excluye de esta regla cualquier interfaz especificada.

    • El car�ter de suma + — Un caracter tipo comod�n utilizado para coincidir todas las interfaces con una cadena de caracteres especificada. Por ejemplo, el par�metro -i eth+ aplicar� esta regla a cualquier interfaz Ethernet pero excluir� cualquier otra interfaz, tal como, ppp0.

    Si el par�metro -i se utiliza sin especificar ninguna interfaz, todas las interfaces estar�n afectadas por la regla.

  • -j — Salta a un objetivo particular cuando un paquete coincide con una regla particular. Los objetivos v�lidos a usar despu�s de la opci�n -j incluyen las opciones est�ndar (ACCEPT, DROP, QUEUE y RETURN) as� como tambi�n las opciones extendidas que est�n disponibles a trav�s de los m�dulos cargados por defecto con el paquete RPM de Red Hat Enterprise Linux iptables, como LOG, MARK y REJECT, entre otros. Consulte la p�gina del manual de iptables para m�s informaci�n sobre esto y otros objetivos.

    Puede tambi�n dirigir un paquete coincidiendo esta regla a una cadena definida por el usuario fuera de la cadena actual, para aplicar otras reglas al paquete.

    Si no especifica ning�n objetivo, el paquete pasa la regla sin llevar a cabo ninguna acci�n. A pesar de todo, el contador para esta regla se sigue incrementando en uno.

  • -o — Configura la interfaz de red de salida para una regla y puede ser usada solamente con las cadenas OUTPUT y FORWARD en la tabla de filtro y la cadena POSTROUTING en las tablas nat y mangle. Estos par�metros de opciones son los mismos que aquellos de la interfaz de entrada (-i).

  • -p — Configura el protocolo IP para la regla, el cual puede ser icmp, tcp, udp, o all, para coincidir todos los protocolos soportados. Adem�s, se puede usar cualquier protocolo listado en /etc/protocols. Si esta opci�n es omitida cuando se est� creando una regla, la opci�n all es la opci�n por defecto.

  • -s — Configura la fuente para un paquete particular usando la misma sintaxis que el par�metro (-d).

18.3.4. Opciones de coincidencia para iptables

Diferentes protocolos de red proporcionan opciones especializadas las cuales se pueden configurar para coincidir un paquete particular usando ese protocolo. Sin embargo, primero se debe especificar el protocolo en el comando iptables. Por ejemplo, -p tcp <protocol-name> (donde <protocol-name> es el protocolo objetivo), hace disponibles las opciones para ese protocolo especificado.

18.3.4.1. Protocolo TCP

Estas opciones de identificaci�n est�n disponibles en el protocolo TCP (opci�n -p tcp):

  • --dport — Configura el puerto de destino para el paquete. Use bien sea un nombre de servicio (tal como www o smtp), n�mero de puerto, o el rango de n�meros de puertos para configurar esta opci�n. Para hojear los nombres y alias de los servicios de red y los n�meros que ellos usan, visualice el archivo /etc/services. La opci�n --destination-port es sin�nimo con --dport.

    Para especificar un rango de n�meros de puertos, separe los dos n�meros con dos puntos (:), tal como -p tcp --dport 3000:3200. El rango m�s grande aceptable es 0:65535.

    Use un caracter de exclamaci�n (!) despu�s de la opci�n --dport para coincidir todos los paquetes que no utilizan el servicio de red o puerto.

  • --sport — Configura el puerto fuente del paquete usando las mismas opciones que --dport. La opci�n --source-port es sin�nimo con --sport.

  • --syn — Provoca que todos los paquetes designados de TCP, com�nmente llamados paquetes SYN, cumplan esta regla. Cualquier paquete que est� llevando un payload de datos no ser� tocado. Si se sit�a un punto de exclamaci�n (!) como bandera tras la opci�n --syn se provoca que todos los paquetes no-SYN sean seleccionados.

  • --tcp-flags — Permite a los paquetes TCP con bits espec�ficos o banderas, ser coincididos con una regla. La opci�n --tcp-flags acepta dos par�metros. El primer par�metro es la m�scara, la cual configura banderas a ser examinadas en el paquete. El segundo par�metro se refiere a la bandera que se debe configurar para poder coincidir.

    Las banderas posibles son:

    • ACK

    • FIN

    • PSH

    • RST

    • SYN

    • URG

    • ALL

    • NONE

    Por ejemplo, una regla iptables que contenga -p tcp --tcp-flags ACK,FIN,SYN SYN tan s�lo seleccionar� los paquetes TCP que tengan la bandera SYN activo y las banderas ACK y FIN sin activar.

    Usando el caracter de exclamaci�n (!) despu�s de --tcp-flags reversa el efecto de la opci�n de coincidencia.

  • --tcp-option — Intenta seleccionar con opciones espec�ficas de TCP que pueden estar activas en un paquete en particular. Esta opci�n se puede revertir con el punto de exclamaci�n (!).

18.3.4.2. Protocolo UDP

Estas opciones de selecci�n est�n disponibles para el protocolo UDP (-p udp):

  • --dport — Especifica el puerto destino del paquete UDP, usando el nombre del servicio, n�mero de puerto, o rango de n�meros de puertos. La opci�n de coincidencia --destination-port es sin�nimo con --dport.

  • --sport — Configura el puerto fuente del paquete UDP, usando el nombre de puerto, n�mero de puerto o rango de n�meros de puertos. La opci�n --source-port es sin�nimo con --sport.

18.3.4.3. Protocolo ICMP

Las siguientes opciones de coincidencia est�n disponibles para el Protocolo de mensajes de Internet (ICMP) (-p icmp):

  • --icmp-type — Selecciona el nombre o el n�mero del tipo ICMP que concuerde con la regla. Se puede obtener una lista de nombres v�lidos ICMP tecleando el comando iptables -p icmp -h.

18.3.4.4. M�dulos con opciones de coincidencias adicionales

Opciones adicionales de coincidencia est�n disponibles a trav�s de los m�dulos por el comando iptables. Para usar un m�dulo de opciones de coincidencia, cargue el m�dulo por nombre usando la opci�n -m, tal como -m <module-name> (reemplazando <module-name> con el nombre del m�dulo).

Un gran n�mero de m�dulos est�n disponibles por defecto. Hasta es posible crear sus m�dulos para proporcionar funcionalidades de opciones de coincidencia adicionales.

Lo siguiente, es una lista parcial de los m�dulos usados m�s com�nmente:

  • limit module — Permite colocar un l�mite en cu�ntos paquetes son coincididos a una regla particular. Esto es especialmente beneficioso cuando se usa en conjunto con el objetivo LOG, pues puede prevenir que una inundaci�n de paquetes coincidentes sobrecarguen el registro del sistema con mensajes repetitivos o usen los recursos del sistema. Para m�s informaci�n sobre el objetivo LOG, refi�rase a la Secci�n 18.3.5.

    El m�dulo limit habilita las opciones siguientes:

    • --limit — Configura el n�mero de coincidencias en un intervalo de tiempo, especificado con un n�mero y un modificador de tiempo ordenados en el formato <n�mero>/<tiempo>. Por ejemplo, si usamos --limit 5/hour s�lo dejaremos que una regla sea efectiva cinco veces a la hora.

      Si no se utiliza ning�n n�mero ni modificador de tiempo, se asume el siguiente valor por defecto: 3/hour.

    • --limit-burst — Configura un l�mite en el n�mero de paquetes capaces de cumplir una regla en un determinado tiempo. Esta opci�n deber� ser usada junto con la opci�n --limit, y acepta un n�mero para configurar el intervalo de tiempo (threshold).

      Si no se especifica ning�n n�mero, tan s�lo cinco paquetes ser�n capaces inicialmente de cumplir la regla.

  • m�dulo state — Habilita la coincidencia de estado.

    El m�dulo state tiene las siguientes opciones:

    • --state — coincide un paquete con los siguientes estados de conexi�n:

      • ESTABLISHED El paquete seleccionado se asocia con otros paquetes en una conexi�n establecida.

      • INVALID El paquete seleccionado no puede ser asociado a una conexi�n conocida.

      • NEW El paquete seleccionado o bien est� creando una nueva conexi�n o bien forma parte de una conexi�n de dos caminos que antes no hab�a sido vista.

      • RELATED El paquete seleccionado est� iniciando una nueva conexi�n en alg�n punto de la conexi�n existente.

      Estos estados de conexi�n se pueden utilizar en combinaci�n con otros separ�ndolos mediante comas como en -m state --state INVALID, NEW.

  • m�dulo mac — Habilita la coincidencia de direcciones MAC de hardware.

    El m�dulo mac activa las opciones siguientes:

    • --mac-source — Coincide una direcci�n MAC a la tarjeta de red que envi� el paquete. Para excluir una direcci�n MAC de la regla, coloque un s�mbolo de exclamaci�n (!) despu�s de la opci�n --mac-source.

Para visualizar otras opciones disponibles a trav�s de los m�dulos, consulte la p�gina del manual de iptables.

18.3.5. Opciones del objetivo

Una vez que un paquete ha coincidido con una regla, la regla puede dirigir el paquete a un n�mero de objetivos diferentes que deciden su suerte y, posiblemente, toman acciones adicionales. Cada cadena tiene un objetivo por defecto, el cual es usado si ninguna de las reglas en esa cadena coinciden con un paquete o si ninguna de las reglas que coinciden con el paquete especifica un objetivo.

Los siguientes son los objetivos est�ndar:

  • <user-defined-chain> — Reemplace <user-defined-chain> con el nombre de una cadena definida por el usuario dentro de la tabla. Este objetivo pasa el paquete a la cadena objetivo.

  • ACCEPT — Permite que el paquete se mueva hacia su destino (o hacia otra cadena, si no ha sido configurado ning�n destino para seguir a esta cadena).

  • DROP — Deja caer el paquete sin responder al solicitante. El sistema que envia el paquete no es notificado de esta falla.

  • QUEUE — El paquete se pone en una cola para ser manejado por una aplicaci�n en el espacio de usuario.

  • RETURN — Para la verificaci�n del paquete contra las reglas de la cadena actual. Si el paquete con un destino RETURN cumple una regla de una cadena llamada desde otra cadena, el paquete es devuelto a la primera cadena para retomar la verificaci�n de la regla all� donde se dej�. Si la regla RETURN se utiliza en una cadena predefinida, y el paquete no puede moverse hacia la cadena anterior, el objetivo por defecto de la cadena actual decide qu� acci�n llevar a cabo.

Adem�s de estos objetivos standard, se pueden usar otros m�s con extensiones llamadas m�dulos de objetivos (target modules). Para obtener m�s informaci�n sobre los m�dulos de opciones de coincidencias, mire en la Secci�n 18.3.4.4.

Existen varios m�dulos extendidos de objetivos, la mayor�a de los cuales tan s�lo se aplican a tablas o situaciones espec�ficas. Un par de estos m�dulos, de los m�s populares e incluidos por defecto en Red Hat Enterprise Linux son:

  • LOG — Registra todos los paquetes que coinciden esta regla. Puesto que los paquetes son registrados por el kernel, el archivo /etc/syslog.conf determina d�nde estas entradas de registro ser�n escritas. Por defecto, son colocadas en el archivo /var/log/messages.

    Se pueden usar varias opciones adicionales tras el objetivo LOG para especificar la manera en la que tendr� lugar el registro:

    • --log-level — Configura el nivel de prioridad del registro de eventos. Una lista de los niveles de prioridad se puede encontrar en la p�gina del manual de syslog.conf.

    • --log-ip-options Cualquier opci�n en la cabecera de un paquete IP se guarda en el registro.

    • --log-prefix — Coloca una cadena de hasta 29 caracteres antes de la l�nea de registro cuando es escrita. Esto es muy �til para la escritura de filtros de syslog para usarlos en conjunto con el registro de paquetes.

    • --log-tcp-options — Cualquier opci�n colocada en la cabecera de un paquete TCP es registrada.

    • --log-tcp-sequence Escribe el n�mero de secuencia TCP del paquete en el registro del sistema.

  • REJECT — Envia un paquete de error de vuelta al sistema remoto y deja caer el paquete.

    El objetivo REJECT acepta --reject-with <tipo> (donde <tipo> es el tipo de rechazo) el cual permite devolver informaci�n m�s detallada con el paquete de error. El mensaje port-unreachable es el <tipo> de error por defecto dado si no se usa otra opci�n. Para una lista completa de los <tipo>s de opciones que se pueden usar, consulte la p�gina del manual de iptables.

Otras extensiones de objetivos, incluyendo muchas que son �tiles para el enmascaramiento de IP usando la tabla nat o con alteraci�n de paquetes usando la tabla mangle, se puede encontrar en la p�gina del manual de iptables.

18.3.6. Opciones de listado

El comando predeterminado para listar, iptables -L, proporciona una vista muy b�sica de los filtros por defecto de las cadenas actuales de la tabla. Las opciones adicionales proporcionan m�s informaci�n:

  • -v — Muestra la salida por pantalla con detalles, como el n�mero de paquetes y bytes que cada cadena ha visto, el n�mero de paquetes y bytes que cada regla ha encontrado y qu� interfaces se aplican a una regla en particular.

  • -x Expande los n�meros en sus valores exactos. En un sistema ocupado, el n�mero de paquetes y bytes vistos por una cadena en concreto o por una regla puede estar abreviado usando K (miles), M (millones), y G (billones) detr�s del n�mero. Esta opci�n fuerza a que se muestre el n�mero completo.

  • -n Muestra las direcciones IP y los n�meros de puertos en formato num�rico, en lugar de utilizar el nombre del servidor y la red tal y como se hace por defecto.

  • --line-numbers — Proporciona una lista de cada cadena junto con su orden num�rico en la cadena. Esta opci�n puede ser �til cuando est� intentando borrar una regla espec�fica en una cadena o localizar d�nde insertar una regla en una cadena.

  • -t — Especifica un nombre de tabla.

 
 
  Published under the terms of the GNU General Public License Design by Interspire