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

Centos 7 сохраняет настройки iptables

Проблема: 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) больше не работает.

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

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

systemctl disable firewalld

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

yum install iptables-services

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

systemctl enable iptables

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

service iptables save

CentOS 7 использует БрандмауэрD сейчас! Использовать --permanent флаг для сохранения настроек.

Пример:

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

Затем перезагрузите правила:

firewall-cmd --reload

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

sudo yum install -y iptables-services

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

sudo systemctl enable iptables.service

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

sudo /usr/libexec/iptables/iptables.init save
iptables-save > /etc/sysconfig/iptables

сохранит текущую конфигурацию без необходимости устанавливать какие-либо другие библиотеки или службы.

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

Может быть, такой сценарий кому-нибудь был бы полезен?

Помните, что вы потеряете все, что настроено в настоящее время, потому что он удаляет firewalld и сбрасывает все текущие правила в таблице INPUT:

yum remove firewalld && yum install iptables-services

iptables --flush INPUT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT            # Any packages related to an existing connection are OK
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT   # ssh is OK
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 3000 -j ACCEPT   # Port 3000 for IPv4 is OK
iptables -A INPUT -j REJECT # any other traffic is not welcome - this should be the last line
service iptables save       # Save IPv4 IPTABLES rules van memory naar disk
systemctl enable iptables   # To make sure the IPv4 rules are reloaded at system startup

Я думаю, вы хотите того же, если ваша система может быть достигнута (сейчас или в любое время позже) трафиком IPv6:

ip6tables --flush INPUT
ip6tables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT            # Any packages related to an existing connection are OK
ip6tables -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT   # ssh is OK
ip6tables -A INPUT -m state --state NEW -m tcp -p tcp --dport 3000 -j ACCEPT   # Port 3000 for IPv6 is OK
ip6tables -A INPUT -j REJECT # any other traffic is not welcome - this should be the last line
service ip6tables save       # Save IPv6 IPTABLES rules van memory naar disk
systemctl enable ip6tables   # To make sure the IPv6 rules are reloaded at system startup