-p O protocolo da regra ou do pacote a ser verificado.
O protocolo especificado pode ser um dos tcp, udp, icmp ou todos, ou pode ser um valor numérico, representando um desses protocolos ou um diferente 1. Um nome de protocolo de / etc / protocols também é permitido. UMA "!" argumento antes do protocolo inverte o teste. O número zero é equivalente a todos. Todos os protocolos corresponderão a todos os protocolos e tomado como padrão quando esta opção é omitida.
-m Especifica uma correspondência a ser usada, ou seja, um módulo de extensão que testa uma propriedade específica.
O conjunto de correspondências compõe a condição sob a qual um alvo é invocado. As partidas são avaliadas primeiro para durar, conforme especificado no linha de comando e trabalhar em curto-circuito, ou seja, se uma extensão resulta falso, a avaliação será interrompida.
Informações adicionadas
-m Também corresponde aos pacotes do nome do protocolo especificado. E se '!' precede o nome do protocolo, isso corresponde a todos os pacotes que não são do protocolo especificado. Nomes de protocolos válidos são icmp, udp, tcp ... Uma lista de todos os protocolos válidos pode ser encontrada no arquivo / etc / protocols. Então, acho que seria seguro omitir o -m
Fonte: IPtables ManPage