LinuxParty

Inicio desactivadoInicio desactivadoInicio desactivadoInicio desactivadoInicio desactivado
 

Las coincidencias explícitas son aquellas que tienen que cargarse específicamente con la opción -m o --match. Las coincidencias de estado, por ejemplo, exigen el estado de directiva -m antes de ingresar la coincidencia real que desea usar. Algunas de estas coincidencias pueden ser específicas del protocolo. Algunos pueden estar desconectados de cualquier protocolo específico, por ejemplo, estados de conexión. Estos podrían ser NEW (el primer paquete de una conexión aún no establecida), ESTABLISHEDED (una conexión que ya está registrada en el kernel), RELATED (una conexión nueva que fue creada por una establecida antigua) etc. Algunos pueden simplemente se han desarrollado para pruebas o con fines experimentales, o simplemente para ilustrar lo que es capaz de hacer iptables. Esto a su vez significa que no todas estas coincidencias pueden ser útiles a primera vista. Sin embargo, es posible que personalmente encuentre un uso para coincidencias explícitas específicas. Y hay nuevos que vienen todo el tiempo, con cada nueva versión de iptables. Si usted encuentra un uso para ellos o no depende de su imaginación y sus necesidades. La diferencia entre las coincidencias cargadas implícitamente y las cargadas explícitamente es que las coincidencias cargadas implícitamente se cargarán automáticamente cuando, por ejemplo, coincida con las propiedades de los paquetes TCP, mientras que las coincidencias cargadas explícitamente nunca se cargarán automáticamente. Depende de usted para descubrir y activar coincidencias explícitas.

10.3.1. coincidencia AH / ESP

Estas coincidencias se utilizan para los protocolos IPSEC AH y ESP. IPSEC se utiliza para crear túneles seguros a través de una conexión a Internet insegura. Los protocolos AH y ESP son utilizados por IPSEC para crear estas conexiones seguras. Los partidos AH y ESP son en realidad dos partidos separados, pero ambos se describen aquí ya que se parecen mucho, y ambos se usan en la misma función.

No entraré en detalles para describir IPSEC aquí, sino que miraré las siguientes páginas y documentos para más información:

  • RFC 2401 - Arquitectura de seguridad para el protocolo de Internet
  • FreeS / WAN
  • IPSEC Howto
  • Linux Advanced Routing y Traffic Control HOW-TO

También hay una tonelada más de documentación en Internet sobre esto, pero usted es libre de buscarlo según sea necesario.

Para usar las coincidencias AH / ESP, necesita usar -m ah para cargar las coincidencias AH, y -m esp para cargar las coincidencias ESP.

Nota

En los kernels 2.2 y 2.4, Linux usó algo llamado FreeS / WAN para la implementación de IPSEC, pero a partir del kernel de Linux 2.5.47 y posteriores, los kernels de Linux tienen una implementación directa de IPSEC que no requiere parchear el kernel. Esta es una reescritura total de la implementación de IPSEC en Linux.

Table 10-5. AH match options

Match --ahspi
Kernel 2.5 and 2.6
Example iptables -A INPUT -p 51 -m ah --ahspi 500
Explanation Esto concuerda con el número AH de Índice de parámetros de seguridad (SPI) de los paquetes AH. Tenga en cuenta que también debe especificar el protocolo, ya que AH se ejecuta en un protocolo diferente de los protocolos estándar TCP, UDP o ICMP. El número SPI se usa junto con la dirección de origen y destino y las claves secretas para crear una asociación de seguridad (SA). El SA identifica de manera única todos y cada uno de los túneles IPSEC a todos los hosts. El SPI se utiliza para distinguir de manera única cada túnel IPSEC conectado entre los mismos dos pares. Usando la coincidencia --ahspi, podemos hacer coincidir un paquete basado en el SPI de los paquetes. Esta coincidencia puede coincidir con un rango completo de valores SPI utilizando un signo: como 500: 520, que coincidirá con todo el rango de SPI.

Table 10-6. ESP match options

Match --espspi
Kernel 2.5 and 2.6
Example iptables -A INPUT -p 50 -m esp --espspi 500
Explanation El índice de parámetros de seguridad (SPI) homólogo ESP se utiliza exactamente de la misma manera que la variante AH. El partido se ve exactamente igual, con la diferencia esp / ah. Por supuesto, esta coincidencia puede coincidir con toda una gama de números SPI, así como la variante AH de la coincidencia SPI, como --espspi 200: 250 que coincide con el rango completo de SPI.

10.3.2. Conntrack match

La coincidencia conntrack es una versión extendida de la coincidencia de estado, que permite emparejar paquetes de una manera mucho más granular. Le permite ver la información directamente disponible en el sistema de seguimiento de conexión, sin ningún sistema de "frontend", como en el estado de coincidencia. Para obtener más información sobre el sistema de seguimiento de conexión, consulte el capítulo El equipo de estado.

Hay varias coincidencias diferentes reunidas en la coincidencia conntrack, para varios campos diferentes en el sistema de seguimiento de conexión. Estos se compilan juntos en la lista a continuación. Para cargar estas coincidencias, debe especificar -m conntrack.

Tabla 10-7. Opciones de concordancia de Conntrack

Partido --ctstate
Núcleo 2.5 y 2.6
Ejemplo iptables -A INPUT -p tcp -m conntrack --ctstate RELATED
Explicación

Esta coincidencia se usa para coincidir con el estado de un paquete, de acuerdo con el estado conntrack. Se usa para coincidir con los mismos estados que en la coincidencia de estado original. Las entradas válidas para este partido son:

  • INVALID

  • ESTABLISHED

  • NEW

  • RELATED

  • SNAT

  • DNAT

Las entradas se pueden usar juntas entre sí por una coma. Por ejemplo, -m conntrack --ctstate ESTABLISHED, RELATED . ¡También se puede invertir poniendo un! detrás de conntrack y delante de --ctstate. Por ejemplo: -m conntrack! --ctstate ESTABLISHED, RELATED , que coincida con todos los estados ESTABLISHED y RELATED.

Partido ---ctproto
Núcleo 2.5 y 2.6
Ejemplo iptables -A INPUT -p tcp -m conntrack --ctproto TCP
Explicación

Esto coincide con el protocolo, lo mismo que el protocolo . Puede tomar los mismos tipos de valores, y se invierte utilizando! firmar. Por ejemplo, -m conntrack ! --ctproto TCP coincide con todos los protocolos, pero el protocolo TCP.

Partido --ctorigsrc
Núcleo 2.5 y 2.6
Ejemplo iptables -A INPUT -p tcp -m conntrack -ctorigsrc 192.168.0.0/24
Explicación

