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

Есть ли способ запустить просто сохранение с firewalld в RHEL7?

Я начинаю использовать 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 - все готово.