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

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 из другого места или чего-то еще.

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

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

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

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

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

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

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

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

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

service iptables restart


Standard iptables disclaimer: just in case something goes wrong...

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

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

iptables-save > /etc/sysconfig/iptables

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

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

yum install iptables-services

затем введите следующую команду, чтобы сохранить правила iptable

service iptables save