--ctorigsrc coincide en función de la especificación IP de origen original de la entrada conntrack con la que está relacionado el paquete. El partido se puede invertir usando a! entre la especificación --ctorigsrc y IP, como --ctorigsrc! 192.168.0.1 . También puede tomar una máscara de red del formulario CIDR, como --ctorigsrc 192.168.0.0/24 .

Partido --ctorigdst
Núcleo 2.5 y 2.6
Ejemplo iptables -A INPUT -p tcp -m conntrack -ctorigdst 192.168.0.0/24
Explicación

Esta coincidencia se usa exactamente como --ctorigsrc , excepto que coincide en el campo de destino de la entrada conntrack. Tiene la misma sintaxis en todos los demás aspectos.

Partido --ctreplsrc
Núcleo 2.5 y 2.6
Ejemplo iptables -A INPUT -p tcp -m conntrack --ctreplysrc 192.168.0.0/24
Explicación

La coincidencia --ctreplysrc se utiliza para hacer coincidir según el origen de respuesta conntrack original del paquete. Básicamente, esto es lo mismo que --ctorigsrc , pero en su lugar coincidimos con la fuente de respuesta esperada de los próximos paquetes. Este objetivo puede, por supuesto, invertirse y abordar una amplia gama de direcciones, al igual que los objetivos anteriores en esta clase.

Partido --ctrepldst
Núcleo 2.5 y 2.6
Ejemplo iptables -A INPUT -p tcp -m conntrack --ctreplydst 192.168.0.0/24
Explicación

La coincidencia --ctreplystst es la misma que la coincidencia --ctreplysrc, con la excepción de que coincide con el destino de respuesta de la entrada conntrack que coincide con el paquete. También se puede invertir y aceptar rangos, al igual que la coincidencia --ctreplysrc .

Partido --ctstate
Núcleo 2.5 y 2.6
Ejemplo iptables -A INPUT -p tcp -m conntrack --ctstatus RELATED
Explicación

Esto coincide con el estado de la conexión. Puede coincidir con los siguientes estados.

  • (NONE) NINGUNO: la conexión no tiene ningún estado.

  • (EXPECTED) ESPERADO: esta conexión se espera y fue agregada por uno de los manejadores de expectativas.

  • SEEN_REPLY: esta conexión ha recibido una respuesta pero aún no está asegurada.

  • (ASSURED) ASEGURADO: la conexión está asegurada y no se eliminará hasta que se agote el tiempo o la conexión se cierre por cualquier extremo.

Esto también se puede invertir usando el! firmar. Por ejemplom conntrack ! --ctstatus ASSURED que coincidirá con todos menos con el estado ASEGURADO.

Partido --ctexpire
Núcleo 2.5 y 2.6
Ejemplo iptables -A INPUT -p tcp -m conntrack --ctexpire 100:150
Explicación

Esta coincidencia se usa para hacer coincidir los paquetes en función de cuánto tiempo queda en el temporizador de vencimiento de la entrada conntrack, medida en segundos. Puede tomar un único valor y coincidir con, o un rango como en el ejemplo anterior. ¡También se puede invertir usando el! signo, como este -m conntrack ! --ctexpire 100 . Esto coincidirá con cada tiempo de caducidad, que no tiene exactamente 100 segundos restantes.

10.3.3. Match (coincidencia) DSCP

Esta coincidencia se utiliza para coincidir en paquetes basados ​​en su campo DSCP (Punto de código de servicios diferenciados). Esto está documentado en el RFC 2638 - Una arquitectura de servicios diferenciados de dos bits para Internet RFC. La coincidencia se carga explícitamente especificando -m dscp . El partido puede tomar dos opciones mutuamente excluyentes, que se describen a continuación.

Tabla 10-8. Opciones de coincidencia DSCP

Partido --dscp
Núcleo 2.5 y 2.6
Ejemplo iptables -A INPUT -p tcp -m dscp --dscp 32
Explicación

Esta opción toma un valor de DSCP en decimal o en hexadecimal. Si el valor de la opción está en decimal, se escribirá como 32 o 16, etcétera. Si está escrito en hexadecimal, debe tener el prefijo 0x, así: 0x20. ¡También se puede invertir usando el! personaje, así: -m dscp! --dscp 32 .

Partido --dscp-class
Núcleo 2.5 y 2.6
Ejemplo iptables -A INPUT -p tcp -m dscp --dscp-class BE
Explicación

La coincidencia de clase --dscp se usa para coincidir en la clase DiffServ de un paquete. Los valores pueden ser cualquiera de las clases BE, EF, AFxx o CSx como se especifica en los diversos RFC. Esta coincidencia se puede invertir de la misma manera que la opción --dscp .

 

Tenga en cuenta que las opciones --dscp y --dscp-class son mutuamente excluyentes y no se pueden usar en conjunto.

10.3.4. ECN match

La coincidencia ECN se utiliza para coincidir en los diferentes campos ECN en los encabezados TCP e IPv4. ECN se describe en detalle en el RFC 3168 - La adición de la notificación explícita de congestión (ECN) a IP RFC. La coincidencia se carga explícitamente utilizando -m ecn en la línea de comando. La coincidencia de ECN toma tres opciones diferentes como se describe a continuación.

Tabla 10-9. Opciones de coincidencia de ECN

Partido --ecn
Núcleo 2.4, 2.5 y 2.6
Ejemplo iptables -A INPUT -p tcp -m ecn --ecn-tcp-cwr
Explicación

Esta coincidencia se usa para coincidir con el bit CWR ( ventana de congestión recibida ), si se ha configurado. El indicador CWR está configurado para notificar al otro extremo de la conexión que han recibido un ECE , y que han reaccionado a él. Por defecto, esto coincide si el bit CWR está configurado, pero la coincidencia también puede invertirse usando un signo de exclamación.

Partido --ecn-tcp-ece
Núcleo 2.4, 2.5 y 2.6
Ejemplo iptables -A INPUT -p tcp -m ecn --ecn-tcp-ece
Explicación

Esta coincidencia se puede usar para que coincida con el bit ECE ( ECN-Echo ). El ECE se establece una vez que uno de los puntos finales ha recibido un paquete con el bit CE establecido por un enrutador. El punto final luego establece el ECE en el paquete ACK de retorno, para notificar al otro punto final que necesita disminuir la velocidad. El otro punto final envía un paquete CWR como se describe en la explicación --ecn-tcp-cwr . Esto coincide por defecto si el bit ECE está establecido, pero puede invertirse usando un signo de exclamación.

Partido --ecn-ip-ect
Núcleo 2.4, 2.5 y 2.6
Ejemplo iptables -A INPUT -p tcp -m ecn --ecn-ip-ect 1
Explicación

