Назад | Перейти на главную страницу

iptables -p all --dport

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.

--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, потому что не все протоколы поддерживают понятие портов.

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