Parece redundante em primeiro lugar, porque o iptables já carrega automaticamente alguns dos módulos. Com o -p
você especifica o protocolo, onde -m
você cria um argumento de correspondência que verificará os atributos específicos de um pacote TCP.
A documentação especifica que o uso do protocolo ( -p
) é suficiente para carregar todos os itens correspondentes. Fonte e citando:
...These matches are loaded implicitly in a sense, just as the UDP and ICMP matches are loaded implicitly. The other matches will be looked over in the continuation of this section, after the TCP match section.
O uso dessa correspondência faz sentido quando você precisa filtrar várias portas e sabe que a correspondência multiport
não é carregada da mesma maneira que a tcp
one. Exemplo:
# iptables -I INPUT -p tcp -m multiport --dports 80,443 -j ACCEPT
tl; dr: Eles não são redundantes. É apenas uma forma abreviada da mesma forma que você não precisa declarar a tabela padrão ( -t filter
) para cada regra.