La coincidencia --ecn-ip-ect se utiliza para que coincida con los puntos de código ECT ( ECN Capable Transport ). Los puntos de código ECT tienen varios tipos de uso. Principalmente, se usan para negociar si la conexión es compatible con ECN al establecer uno de los dos bits en 1. El ECT también lo usan los enrutadores para indicar que experimentan congestión, al establecer ambos puntos de código ECT en 1. Los valores de ECT son todo disponible en el campo ECN en la tabla IP a continuación.

¡El partido puede invertirse usando un signo de exclamación, por ejemplo ! --ecn-ip-ect 2 que coincidirá con todos los valores ECN pero con el punto de código ECT (0). El rango de valores válidos es 0-3 en iptables. Consulte la tabla anterior para conocer sus valores.

Tabla 10-10. ECN Field en IP

Valor IptablesECTCE[Obsoleto] RFC 2481 nombres para los bits ECN.
0 0 0 Not-ECT, es decir. conexión no compatible con ECN.
1 0 1 ECT (1), Nueva convención de nomenclatura de puntos de código ECT en RFC 3168.
2 1 0 ECT (0), Nueva convención de nomenclatura de puntos de código ECT en RFC 3168.
3 1 1 CE (Congestion Experienced), Usado para notificar puntos finales de congestión

10.3.5. Match de ayuda

Esta es una coincidencia poco ortodoxa en comparación con las otras coincidencias, en el sentido de que usa una sintaxis un poco específica. La coincidencia se utiliza para unir paquetes, en función de conntrack helper con el que está relacionado el paquete. Por ejemplo, veamos la sesión FTP . La sesión de Control se abre y los puertos / conexión se negocian para la sesión de Datos dentro de la sesión de Control. El módulo auxiliar ip_conntrack_ftp encontrará esta información y creará una entrada relacionada en la tabla conntrack. Ahora, cuando ingresa un paquete, podemos ver con qué protocolo está relacionado y podemos hacer coincidir el paquete en nuestro conjunto de reglas en función de qué helper fue utilizado.

Tabla 10-11. Opciones de coincidencia de Helper

Partido --helper
Núcleo 2.4, 2.5 y 2.6
Ejemplo iptables -A INPUT -p tcp -m helper --helper ftp-21
Explicación

La opción --helper se usa para especificar un valor de cadena, indicando la coincidencia que conntrack helper para que coincida. En la forma básica, puede parecerse a --helper irc . Aquí es donde la sintaxis comienza a cambiar desde la sintaxis normal. También podemos optar por emparejar paquetes solo según el puerto en el que se captó la expectativa original. Por ejemplo, la sesión de Control de FTP normalmente se transfiere a través del puerto 21, pero también puede ser el puerto 954 o cualquier otro puerto. A continuación, podemos especificar en qué puerto debe captarse la expectativa, como --helper ftp-954 .

10.3.6. Coincidencia de rango de IP

La coincidencia de rango de IP se utiliza para coincidir con los rangos de IP, del mismo modo que las coincidencias de origen y de destino también pueden funcionar. Sin embargo, esta coincidencia agrega un tipo diferente de concordancia en el sentido de que es capaz de coincidir de IP a IP, lo cual no es posible con las coincidencias de fuente y dedestino . Esto puede ser necesario en algunas configuraciones de red específicas, y es bastante más flexible.

Tabla 10-12. Opciones de coincidencia de rango de IP

Partido --src-range
Núcleo 2.4, 2.5 y 2.6
Ejemplo iptables -A INPUT -p tcp -m iprange --src-range 192.168.1.13-192.168.2.19
Explicación

Esto coincide con un rango de direcciones IP de origen. El rango incluye cada una de las direcciones IP desde la primera hasta la última, por lo que el ejemplo anterior incluye todo, desde 192.168.1.13 hasta 192.168.2.19. El partido también puede invertirse agregando un ! . El ejemplo anterior se vería como -m iprange ! --src-range 192.168.1.13-192.168.2.19 , que coincidiría con todas y cada una de las direcciones IP, excepto las especificadas.

Partido --dst-range
Núcleo 2.4, 2.5 y 2.6
Ejemplo iptables -A INPUT -p tcp -m iprange -dst-range 192.168.1.13-192.168.2.19
Explicación

El --dst-range funciona exactamente igual que la coincidencia de rango -src , excepto que coincide con la IP de destino en lugar de la IP de origen.

10.3.7. Partido de longitud

La coincidencia de longitud se utiliza para unir paquetes en función de su longitud. Es muy simple. Si desea limitar la longitud del paquete por alguna extraña razón, o desea bloquear el comportamiento de ping-of-death-like, use la coincidencia de longitud.

Tabla 10-13. Opciones de coincidencia de longitud

Partido --length
Núcleo 2.4, 2.5 y 2.6
Ejemplo iptables -A INPUT -p tcp -m length --length 1400:1500
Explicación

El ejemplo --length coincidirá con todos los paquetes con una longitud entre 1400 y 1500 bytes. El partido también puede invertirse usando el ! firmar, así: -m length ! --length 1400:1500 . También se puede usar para hacer coincidir solo una longitud específica, eliminando el signo: y más adelante, así: -m length -length 1400 . La coincidencia de rango es, por supuesto, inclusiva, lo que significa que incluye todas las longitudes de paquete entre los valores que especifique.

10.3.8. Match de límite

La extensión de coincidencia de límite debe cargarse explícitamente con la opción -m limit . Esta coincidencia puede utilizarse, por ejemplo, para proporcionar un registro limitado de reglas específicas, etc. Por ejemplo, puede usar esto para hacer coincidir todos los paquetes que no excedan un valor dado, y después de que se haya excedido este valor, limite el registro de el evento en cuestión. Piense en un límite de tiempo: podría limitar cuántas veces una regla determinada puede coincidir en un determinado período de tiempo, por ejemplo, para disminuir los efectos de los ataques de inundación DoS syn. Este es su uso principal, pero hay más usos, por supuesto. La coincidencia de límite también se puede invertir agregando a ! bandera delante de la coincidencia de límite. ¡Entonces se expresaría como -m límite! --limit 5 / s . Esto significa que todos los paquetes se emparejarán después de que hayan roto el límite.

