-p
especifica o protocolo, enquanto -m
especifica o módulo de correspondência que é usado. O módulo correspondente pode ter um tipo diferente ou você pode especificar vários módulos lá. É por isso que você precisa de bandeiras separadas. Veja a seção de manual do iptables MATCH EXTENSIONS
para os vários usos de -m.
No entanto, no seu caso -p x
implica -m x
, então a segunda regra funciona igualmente bem como a primeira. A terceira regra é inválida. Embora -m possa ficar sozinho em alguns casos, você tem que usá-lo ao longo de -p aqui, pois você não pode usar um módulo de correspondência (protocolo) sem explicitamente especificar o protocolo.