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

Невозможно сохранить правила firewalld с помощью --permanent

Я только что установил Fedora 23 Server. У меня по умолчанию создана одна зона:

# firewall-cmd --get-active-zones
FedoraServer
  interfaces: eth0

Если я добавлю сервис в эту зону, он будет работать нормально:

# firewall-cmd --zone=FedoraServer --add-service=http
success

# firewall-cmd --zone=FedoraServer --list-all
FedoraServer (default, active)
  interfaces: eth0
  sources:
  services: dhcpv6-client http ssh
  ports:
  masquerade: no
  forward-ports:
  icmp-blocks:
  rich rules:

Но теряется при беге firewall-cmd --reload.

Если я попытаюсь сделать его постоянным, как предложено в этот ответ, Я получаю следующую ошибку:

# firewall-cmd --zone=FedoraServer --add-service=http --permanent
Error: INVALID_SERVICE: 'cockpit' not among existing services

Я удивлен, так как это свежая установка из шаблона OVH.

Как обойти эту ошибку?

Как предположил Майкл Хэмптон в комментариях, похоже, это специфично для шаблона OVH Fedora 23 Server.

Я искал cockpit в /etc, и нашел следующий файл:

/etc/firewalld/zones/FedoraServer.xml

Которая содержит следующие строки:

<?xml version="1.0" encoding="utf-8"?>
<zone>
  <short>Public</short>
  <description>For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.</description>
  <service name="ssh"/>
  <service name="dhcpv6-client"/>
  <service name="cockpit"/>
</zone>

Я удалил эту строку и сохранил файл:

<service name="cockpit"/>

И теперь это работает!

Похоже, что они добавили в firewalld службу по умолчанию, которая не установлена ​​в их шаблоне.