Para explicar mejor la coincidencia de límite, es básicamente un filtro de contenedor simbólico. Considere tener un cubo con fugas en el que el cubo gotea X paquetes por unidad de tiempo. X se define según la cantidad de paquetes coincidentes que obtenemos, de modo que si obtenemos 3 paquetes, el depósito pierde 3 paquetes por esa unidad de tiempo. La opción --limit nos dice cuántos paquetes rellenar el cubo por unidad de tiempo, mientras que la opción --limit-burst nos dice qué tan grande es el cubo en primer lugar. Por lo tanto, establecer --limit 3 / minute --limit-burst 5 , y luego recibir 5 coincidencias vaciará la cubeta. Después de 20 segundos, la cubeta se vuelve a llenar con otra ficha, y así sucesivamente hasta que se alcance el límite de explosión o hasta que se usen.

Considere el ejemplo a continuación para una explicación más detallada de cómo se puede ver esto.

  1. Establecemos una regla con -m límite - límite 5 / segundo - límite-explosión 10 / segundo. El contenedor de tokens de límite de ráfagas se establece inicialmente en 10. Cada paquete que coincide con la regla usa un token.

  2. Recibimos paquetes que coinciden, 1-2-3-4-5-6-7-8-9-10, todo dentro de 1/1000 de segundo.

  3. El contenedor de tokens ahora está vacío. Una vez que el contenedor de tokens está vacío, los paquetes que cumplen con los requisitos de la regla ya no coinciden con la regla y continúan con la siguiente regla, si corresponde, o acceden a la política de la cadena.

  4. Por cada 1/5 s sin un paquete coincidente, el conteo de tokens aumenta en 1, hasta un máximo de 10. 1 segundo después de recibir los 10 paquetes, nuevamente tendremos 5 tokens restantes.

  5. Y, por supuesto, el contenedor se vaciará en 1 ficha por cada paquete que reciba.

Tabla 10-14. Limitar las opciones de coincidencia

Partido --limit
Núcleo 2.3, 2.4, 2.5 y 2.6
Ejemplo iptables -A INPUT -m limit --limit 3/hour
Explicación Esto establece la tasa de coincidencia promedio máxima para la coincidencia de límite . Usted lo especifica con un número y una unidad de tiempo opcional. Las siguientes unidades de tiempo se reconocen actualmente: / segundo / minuto / hora / día . El valor predeterminado aquí es 3 por hora o 3 / hora . Esto le dice al límite que coincida cuántas veces para permitir que la coincidencia se produzca por unidad de tiempo (por ejemplo, por minuto).
Partido --limit-burst
Núcleo 2.3, 2.4, 2.5 y 2.6
Ejemplo iptables -A INPUT -m limit --limit-burst 5
Explicación Esta es la configuración para ellímite de ráfaga de la coincidencia de límite . Le dice a iptables la cantidad máxima de paquetes para unir dentro de la unidad de tiempo dada. Este número se reduce en una unidad por cada unidad de tiempo (especificada por la opción --limit ) en la que no ocurre el evento, retrocede al valor más bajo posible, 1. Si el evento se repite, el contador se incrementa de nuevo, hasta el conteo alcanza el límite de explosión. Y así. El valor predeterminado --limit-burst es 5. Para una forma simple de verificar cómo funciona esto, puede usar el ejemplo Limit-match.txt one-rule-script. Con esta secuencia de comandos, puede ver por sí mismo cómo funciona la regla de límite, simplemente enviando paquetes de ping a diferentes intervalos y en diferentes números de ráfaga. Todas las respuestas de eco se bloquearán hasta que se alcance nuevamente el umbral para el límite de ráfaga.

10.3.9. Partido MAC

La coincidencia MAC ( Control de acceso a medios Ethernet ) se puede usar para unir paquetes en función de su dirección de origen MAC . Al escribir esta documentación, este emparejamiento es un poco limitado, sin embargo, en el futuro esto puede ser más evolucionado y puede ser más útil. Esta coincidencia se puede usar para unir paquetes en la dirección MAC de origen solo como se dijo anteriormente.

 

Tenga en cuenta que para usar este módulo lo cargamos explícitamente con la opción -m mac . La razón por la que estoy diciendo esto es porque mucha gente se pregunta si no debería ser -m mac-source , lo que no debería ser.

Tabla 10-15. Opciones de coincidencia de MAC

Partido --mac-source
Núcleo 2.3, 2.4, 2.5 y 2.6
Ejemplo iptables -A INPUT -m mac --mac-source 00: 00: 00: 00: 00: 01
Explicación Esta coincidencia se utiliza para unir paquetes basados ​​en su dirección de origen MAC. La dirección MAC especificada debe tener el formato XX:XX:XX:XX:XX:XX , de lo contrario no será legal. El partido puede ser revertido con un ! firmar y se vería como --mac-source! 00: 00: 00: 00: 00: 01 . En otras palabras, esto invertiría el significado de la coincidencia, de modo que todos los paquetes, excepto los paquetes de esta dirección MAC, coincidirían. Tenga en cuenta que dado que las direcciones MAC solo se utilizan en redes de tipo Ethernet, esta coincidencia solo será posible para interfaces Ethernet. La coincidencia MAC solo es válida en las cadenas PREROUTING, FORWARD e INPUT y en ninguna otra parte.

10.3.10. Marcar partido

La extensión de concordancia de marca se usa para unir paquetes basados ​​en las marcas que han establecido. Una marca es un campo especial, solo mantenido dentro del kernel, que está asociado con los paquetes a medida que viajan a través de la computadora. Las marcas pueden ser utilizadas por diferentes rutinas del kernel para tareas tales como el modelado del tráfico y el filtrado. A partir de hoy, solo hay una forma de establecer una marca en Linux, es decir, el objetivo MARK en iptables . Esto se hizo previamente con el objetivo FWMARK en ipchains , y esta es la razón por la cual las personas todavía se refieren a FWMARK en áreas avanzadas de enrutamiento. El campo de marca está actualmente configurado en un entero sin signo, o 4294967296 valores posibles en un sistema de 32 bits. En otras palabras, probablemente no te topes con este límite por bastante tiempo.

Tabla 10-16. Marcar opciones de coincidencia

Partido --mark
Núcleo 2.3, 2.4, 2.5 y 2.6
Ejemplo iptables -t mangle -A INPUT -m mark --mark 1
Explicación Esta coincidencia se usa para unir paquetes que han sido marcados previamente. Las marcas se pueden establecer con el objetivo MARK , que discutiremos en la siguiente sección. Todos los paquetes que viajan a través de Netfilter obtienen un campo de marca especial asociado a ellos. Tenga en cuenta que este campo de marca no se propaga de ninguna manera, dentro o fuera del paquete. Permanece dentro de la computadora que lo hizo. Si el campo de marca coincide con la marca, es una coincidencia. El campo de marca es un entero sin signo, por lo tanto, puede haber un máximo de 4294967296 marcas diferentes. También puedes usar una máscara con la marca. La especificación de la marca se vería así, por ejemplo, --mark 1/1 . Si se especifica una máscara, lógicamente se edita con la marca especificada antes de la comparación real.

