Почему статический сервис Iptables не сохраняет мои изменения?

cut -d: -f1 /etc/passwd |
xargs finger |
awk  '/^Login:/ { user = $2 }
      /^Mail last read/ {print user, $0}'

Или альтернативно

ls -ltu /var/spool/mail

(или /var/mail или везде, где почта расположена в Вашей системе).

19
21.04.2014, 19:12
5 ответов

iptables-persistent не работает. Перезапуск «службы» iptables-persistent не захватывает текущее состояние iptables и не сохраняет его; все, что он делает, это восстанавливает правила iptables, которые были сохранены при последней настройке пакета.

Чтобы настроить iptables-persistent , вам нужно сообщить ему о текущем наборе правил iptables.

Один из способов добиться этого:

iptables-save >/etc/iptables/rules.v4
ip6tables-save >/etc/iptables/rules.v6

Или, что то же самое, пакет iptables-persistent также предоставляет следующее:

dpkg-reconfigure iptables-persistent

(Вам нужно будет ответить «да» на вопросы о том, нужно ли для сохранения правил.)

После этого при следующем запуске / перезапуске iptables-persistent ожидаемые наборы правил iptables будут загружены.

42
27.01.2020, 19:44
$ iptables ... DROP //command successfully drops the rule
$ sudo iptables -L   //shows rule has been deleted

Это не то, что означает или делает DROP . Из man iptables :

... специальные значения ACCEPT, DROP, QUEUE или RETURN. ПРИНЯТЬ означает пропустить пакет. DROP означает сбросить пакет на пол. ОЧЕРЕДЬ означает ...

Итак, вы добавили новое правило. Он может эффективно заменять любое количество других правил, но эти правила все еще существуют.

Проверяя такие вещи (ваш вывод iptables -L ), я бы скармливал его через grep «строку, уникальную для этого правила» , а не смотрел бы вам на глаза. Это проще и быстрее сделать, и меньше подвержено ошибкам.

iptables -L | grep "some unique string"

Если вы хотите удалить правило, используйте переключатель -D ; на странице руководства описаны две формы этого:

-D, --delete chain rule-спецификация

-D, --delete chain rulenum

Удалить одно или несколько правил из выбранной цепочки. Есть две версии этой команды: правило может быть указано в виде номера в цепочке (начиная с 1 для первого правила) или правила для сопоставления.

3
27.01.2020, 19:44

Очень простой способ сохранить текущие правила iptables - использовать команду:

sudo service netfilter-persistent save

Используя приведенное выше, работает по крайней мере в Ubuntu после установки пакета netfilter-persistent iptables-persistent ), нет необходимости запускать вручную команды iptables или перенастраивать пакет (как предлагает даже принятый ответ выше).

9
27.01.2020, 19:44

Как объяснил @steven -monday , вы можете сохранить свой набор правил в соответствующем каталоге (, а именно:/etc/iptables/rules.v{4,6}).

Тем не менее, @OpenITeX прав :, лучше вызывать saveдействие service netfilter-persistent.

На сегодняшний день (в 18.10 )сохранение iptables -встроено, но iptables-persistentне установлено. Следовательно, каталог подключаемых модулей, вызываемый service netfilter-persistent, пуст, и служба выводит, что набор правил был сохранен, хотя это не так.

TLDR :установите iptables-persistentи убедитесь, что каталог подключаемых модулей /usr/share/netfilter-persistent/plugins.dсодержит подключаемые модули.


Вот как я это понял:

$ cat /etc/init.d/netfilter-persistent 
...
case "$1" in
...
save)
    log_action_begin_msg "Saving netfilter rules"
    /usr/sbin/netfilter-persistent save
    log_action_end_msg $?
    ;;

Затем проверьте скрипт /usr/sbin/netfilter-persistent, обратите внимание, что он вызывает внешние скрипты:

$ cat /usr/sbin/netfilter-persistent
...
PLUGINS=/usr/share/netfilter-persistent/plugins.d
...
run_plugins () {
    if [ -d ${PLUGINS} ]; then
        run-parts -v -a ${1} ${PLUGINS}
    fi
}

case $1 in
start|save|flush)
    run_plugins ${1}
    ;;

Потом я заметил, что /usr/share/netfilter-persistent/plugins.dпусто.

2
27.01.2020, 19:44

Установить iptables -постоянный:

sudo apt install iptables-persistent

сохранить правила после внесения необходимых изменений:

sudo netfilter-persistent save
10
27.01.2020, 19:44

Теги

Похожие вопросы