Iptables e --tcp-flags

1

Se eu tiver a seguinte regra na tabela nat na cadeia de pré-criação:

   0     0 REDIRECT   tcp  --  eth5  any     anywhere             anywhere             tcp flags:FIN,SYN,RST,ACK/SYN redir ports 20000

Minha intenção é DNAT para a interface de entrada (daí o alvo de redirecionamento) e eu quero redirecionar apenas os pacotes onde o SYN-Flag está definido e todos os outros sinalizadores estão indefinidos. Eu estou querendo saber se esta regra está correta. O que acontece se houver um pacote com apenas o SYN e o URG Flag set? Ou apenas com o sinalizador SYN e PUSH? Tanto quanto eu sei que não seria compatível com a regra acima. Neste caso, o pacote simplesmente não seria redirecionado.

Pelo que entendi, devo alterar a regra --tcp-flags para:

--tcp-flags ALL SYN

Nesse caso, mesmo que os sinalizadores PUSH e URG estejam definidos, ele (Edit: NOT !!) será redirecionado e é o que eu quero. Então é por isso que acho que isso seria correto.

O meu raciocínio está certo?

Edit: Como estou pensando nisso, estou ficando cada vez mais confuso. Refletindo sobre o que acabei de escrever, não importa se incluímos o flag PUSH ou URG, porque parece que em ambos os casos ele não seria redirecionado. Então, logicamente, parece que

FIN,SYN,RST,ACK/SYN is equal to --tcp-flags ALL SYN
    
por pepperoni15 27.09.2014 / 17:53

0 respostas