10.3.11. Partido multipuerto

La extensión de coincidencia multipuerto se puede usar para especificar múltiples puertos de destino y rangos de puertos. Sin la posibilidad de que este emparejamiento dé, tendría que usar múltiples reglas del mismo tipo, solo para hacer coincidir diferentes puertos.

 

No puede usar tanto la coincidencia de puerto estándar como la coincidencia de multipuerto al mismo tiempo, por ejemplo, no puede escribir: --port 1024: 63353 -m puerto múltiple - puerto 21,23,80 . Esto simplemente no funcionará. Lo que de hecho sucede, si lo hace, es que iptables respeta el primer elemento de la regla e ignora la instrucción multipuerto.

Tabla 10-17. Opciones de coincidencia multipuerto

Partido --source-port
Núcleo 2.3, 2.4, 2.5 y 2.6
Ejemplo iptables -A INPUT -p tcp -m multiport --source-port 22,53,80,110
Explicación Esta coincidencia coincide con múltiples puertos de origen. Se puede especificar un máximo de 15 puertos separados. Los puertos deben estar delimitados por comas, como en el ejemplo anterior. La coincidencia solo se puede usar junto con las coincidencias -p tcp o -p udp . Es principalmente una versión mejorada de la coincidencia de fuente y puerto normal.
Partido --destination-port
Núcleo 2.3, 2.4, 2.5 y 2.6
Ejemplo iptables -A INPUT -p tcp -m multiport --destination-port 22,53,80,110
Explicación Esta coincidencia se usa para hacer coincidir múltiples puertos de destino. Funciona exactamente de la misma manera que la coincidencia del puerto fuente mencionado anteriormente, excepto que coincide con los puertos de destino. También tiene un límite de 15 puertos y solo se puede usar junto con -p tcp y -p udp .
Partido --port
Núcleo 2.3, 2.4, 2.5 y 2.6
Ejemplo iptables -A INPUT -p tcp -m multiport --port 22,53,80,110
Explicación Esta extensión de coincidencia se puede usar para unir paquetes basados ​​tanto en su puerto de destino como en su puerto de origen. Funciona de la misma manera que el --source-port y --destination-port coincide anteriormente. Puede tomar un máximo de 15 puertos y solo se puede usar junto con -p tcp y -p udp . Tenga en cuenta que la coincidencia de puerto solo coincidirá con los paquetes que entren y vayan al mismo puerto, por ejemplo, el puerto 80 al puerto 80, el puerto 110 al puerto 110 y así sucesivamente.

10.3.12. Coincidencia del propietario

La extensión de coincidencia del propietario se utiliza para unir paquetes en función de la identidad del proceso que los creó. El propietario puede especificarse como el ID del proceso del usuario que emitió el comando en cuestión, el del grupo, el proceso, la sesión o la del comando mismo. Esta extensión se escribió originalmente como un ejemplo de para qué se podría usar iptables . El emparejamiento propietario solo funciona dentro de la cadena OUTPUT, por razones obvias: es casi imposible encontrar información sobre la identidad de la instancia que envió un paquete desde el otro extremo, o donde hay un salto intermedio al destino real . Incluso dentro de la cadena OUTPUT no es muy confiable, ya que ciertos paquetes pueden no tener un propietario. Los paquetes notorios de ese tipo son (entre otras cosas) las diferentes respuestas ICMP. Las respuestas ICMP nunca coincidirán.

Tabla 10-18. Opciones de coincidencia del propietario

Partido --uid-owner
Núcleo 2.3, 2.4, 2.5 y 2.6
Ejemplo iptables -A OUTPUT -m owner --uid-owner 500
Explicación Esta coincidencia de paquete coincidirá si el paquete fue creado por elID de usuario(UID) dado. Esto podría usarse para unir paquetes salientes en función de quién los creó. Un posible uso sería bloquear a cualquier otro usuario que no sea el usuario root abriendo nuevas conexiones fuera de su firewall. Otro posible uso podría ser bloquear a todos menos al usuariohttp paraque no envíe paquetes desde el puerto HTTP .
Partido --gid-owner
Núcleo 2.3, 2.4, 2.5 y 2.6
Ejemplo iptables -A OUTPUT -m owner --gid-owner 0
Explicación Esta coincidencia se usa para unir todos los paquetes según suID de grupo(GID). Esto significa que unimos todos los paquetes según el grupo en el que esté el usuario que crea los paquetes. Esto podría usarse para bloquear a todos los usuarios del grupo deredes yno a Internet o, como se describió anteriormente, solo a los miembros de el grupohttppara crear paquetes que salgan del puerto HTTP .
Partido --pid-owner
Núcleo 2.3, 2.4, 2.5 y 2.6
Ejemplo iptables -A OUTPUT -m owner --pid-owner 78
Explicación Esta coincidencia se usa para unir paquetes basados ​​en el ID de proceso ( PID ) que fue responsable de ellos. Esta coincidencia es un poco más difícil de usar, pero un ejemplo sería solo permitir que el PID 94 envíe paquetes desde el puerto HTTP (si el proceso HTTP no está enhebrado, por supuesto). Alternativamente, podríamos escribir una pequeña secuencia de comandos que capture el PID de una salida de ps para un daemon específico y luego se le agregará una regla. Por ejemplo, podría tener una regla como se muestra en el ejemplo Pid-owner.txt .
Partido --sid-owner
Núcleo 2.3, 2.4, 2.5 y 2.6
Ejemplo iptables -A OUTPUT -m owner --sid-owner 100
Explicación Esta coincidencia se usa para unir paquetes basados ​​en la ID de sesión utilizada por el programa en cuestión. El valor del SID o ID de sesión de un proceso es el del proceso en sí y todos los procesos resultantes del proceso de origen. Estos últimos podrían ser hilos o un elemento secundario del proceso original. Entonces, por ejemplo, todos nuestros procesos HTTPD deben tener el mismo SID que su proceso principal (el proceso HTTPD de origen), si nuestro HTTPD está enhebrado (la mayoría de los HTTPD son, por ejemplo, Apache y Roxen). Para mostrar esto en el ejemplo, hemos creado un pequeño script llamado Sid-owner.txt . Esta secuencia de comandos podría ejecutarse cada hora más o menos junto con algún código adicional para verificar si el HTTPD se está ejecutando realmente y volver a iniciarlo si es necesario, luego enjuague y vuelva a ingresar a nuestra cadena de SALIDA si es necesario.

10.3.13. Tipo de paquete partido

