Eu tenho essa regra no meu iptables:
iptables -A INPUT -p tcp -m tcp --dport 9191 -j DROP
Eu realmente preciso de "-m tcp"? Já estou usando "-p tcp", então devo usar "-m tcp" para ser mais seguro?
Eu tenho essa regra no meu iptables:
iptables -A INPUT -p tcp -m tcp --dport 9191 -j DROP
Eu realmente preciso de "-m tcp"? Já estou usando "-p tcp", então devo usar "-m tcp" para ser mais seguro?
Com a
-p tcp
opção o módulo tcp já está carregado e por isso é um tanto redundante e não é obrigatório usar a-m tcp
opção e não vejo porque usar essa opção tornaria a regra mais segura.Por favor, veja a página de manual do iptables para uma melhor compreensão e comparação:
...
E para uma lista de opções disponíveis,
-p tcp
veja aqui:http://ipset.netfilter.org/iptables-extensions.man.html#lbCF
Conforme mencionado acima, com o uso da
-m
opção é possível adicionar módulos de extensão e mais opções correspondentes ficam disponíveis. Por exemplo, o módulo cpu :Lista completa de iptables-extensions.
Pergunta adicional do OP: não entendo o que -m corresponde. Que corda? -m tcp corresponde a quê? Ele tenta encontrar a palavra "tcp" onde?
Resposta:
-m
é para combinar o nome do módulo e não a string. Ao usar um módulo específico, você obtém certas opções correspondentes. Veja o exemplo do módulo cpu acima. Com o-m tcp
módulo tcp é carregado. O módulo tcp permite algumas opções:--dport, --sport, --tcp-flags, --syn, --tcp-option
para usar nas regras do iptables. Mas usar-p tcp
já habilita o módulo tcp, é por isso que ainda é possível usar essas opções mesmo sem usar-m tcp
. Espero que esclareça toda a sua confusão.