iptables -p все --dport

13

Iptables , кажется, не признает --dportс -p all.

iptables -A INPUT -p all --dport www -j ACCEPT

выходы:

iptables v1.4.4: unknown option `--dport'
Try `iptables -h' or 'iptables --help' for more information.

--destination-port doesn't work either: iptables v1.4.4: unknown option `--destination-port'

Добавление двух отдельных правил для -p tcpи -p udpработает нормально, так почему не работает -p all?

В случае, если это имеет значение, это на сервере Ubuntu 10.04 LTS с пакетом iptables версии 1.4.4-2ubuntu2

darkfeline
источник

Ответы:

16

--dport не является флагом для общих правил iptables. Это флаг для одного из расширенных модулей сопоставления пакетов . Они загружаются при использовании -p protocolили -m. Если вы не укажете -m <protocol>или -p <protocol>с конкретным протоколом вы не можете использовать--dport

Вы увидите это на странице справки iptables (8) :

   tcp
       These extensions can be used if `--protocol tcp' is specified. It provides the
       following options:
       ...
       [!] --destination-port,--dport port[:port]
              Destination port or port range specification.  The flag --dport is a
              convenient alias for this option.
       ...

Не все протоколы имеют флаг --dport, потому что не все протоколы поддерживают понятие портов

Филип Рейнольдс
источник
7

«все» охватывает больше, чем просто TCP и UDP; он также охватывает протоколы, такие как ICMP, которые не имеют понятия номеров портов и, следовательно, не могут принимать параметр --dport.

techieb0y
источник