La coincidencia de tipo de paquete se utiliza para unir paquetes según su tipo. Es decir, están destinados a una persona específica, a todos o a un grupo específico de máquinas o usuarios. Estos tres grupos generalmente se denominan unidifusión, difusión y multidifusión, como se explica en el capítulo de repetición de TCP / IP . La coincidencia se carga utilizando -m pkttype .

Tabla 10-19. Opciones de coincidencia de tipo de paquete

Partido --pkttype
Núcleo 2.3, 2.4, 2.5 y 2.6
Ejemplo iptables -A OUTPUT -m owner --pkttype unicast
Explicación

La coincidencia --pkttype se usa para indicar el tipo de paquete que corresponde con el tipo de paquete. Puede tomar unicast , broadcast o multicast como argumento, como en el ejemplo. ¡También se puede invertir usando a ! así: -m pkttype --pkttype! broadcast , que coincidirá con todos los demás tipos de paquetes.

10.3.14. Partido reciente

La coincidencia reciente es un sistema de concordancia bastante grande y complejo, que nos permite unir paquetes basados ​​en eventos recientes que hemos igualado previamente. Por ejemplo, si veríamos una conexión IRC saliente, podríamos establecer las direcciones IP en una lista de hosts, y tener otra regla que permita que vuelvan las solicitudes identificadas del servidor IRC dentro de los 15 segundos de ver el paquete original.

Antes de que podamos echar un vistazo más de cerca a este partido, intentemos explicar un poco cómo funciona. En primer lugar, utilizamos varias reglas diferentes para lograr el uso de la coincidencia reciente. El partido reciente usa varias listas diferentes de eventos recientes. La lista predeterminada que se utiliza es la lista DEFAULT. Creamos una nueva entrada en una lista con la opción set, de modo que una vez que una regla coincide por completo (la opción set siempre es una coincidencia), también agregamos una entrada en la lista reciente especificada. La entrada de la lista contiene una marca de tiempo y la dirección IP de origen utilizada en el paquete que desencadenó la opción establecida. Una vez que esto haya sucedido, podemos utilizar una serie de opciones recientes diferentes para que coincidan con esta información, así como también actualizar la marca de tiempo de las entradas, etcétera.

Finalmente, si por algún motivo quisiéramos eliminar una entrada de la lista, lo haríamos utilizando la coincidencia de eliminación del módulo reciente. Todas las reglas que usan la coincidencia reciente deben cargar el módulo reciente ( -m reciente ) como de costumbre. Antes de continuar con un ejemplo de la coincidencia reciente, echemos un vistazo a todas las opciones.

Tabla 10-20. Opciones de partido recientes

Partido --name
Núcleo 2.4, 2.5 y 2.6
Ejemplo iptables -A OUTPUT -m recent --name examplelist
Explicación

La opción de nombre da el nombre de la lista para usar. Por defecto, se utiliza la lista DEFAULT, que probablemente no es la que queremos si estamos usando más de una lista.

Partido --set
Núcleo 2.4, 2.5 y 2.6
Ejemplo iptables -A OUTPUT -m recent --set
Explicación

Esto crea una nueva entrada de lista en la lista reciente nombrada, que contiene una marca de tiempo y la dirección IP de origen del host que activó la regla. Este partido siempre tendrá éxito, a menos que esté precedido por un! firmar, en cuyo caso devolverá la falla.

Partido --rcheck
Núcleo 2.4, 2.5 y 2.6
Ejemplo iptables -A OUTPUT -m recent --name examplelist --rcheck
Explicación

La opción --rcheck verificará si la dirección IP de origen del paquete está en la lista nombrada. Si es así, la coincidencia será verdadera, de lo contrario, devuelve falso. La opción puede invertirse usando el! firmar. En el caso posterior, devolverá verdadero si la dirección IP de origen no está en la lista, y falso si está en la lista.

Partido --update
Núcleo 2.4, 2.5 y 2.6
Ejemplo iptables -A OUTPUT -m recent --name examplelist --update
Explicación

Esta coincidencia es verdadera si la combinación de fuente está disponible en la lista especificada y también actualiza la hora vista por última vez en la lista. Este partido también puede revertirse configurando ! marca delante del partido. Por ejemplo ,! - actualización

Partido --remove
Núcleo 2.4, 2.5 y 2.6
Ejemplo iptables -A INPUT -m recent --name example --remove
Explicación

Esta coincidencia intentará encontrar la dirección de origen del paquete en la lista y devolverá verdadero si el paquete está allí. También eliminará la entrada de lista correspondiente de la lista. El comando también es posible invertir con ! firmar.

Partido --seconds
Núcleo 2.4, 2.5 y 2.6
Ejemplo iptables -A INPUT -m recent --name example --check --seconds 60
Explicación

Esta coincidencia solo es válida junto con las coincidencias --check y --update . La coincidencia de --segundos se utiliza para especificar por cuánto tiempo desde la última columna vista se actualizó en la lista reciente. Si la última columna vista era anterior a esta cantidad en segundos, la coincidencia es falsa. Aparte de esto, el partido reciente funciona normalmente, por lo que la dirección de origen debe estar todavía en la lista para un verdadero retorno del partido.

Partido --hitcount
Núcleo 2.4, 2.5 y 2.6
Ejemplo iptables -A INPUT -m recent --name example --check --hitcount 20
Explicación

La coincidencia de cuenta se debe usar junto con las coincidencias --check o --date y limitará la coincidencia para incluir solo paquetes que hayan visto al menos la cantidad de paquetes de hitcount. Si esta coincidencia se usa junto con la coincidencia de --segundos , requerirá que se vean los paquetes de hitcount especificados en el marco de tiempo específico. Este partido también puede revertirse agregando un ! firmar en frente del partido. Junto con la coincidencia de --segundos , esto significa que es posible que se haya visto un máximo de esta cantidad de paquetes durante el período de tiempo especificado. Si ambas coincidencias se invierten, es posible que se haya visto un máximo de esta cantidad de paquetes durante la última mínima de segundos.

Partido --rttl
Núcleo 2.4, 2.5 y 2.6
Ejemplo iptables -A INPUT -m recent --name example --check --rttl
Explicación

La coincidencia --rttl se utiliza para verificar que el valor TTL del paquete actual sea el mismo que el paquete original que se usó para establecer la entrada original en la lista reciente. Esto se puede usar para verificar que las personas no estén falsificando su dirección de origen para negar a otros el acceso a sus servidores haciendo uso de la coincidencia reciente.

Partido --rsource
Núcleo 2.4, 2.5 y 2.6
Ejemplo iptables -A INPUT -m recent --name example --rsource
Explicación

