>Объясните, пожалуйста, смысл такого часто встречающегося выражения как -p tcp -m tcp
>
>(аналогично -p udp -m udp, -p icmp -m icmp)
>какие причины дополнительно к -p указывать такие extension-ы Эти ключи относятся чуть к разным частям пакета.
Та, что "-p tcp" смотрит, что протокол-таки ==tcp и _не_ обрабатывается модулем -m tcp.
А за "-m tcp" обычно следуют параметры этого самого модуля -- осмысленные только для этого самого протокола (и соотв.пакетов).
Выражение часто встречается, так как считается, наверное, логичным сначала сделать (быструю) встроенную проверку (-p tcp), прежде чем вызывать более специализированную из внешнего модуля (медленную?).
-t filter -A in_mailpass_pop3_s1 -p tcp --sport 1024:65535 --dport 110 -m state --state NEW\,ESTABLISHED -j ACCEPT
-t filter -A out_mailpass_pop3_s1 -p tcp --sport 110 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT
В более общем случае - первыми идут "встроенные" опции, потом "вызов" внеш.модулей -- каждого со своими параметрами... Хотя... если приглядеться к man iptables, то-таки
"-p tcp" _подразумевает загрузку "-m tcp" и всё выше сказанное оказывается... ээээ... немного :D неточным.