Я получаю следующую ошибку при конфигурировании iptables на сервере Debian 7.6 для входа новых соединений TCP:
Bad argument `NEW'
Error occurred at line: ##
Строка, бросающая ошибку, отформатирована как таковая:
-A INBOUND-ACCEPT -p tcp -m state --state NEW -j LOG --log-prefix ' NEW INBOUND TCP ' --log-level 4
Я использую команду 'iptables-восстановления' для применения правил брандмауэра из файла. Какова проблема с моей конфигурацией здесь? Любая помощь значительно ценится.
ОТМЕТЬТЕ ВХОДЯЩИЙ - ПРИНИМАЮТ, цепочка, которую я создал для упрощения входа для принятых пакетов. Существует несколько других столь же отформатированных строк в цепочке для UDP и входа ICMP, но устранение проблемы для этого правила позволит мне решать проблему для других строк в моем файле правил.
Я обнаружил, что использование '-m state' и '--state STATE' устарело. Я не смог решить эту проблему, используя эти параметры, но использование «-m conntrack» и «--ctstate STATE» вместо прежних параметров разрешило проблему. Ниже приведена моя последняя команда, которая исправила это:
-A INBOUND-ACCEPT -p tcp -m conntrack --ctstate NEW -j LOG --log-prefix " NEW INBOUND TCP " --log-level 4
EDIT Один из членов моей команды помог мне найти решение, я не заметил, но он не только заменил '-m state' и '--state STATE 'с эквивалентами conntrack, он также заменил одинарные кавычки на двойные.
Попытка выполнить команду на тестовой машине RHEL. Он работал нормально.
Когда я запустил iptables-save
, команда сохранила его в двойных кавычках:
# Generated by iptables-save v1.3.5 on Thu Mar 12 13:12:45 2015
*filter
:INPUT ACCEPT [399357208:150111383153]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [311789762:341416567394]
-A INBOUND-ACCEPT -p tcp -m state --state NEW -j LOG --log-prefix " NEW INBOOUND TCP "
COMMIT
# Completed on Thu Mar 12 13:12:45 2015
Вы можете использовать вместо них двойные кавычки.