La coincidencia de --rsource se usa para indicar a la coincidencia reciente que guarde la dirección de origen y el puerto en la lista reciente. Este es el comportamiento predeterminado de la coincidencia reciente.

Partido --rdest
Núcleo 2.4, 2.5 y 2.6
Ejemplo iptables -A INPUT -m recent --name example --rdest
Explicación

La coincidencia más antigua es la opuesta a la coincidencia de -rsource en que indica a la coincidencia reciente que guarde la dirección y el puerto de destino en la lista reciente.

En resumen, este es un reemplazo deficiente para el motor de estado disponible en netfilter. Esta versión se creó con un servidor http en mente, pero funcionará con cualquier conexión TCP. Primero hemos creado dos cadenas llamadas http-recent y http-recent-final. La cadena http-recentse usa en las etapas iniciales de la conexión y para la transmisión de datos real, mientras que la cadena http recent-final se utiliza para el último y final intercambio de información FIN , FIN / ACK .

 

Este es un reemplazo muy malo para el motor de estado incorporado y no puede manejar todas las posibilidades que el motor de estado puede manejar. Sin embargo, es un buen ejemplo de lo que se puede hacer con el partido reciente sin ser demasiado específico. No use este ejemplo en un entorno del mundo real. Es lento, maneja mal los casos especiales y, en general, nunca debe usarse más que como ejemplo.

Por ejemplo, no maneja los puertos cerrados en la conexión, como un saludo de FIN indirecto (donde una de las partes conectadas se cierra, mientras que la otra continúa enviando datos), etc.

Sigamos un paquete a través del conjunto de reglas de ejemplo. Primero, un paquete ingresa a la cadena INPUT, y lo enviamos a la cadena http-recent.

  1. El primer paquete debe ser un paquete SYN, y no debe tener los bits ACK, FIN o RST establecidos. Por lo tanto, coincide con la línea --tcp-flags SYN, ACK, FIN, RST SYN . En este punto, agregamos la conexión al httplist usando -m reciente --name httplist --set línea. Finalmente aceptamos el paquete.

  2. Después del primer paquete, deberíamos recibir un paquete SYN / ACK para confirmar que se recibió el paquete SYN. Esto se puede combinar usando la línea --tcp-flags SYN, ACK, FIN, RST SYN, ACK . FIN y RST también deberían ser ilegales en este punto. En este punto, actualizamos la entrada en el httplist usando -m reciente --name httplist --update y finalmente ACEPTAMOS el paquete.

  3. Por ahora deberíamos obtener un paquete ACK final, desde el creador original de la conexión, para confirmar el SYN / ACK enviado por el servidor. SYN, FIN y RST son ilegales en este punto de la conexión, por lo que la línea debería verse como --tcp-flags SYN, ACK, FIN, RST ACK . Actualizamos la lista exactamente de la misma manera que en el paso anterior y la ACEPTAMOS.

  4. En este punto, la transmisión de datos puede comenzar. La conexión nunca debe contener ningún paquete SYN ahora, pero contendrá paquetes ACK para reconocer los paquetes de datos que se envían. Cada vez que vemos un paquete como este, actualizamos la lista y ACEPTAMOS los paquetes.

  5. La transmisión se puede finalizar de dos maneras, la más simple es el paquete RST. RST simplemente restablecerá la conexión y morirá. Con FIN, el otro punto final responde con un FIN, ACK, y esto cierra la conexión para que la fuente original de FIN ya no pueda enviar datos. El receptor de la FIN todavía podrá enviar datos, por lo que enviamos la conexión a una cadena de etapas "final" para manejar el resto.

  6. En la cadena http-recent-final comprobamos si el paquete todavía está en el httplist, y si es así, lo enviamos a la cadena http-recent-final1. En esa cadena, eliminamos la conexión del httplist y la agregamos a la lista http-recent-final. Si la conexión ya se ha eliminado y trasladado a la lista http reciente, le enviamos el paquete a la cadena http-recent-final2.

  7. En la última cadena http-recent-final2, esperamos que el lado no cerrado termine de enviar sus datos y también cierre la conexión desde su lado. Una vez hecho esto, la conexión se elimina por completo.

Como puede ver, la lista reciente puede volverse bastante compleja, pero le brindará un gran conjunto de posibilidades si es necesario. Aún así, trate de recordar no reinventar la rueda. Si la capacidad que necesita ya está implementada, intente utilizarla en lugar de tratar de crear su propia solución.

10.3.15. Partido estatal

La extensión de coincidencia de estado se utiliza junto con el código de seguimiento de conexión en el kernel. La coincidencia de estado accede al estado de seguimiento de la conexión de los paquetes desde la máquina conntracking. Esto nos permite saber en qué estado se encuentra la conexión y funciona para prácticamente todos los protocolos, incluidos protocolos sin estado como ICMP y UDP. En todos los casos, habrá un tiempo de espera predeterminado para la conexión y luego se eliminará de la base de datos de seguimiento de la conexión. Esta coincidencia debe cargarse explícitamente al agregar una declaración de -m state a la regla. A continuación, tendrá acceso a una nueva coincidencia llamada estado.

Tabla 10-21. Partidos estatales

Partido --state
Núcleo 2.3, 2.4, 2.5 y 2.6
Ejemplo iptables -A INPUT -m state --state RELATED,ESTABLISHED
Explicación

Esta opción de coincidencia le dice al estado que coinciden en qué estados deben estar los paquetes para que coincidan. Actualmente hay 4 estados que se pueden usar. NO VÁLIDO , ESTABLISHED , NUEVO y RELATED . NO VÁLIDO significa que el paquete no está asociado a ninguna transmisión o flujo conocido y que puede contener datos o encabezados defectuosos. ESTABLISHEDED significa que el paquete es parte de una conexión ya establecida que ha visto paquetes en ambas direcciones y es completamente válida. NUEVO significa que el paquete tiene o comenzará una nueva conexión, o que está asociado con una conexión que no ha visto paquetes en ambas direcciones. Finalmente, RELATED significa que el paquete está iniciando una nueva conexión y está asociado con una conexión ya establecida. Esto podría significar, por ejemplo, una transferencia de datos FTP o un error ICMP asociado con una conexión TCP o UDP. Tenga en cuenta que el estado NUEVO no busca bits SYN en paquetes TCP que intentan iniciar una nueva conexión y, por lo tanto, no debe utilizarse sin modificaciones en los casos en que solo tenemos un firewall y ningún equilibrio de carga entre diferentes firewalls. Sin embargo, puede haber ocasiones en que esto podría ser útil. Para obtener más información sobre cómo se puede usar esto, lea el capítulo El equipo de estado .

