Я начинаю использовать RHEL7 и немного узнаю об изменениях, которые происходят с systemd.
Есть ли способ выполнить /sbin/service iptables save
в firewalld?
$ /sbin/service iptables save
The service command supports only basic LSB actions (start, stop, restart, try-restart, reload, force-reload, status). For other actions, please try to use systemctl.
Ближайшая параллель, которую я могу найти в документации, - это --reload
:
Reload the firewall without loosing state information:
$ firewall-cmd --reload
Но здесь не сказано явно, сохраняется это или нет.
Версия firewalld в RHEL 7.0 не имеет сценария «сохранения» и не имеет возможности скопировать текущую конфигурацию межсетевого экрана в постоянную конфигурацию. Вы сохраняете изменение брандмауэра с помощью firewalld, добавляя --permanent
в командную строку, вносящую изменения. Без него любые внесенные вами изменения являются временными и будут потеряны при перезапуске системы.
Например:
firewall-cmd --add-service=http # Running config
firewall-cmd --add-service=http --permanent # Startup config
Более поздние (после RHEL 7) версии firewalld действительно включают способ сохранения текущей конфигурации, и теперь он доступен в Fedora и в RHEL 7.1. В этом случае команда проста:
firewall-cmd --runtime-to-permanent
Мне нужно было добавить службу SIP и несколько IP-адресов
в каталоге / usr / lib / firewalld / services / я добавил sip.xml на основе других служебных файлов xml.
<?xml version="1.0" encoding="utf-8"?>
<service>
<short>SIP</short>
<description>This is SIP, Yo! </description>
<port protocol="udp" port="5060"/>
</service>
Затем я добавил сервис sip в firewalld
# firewall-cmd --add-service=sip --permanent
Затем я добавил IP-адреса для обслуживания в /etc/firewalld/zones/public.xml
<?xml version="1.0" encoding="utf-8"?>
<zone>
<short>Public</short>
<description></description>
<service name="dhcpv6-client"/>
<service name="http"/>
<service name="ssh"/>
<service name="https"/>
<rule family="ipv4">
<source address="x.x.x.x/32"/>
<service name="sip"/>
<accept/>
</rule>
</zone>
вы также можете добавить LOG, если вы добавите уровень ведения журнала
<rule family="ipv4">
<source address="x.x.x.x/32"/>
<service name="sip"
<log prefix="sip" level="info"/>
<accept/>
</rule>
после того, как вы добавили правила в свою зону, выполните
# firewall-cmd --reload
проверьте свои iptables - все готово.