iptables: хост / сеть не найдены с несколькими источниками и местами назначения

Когда я пытаюсь запустить эту команду:

iptables -A FORWARD -p tcp --dport 22 -s 1.2.4.0/24,9.2.3.0/24 -d 1.2.3.1,1.2.3.2 -j ACCEPT

Я получаю такую ​​ошибку:

iptables v1.4.1.1: host/network `1.2.4.0/24,9.2.3.0' not found

Однако, если я запускаю все 4 правила, используя 4 отдельные команды, у меня нет проблем. Разве iptables не поддерживает несколько адресов источников и мест назначения с использованием запятой?

благодаря

1 ответ

Решение

iptables 1.4.1.1 был выпущен 6 июня 2008 г.: почти 12 лет назад. Поэтому при проверке руководств следует проверять руководство для его собственной версии. Загрузив исходный код с https://netfilter.org/projects/iptables/files/iptables-1.4.1.1.tar.bz2 или посмотрев на: https://git.netfilter.org/iptables/tree/iptables.8.in?h=v1.4.1.1#n271, вот содержимое источника справочной страницы:

-s, --source [!] address[/mask]

Спецификация источника. Адрес может быть либо сетевым именем, либо именем хоста
[...]

Справочная страница 1.8.2:

[!] -s, --source address[/mask][,...]

Спецификация источника. Адрес может быть либо сетевым именем, либо именем хоста
[...]
Можно указать несколько адресов, но это будет расширено до нескольких правил
[...]

Старая версия просто не поддерживает несколько адресов. В конце концов, нет никакой технической разницы: это то же самое, что и 4 (2x2) правила.

Пожалуйста, обновите вашу ОС. Наверное, поддержки больше нет.

Другие вопросы по тегам