No iptables, -m u32 --u32 pode ser usado para combinar certos bytes do pacote com valores definidos pelo usuário. Por exemplo,
iptables -A INPUT -p tcp --dport 1000 -m u32 --u32 "xxxxxxxxxxx = 0x11" -j REJEITAR
Através da regra iptables acima, o pacote será rejeitado se o valor de determinado 1 byte forigual a0x11.
Minha dúvida é: como apresentar"não é igual a" ou"não combina"? Na página de manual do iptables, parece que não existe tal !-m ou -m! função.
Responder1
A -m u32
parte da linha de comando especifica o módulo. A --u32
porção especifica a expressão real. Então, a sintaxe que você está procurando é:
iptables -A INPUT -p tcp --dport 1000 -m u32 ! --u32 "xxxxxxxxxxx=0x11" -j REJECT
Veja também opáginas man iptables-extensions, trecho abaixo:
u32
U32 tests whether quantities of up to 4 bytes extracted from a
packet have specified values. The specification of what to
extract is general enough to find data at given offsets from
tcp headers or payloads.
[!] --u32 tests
The argument amounts to a program in a small language described below.