Я новичок в сети и пытаюсь выполнить простую настройку сервера для доступа к локальной сети (SSH и HTTP) с помощью iptables. Я использую CentOS7, если это имеет значение. Я работал с учебниками по формам, и они, кажется, предлагают в качестве первого шага очистить все существующие правила. Я работаю над новой установкой CentOS, и у меня есть пара терминальных окон правил, и я определенно не знаю достаточно, чтобы попытаться восстановить их, если я их убью, и я определенно не знаю, что они делают, поэтому я боюсь если я убью их, начнут происходить проблемы с сетью, которых я не понимаю, или я открою свой сервер для угроз безопасности. В этих туториалах не удосужились объяснить, почему выполняется сброс текущих правил. Я в порядке без сброса, если нет другого правила, которое противоречит тем, которые я добавляю в конце? Если я сделаю сброс, все ли будет восстановлено при перезагрузке, если я не использую сохранение iptable?
Требуется ли сброс для iptables перед добавлением новых правил?
Ответы (1)
Сбрасывать текущие правила не требуется, но иногда лучше начать с чистого листа. Даже если кто-то не хочет нарушать текущую конфигурацию, может оказаться более выгодным полностью перестроить ее с нуля. То есть не только в отношении простоты и эффективности полученной конфигурации, но и в уме при попытке придумать правильные правила.
Если кто-то решает сохранить текущую конфигурацию и использовать ее, он должен иметь в виду, что порядок правил имеет значение. Аргумент -I
можно использовать для вставки новых правил в определенную позицию в указанной цепочке, как написано на справочной странице iptables
:
-I, --insert chain [rulenum] спецификация-правила
Вставьте одно или несколько правил в выбранную цепочку под заданным номером правила. Таким образом, если номер правила равен 1, правило или правила вставляются в начало цепочки. Это также значение по умолчанию, если номер правила не указан.
Прежде чем что-либо изменять, желательно сохранить текущую конфигурацию в файл:
iptables-save > <filename>
Этот файл можно использовать позже для восстановления исходной конфигурации:
iptables-resotre < <filename>
Правила, созданные с помощью команды iptables
, сохраняются в памяти. Если система перезапускается до явного указания обратного, текущий набор правил теряется. На CentOS7
это делается:
service iptables save
Подробности этой командной строки можно найти здесь а>:
При этом выполняется сценарий инициализации
iptables
, который запускает программу/sbin/iptables-save
и записывает текущую конфигурациюiptables
в/etc/sysconfig/iptables
. Существующий файл/etc/sysconfig/iptables
сохраняется как/etc/sysconfig/iptables.save
.При следующей загрузке системы сценарий инициализации
iptables
повторно применяет правила, сохраненные в/etc/sysconfig/iptables
, с помощью команды/sbin/iptables-restore
.
Обратите внимание, что в CentOS7
для управления iptables
был введен firewalld
. Этот ответ объясняет, как можно восстановить классическую настройку iptables
.