Qual é o objetivo de -m, --match em uma regra do Iptables?

5

Muitas regras Iptables contêm essa opção -m ou --match , por exemplo

-I INPUT -p tcp -m state --state NEW -m limit --limit 30/minute --limit-burst 5 -j ACCEPT
-A INPUT -p udp -m conntrack --ctstate NEW -j UDP
-A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -m conntrack --ctstate NEW -j TCP
-A INPUT -p icmp -m conntrack --ctstate NEW -j ICMP

Esta -m ou --match é simplesmente a opção "especial" que é um precursor de uma opção "normal"?
por exemplo, com esta regra

-A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -m conntrack --ctstate NEW -j TCP

O termo -m tcp diz a Iptables, a próxima opção a seguir será destinada ao tcp module - então o --tcp-flags FIN,SYN,RST,ACK SYN term será interpretado nesse contexto?
Em outras palavras, a opção -m tcp não teria sentido se fosse especificada por si mesma dentro de uma regra do Iptables?

    
por the_velour_fog 09.11.2015 / 05:38

1 resposta

6

A opção -m ou --match é usada para habilitar um ou mais módulos de correspondência de pacotes estendidos com o (s) nome (s) dado (s). Tomemos por exemplo o módulo connbytes . Isso pode ser usado para criar regras que correspondam a quantos bytes uma conexão foi transferida.

A página man do iptables fornece uma boa descrição disso:

iptables can use extended packet matching modules. These are loaded in two ways: implicitly, when -p or --protocol is specified, or with the -m or --match options, followed by the matching module name; after these, various extra command line options become available, depending on the specific module. You can specify multiple extended match modules in one line, and you can use the -h or --help options after the module has been specified to receive help specific to that module.

Eu recomendo a leitura da página iptables-extensions man, que documenta os módulos incluídos na distribuição padrão do iptables:

$ man iptables-extensions
    
por 09.11.2015 / 09:11

Tags