10.3.16. Coincidencia TCPMSS

La coincidencia de tcpmss se usa para hacer coincidir un paquete basado en el Tamaño de segmento máximo en TCP. Esta coincidencia solo es válida para los paquetes SYN y SYN / ACK. Para obtener una explicación más completa del valor de MSS, consulte el apéndice de opciones de TCP , el RFC 793 - Protocolo de control de transmisión y el RFC 1122 - Requisitos para los servidores de Internet - Documentos de capas de comunicación . Esta coincidencia se carga usando -m tcpmss y toma solo una opción.

Tabla 10-22. Opciones de coincidencia de TCPMSS

Partido --mss
Núcleo 2.3, 2.4, 2.5 y 2.6
Ejemplo iptables -A INPUT -p tcp --tcp-flags SYN,ACK,RST SYN -m tcpmss --mss 2000:2500
Explicación

La opción --mss le dice al tcpmss que coincide con los Tamaños máximos de segmento para que coincidan. Esto puede ser un único valor MSS específico o un rango de valores MSS separados por a :. El valor también puede invertirse como de costumbre con ! firmar, como en el siguiente ejemplo:

-m tcpmss ! --mss 2000:2500

. Este ejemplo coincidirá con todos los valores de MSS, a excepción de los valores en el rango de 2000 a 2500.

10.3.17. TOS coinciden

La coincidencia de TOS se puede usar para unir paquetes en función de su campo de TOS . TOS significa Tipo de servicio, consta de 8 bits y se encuentra en el encabezado IP. Esta coincidencia se carga explícitamente agregando -m tos a la regla. TOS se usa normalmente para informar a los hosts intermedios de la precedencia de la transmisión y su contenido (en realidad no lo hace, pero informa de cualquier requisito específico para la transmisión, como que se debe enviar lo más rápido posible o que necesita para poder enviar tanta carga útil como sea posible). La forma en que los enrutadores y administradores se encargan de estos valores depende. A la mayoría no les importa en absoluto, mientras que otros hacen todo lo posible para hacer algo bueno con los paquetes en cuestión y la información que proporcionan.

Tabla 10-23. TOS coincide

Partido --tos
Núcleo 2.3, 2.4, 2.5 y 2.6
Ejemplo iptables -A INPUT -p tcp -m tos --tos 0x16
Explicación Esta coincidencia se usa como se describió anteriormente. Puede emparejar paquetes basados ​​en su campo de TOS y su valor. Esto podría usarse, entre otras cosas, junto con el iproute2 y las funciones avanzadas de enrutamiento en Linux, para marcar paquetes para su uso posterior. La coincidencia toma un valor hexadecimal o numérico como una opción, o posiblemente uno de los nombres resultantes de ' iptables -m tos -h '. En el momento de la redacción, contenía los siguientes valores con nombre:Minimize-Delay 16 (0x10),Maximize-Throughput 8 (0x08),Maximize-Confiability 4 (0x04),Minimize-Cost 2 (0x02)yNormal-Service 0 ( 0x00).Minimize-Delaysignifica minimizar el retraso en la entrega de los paquetes, por ejemplo, los servicios estándar que requerirían incluir telnet, SSH y FTP-control.Maximizar: el rendimientosignifica encontrar una ruta que permita un rendimiento tan grande como sea posible; un protocolo estándar sería FTP-data .Maximize-Reliabilitysignifica maximizar la confiabilidad de la conexión y utilizar líneas que sean lo más confiables posible. Un par de ejemplos típicos son BOOTP y TFTP .Minimize-Costsignifica minimizar el costo de los paquetes que pasan por cada enlace al cliente o servidor; por ejemplo, encontrar la ruta que cueste menos para viajar. Ejemplos de protocolos normales que usarían esto serían RTSP (protocolo de control de flujo en tiempo real) y otros protocolos de transmisión de video / radio. Finalmente,el servicionormal significaría cualquier protocolo normal que no tenga necesidades especiales.

10.3.18. Partido TTL

La coincidencia TTL se utiliza para unir paquetes basados ​​en su campo TTL (Time To Live) que reside en los encabezados de IP. El campo TTL contiene 8 bits de datos y se reduce una vez cada vez que es procesado por un host intermedio entre el cliente y el host del destinatario. Si el TTL llega a 0, un código ICMP de tipo 11 (TTL equivale a 0 durante el tránsito) o el código 1 (TTL es igual a 0 durante el reensamblaje) se transmite a la parte que envía el paquete e informa el problema. Esta coincidencia solo se usa para unir paquetes basados ​​en su TTL, y no para cambiar nada. Este último, por cierto, se aplica a todo tipo de partidos. Para cargar esta coincidencia, debe agregar un -m ttl a la regla.

Tabla 10-24. Partidos TTL

Partido --ttl
Núcleo 2.3, 2.4, 2.5 y 2.6
Ejemplo iptables -A OUTPUT -m ttl --ttl 60
Explicación Esta opción de coincidencia se usa para especificar el valor de TTL para que coincida. Toma un valor numérico y coincide con este valor dentro del paquete. No hay inversión y no hay otros detalles que coincidan. Podría, por ejemplo, usarse para depurar su red local, por ejemplo, hosts LAN que parecen tener problemas para conectarse a hosts en Internet, o para encontrar posibles ingresos por troyanos, etc. Sin embargo, el uso es relativamente limitado; su utilidad realmente depende de tu imaginación. Un ejemplo sería encontrar hosts con valores TTL predeterminados incorrectos (podría deberse a una pila de TCP / IP mal implementada, o simplemente a una configuración incorrecta).

10.3.19. Coincidencia sucia

La coincidencia sucia no toma opciones y no requiere más que cargarla explícitamente cuando quiera usarla. Tenga en cuenta que esta opción se considera experimental y puede no funcionar en todo momento, ni se ocupará de todos los paquetes o problemas sucios. La coincidencia sucia intenta emparejar paquetes que parecen mal formados o inusuales, como paquetes con encabezados incorrectos o sumas de comprobación, etc. Esto podría usarse para conexiones DROP y para detectar corrientes malas, por ejemplo; Sin embargo, debe tener en cuenta que posiblemente podría romper las conexiones legales.

Pin It

Escribir un comentario


Código de seguridad
Refescar



Redes:



 

Suscribete / Newsletter

Suscribete a nuestras Newsletter y periódicamente recibirás un resumen de las noticias publicadas.

Donar a LinuxParty

Probablemente te niegues, pero.. ¿Podrías ayudarnos con una donación?


Tutorial de Linux

Nos obligan a moslestarte con la obviedad de que este sitio utiliza Cookies. Ver política