Вопрос: Iptables не сохраняется после перезагрузки на CentOS 6.2


Я попытался добавить несколько правил в свои iptables, но они, похоже, не сохраняются. Чтобы их сохранить, я попытался запустить iptables-save а также service iptables save, Каждый раз, когда я запускаю любую из этих команд, он говорит, что он успешно сохранил. Вот правила, которые я пытаюсь вставить:

iptables -A INPUT -j REJECT -p tcp --destination-port 3306
iptables -A INPUT -j REJECT -p tcp --destination-port 25

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

При просмотре файла / etc / sysconfig / iptables правила существуют (внизу), и все «завершенные» временные метки происходят, когда я сохранил правила, которые кажутся правильными. Кроме того, в моем файле / etc / sysconfig / iptables-config все настройки заданы по умолчанию и, похоже, ничего не меняют в отношении загрузки правил iptable из другого места или чего-то еще.


7
2018-01-30 17:09


Источник




Ответы:


Если изменения не видны с помощью iptables -L после перезапуска он предполагает, что либо:

  • Правила не сохраняются

    • Вы предполагаете, что они есть, но в то же время говорят «завершенные временные метки» - множественное число. Это может означать, что у вас есть несколько копий правил в одном файле, и применяется только первый набор.
      • Перенаправить вывод из iptables-save в указанный файл (не добавляйте):
        iptables-save> / etc / sysconfig / iptables
      • Кроме того, просто переместите существующий файл в другое место, а затем сохраните.

  • Правила сохраняются в неправильном файле

    • Ваша конфигурация может быть настроена для загрузки другого файла, кроме того, который вы сохраняете, - убедитесь, что загруженный файл соответствует сохраненному файлу.
      • Обычно файл имеет файл / etc / sysconfig / iptables
      • Если вы посмотрите в /etc/init.d/iptables, вы должны найти следующие строки, которые определяют, какой файл будет загружен:
        IPTABLES = Iptables
        IPTABLES_DATA = / и т.д. / sysconfig / $ IPTABLES
  • Ошибка с правилами

    • Обычно это не проблема. Iptables обычно просто игнорирует ошибочные правила; и вы не пишете их вручную (вы сохраняете предположительно рабочий набор правил).

  • iptables не запускается при загрузке

    • бег
      chkconfig --list iptables
      для проверки того, какие загрузочные уровни запуска загружаются. Если на правом уровне запуска не включено, добавьте его с
      chkconfig --level 2345 iptables on

Вы можете проверить свою настройку, просто перезапустив iptables (в отличие от перезапуска машины):

service iptables restart


Стандартный отказ iptables: на всякий случай что-то пойдет не так ...

  • выполните резервное копирование существующего набора правил:
    cp / etc / sysconfig / iptables /etc/sysconfig/iptables.bak
  • настройте задание cron, которое будет очищать ваши iptables через несколько минут (конечно, удалите это, как только все будет работать).

9
2018-01-30 17:50



Большое спасибо. Это работает для меня. Конфигурация My iptables не помещается в файл. Поэтому я использую ptables-save> / etc / sysconfig / iptables - Love


Вы уверены, что iptables-save успешно работает? Все, что он делает, выплевывает текущий файл сохранения правил для текста. Вы должны указать его на / etc / sysconfig / iptables для этого.

iptables-save > /etc/sysconfig/iptables

Вообще говоря, если вы видите какой-либо вывод из iptables-save, он просто выплевывает вывод на ваш дисплей, и это не принесет вам пользы.


3
2018-01-30 18:01





Я думаю, что лучшим решением является: сначала введите следующую команду для установки iptables-services

yum install iptables-services

затем введите следующую команду для сохранения правил iptable

service iptables save

0
2017-11-25 11:21



Этот ответ не добавляет никакой информации к уже существующим ответам (и предоставляет меньше деталей) - BE77Y