Eu vi uma técnica semelhante usada em vários iptables
exemplos para combinar novas conexões:
-A INPUT -p tcp -m tcp --dport 443 --syn -m conntrack --ctstate NEW -j SSH
Como visto acima, as conexões TCP são verificadas em relação aos sinalizadores TCP (SYN deve ser 1 e RST, ACK e FIN 0) por tcp
módulo além --ctstate NEW
do conntrack
módulo. Oferece alguma vantagem sobre isso:
-A INPUT -p tcp -m tcp --dport 443 -m conntrack --ctstate NEW -j SSH
Minha suposição é que sim porque os módulos de correspondência são avaliados na ordem em que são especificados na regra e sem --syn
, todos os pacotes TCP para a porta 443 seriam passados de tcp
módulo para conntrack
módulo. Em outras palavras, --syn
deve fornecer esse paradigma fail-fast.
É basicamente isso. Na prática, é o mecanismo de extensão que está em curto-circuito; a página de manual diz
No caso acima, a regra utiliza duas extensões: a
tcp
extensão, que processa--dport
e--syn
, seguida daconntrack
extensão, que processa--ctstate
. Se atcp
extensão não corresponder, aconntrack
extensão será totalmente ignorada.