Вопрос: Сохранение настроек iptables в Centos 7


Проблема: iptables сбрасывает настройки по умолчанию после перезагрузки сервера.

Я пытаюсь установить правило следующим образом:

iptables -I INPUT -p tcp --dport 3000 -j ACCEPT

после этого я делаю:

service iptables save

и он пишет что-то вроде этого

iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ]

и после этого я просто побежал (это было сделано один раз):

chkconfig iptables on (Я прочитал, что это нужно сделать, чтобы восстановить настройки после перезагрузки)

После этого я перезагружаюсь и запускаю эту команду:

systemctl list-unit-files | grep iptables

и я вижу, что iptables.service включен, однако правило (открыть порт 3000) больше не работает.

Как сохранить эти настройки?


47
2017-09-05 14:04


Источник


Почему вы просто не использовали firewalld? Вероятно, он все еще работает. - Michael Hampton♦
Вероятно, поскольку firewalld не подходит для серверных сред ... - Juan Jimenez


Ответы:


CentOS 7 использует FirewallD Теперь!

Пример:

firewall-cmd --zone=public --add-port=3000/tcp --permanent

правила перезагрузки:

firewall-cmd --reload

55
2017-09-05 14:13



любая идея, почему изображение centos7 от AWS AMI не имеет firewallD. - Saad Masood
ИЛИ вы можете отключить firewalld и установить пакет «iptables-services» для достижения почти совместимой совместимости iptables :) - vagarwal
Я попытался настроить перенаправление портов 80 -> 8180 для lo (--zone=trusted) с firewalld-cmd, но он не работает (он работает в --zone=public) Выполнение этого с помощью iptables sudo /sbin/iptables -t nat -I PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8180 ; sudo /sbin/iptables -t nat -I OUTPUT -o lo -p tcp --dport 80 -j REDIRECT --to-port 8180 работает (но каждый firewalld --reload проигрывает, отменяет это) - djb
@saad: поскольку aws уже предоставляет услугу брандмауэра, следовательно, ami можно сохранить небольшим - roothahn


Отключите firewalld с помощью следующей команды:

systemctl disable firewalld

Затем установите iptables-service, выполнив следующую команду:

yum install iptables-services

Затем включите iptables в качестве служб:

systemctl enable iptables

Теперь вы можете сохранить свои правила iptable, выполнив команду:

service iptables save

51
2017-11-28 12:58





В CentOS 7 Минимально вам может потребоваться установить iptables-services пакета (благодаря @RichieACC для предложение):

sudo yum install -y iptables-services

А затем включите службу, используя systemd:

sudo systemctl enable iptables.service

И запустите initscript, чтобы сохранить правила брандмауэра:

sudo /usr/libexec/iptables/iptables.init save

18
2018-01-04 17:19





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


0
2017-09-05 15:29



в CentOS7 больше нет файла / etc / sysconfig / iptables - roothahn
Извините @roothahn, но это определенно существует ... если вы не пропустите некоторые пакеты, конечно. Из /usr/lib/systemd/system/iptables.service вы можете видеть, что фактически запущен «/usr/libexec/iptables/iptables.init start», который является обычным старым и дорогим скриптом, который ищет обычный старый файл конфигурации в / etc / sysconfig - stoned
Да /etc/sysconfig/iptables для меня тоже не существует. Однако, /etc/sysconfig/iptables-config существует. Но в нем нет правил брандмауэра, поскольку iptables файл был раньше. - Kentgrav
Я обнаружил, что файл не был установлен по умолчанию, минимальная установка тоже. Похоже, CentOS 7 не устанавливает iptables.service по умолчанию. «yum install -y iptables.service» установил службу и создал для меня по умолчанию / etc / sysconfig / iptables. - RichieACC
Это должно быть "yum install iptables-services" - qris