НЕДОПУСТИМАЯ_УСЛУГА при команде файрвола

Вопрос или проблема

При вводе следующей команды,

firewall-cmd --add-service=postgresql-13  --permanent

Я получаю это

Ошибка: INVALID_SERVICE: 'postgresql-13' не среди существующих служб

Где, postgresql-13 — это моя служба.

Что могло пойти не так?

Вы определяли пользовательскую службу firewalld с именем postgresql-13? Вы не упоминали об этом.

Службы firewalld определяют один или несколько портов и/или протоколов, которые можно пропускать через брандмауэр. Они не связаны со службами systemd.

Если вы хотите разрешить входящий трафик к PostgreSQL, правильное имя службы — postgresql.

firewall-cmd --get-services показывает все службы, о которых знает firewalld. Для каждой перечисленной службы в /usr/lib/firewalld/services существует XML-файл. Обратитесь к нему, чтобы узнать, какие порты фактически открываются при включении службы.

В случае ОП должен существовать файл /usr/lib/firewalld/services/postgresql.xml, который определяет порт 5432/tcp.

Брандмауэр сохраняет службы в /usr/lib/firewalld/services в виде xml-файлов, или вы можете определить пользовательские службы в /etc/firewalld/services в дополнение к стандартным службам. Теперь ваш брандмауэр не может найти службу с этим именем, поэтому либо есть ошибка в написании имени службы, либо она должна быть определена. Например, для службы посмотрите это:

   root@ailab:/home/iman# cat /usr/lib/firewalld/services/https.xml 
<?xml version="1.0" encoding="utf-8"?>
<service>
  <short>Secure WWW (HTTPS)</short>
  <description>HTTPS — это модифицированный HTTP, используемый для обслуживания веб-страниц, когда безопасность важна. Примеры — это сайты, которые требуют входа, такие как магазины или веб-почта. Этот вариант не обязателен для просмотра страниц локально или разработки веб-страниц. Вам нужно установить пакет httpd, чтобы этот вариант был полезен.</description>
  <port protocol="tcp" port="443"/>
</service>
root@ailab:/home/iman# 

Главные части — это протокол и номер порта.

Ответ или решение

Ошибка "INVALID_SERVICE: ‘postgresql-13’ not among existing services", возникающая при выполнении команды firewall-cmd --add-service=postgresql-13 --permanent, указывает на то, что служба с указанным именем не существует в списке доступных для firewalld. Давайте подробно рассмотрим возможные причины этой проблемы и пути её решения.

Причины возникновения ошибки

  1. Несуществующая служба: Firewalld использует заранее определенные службы, которые хранятся в XML-файлах. Для проверки доступных служб выполните команду:

    firewall-cmd --get-services

    Если в этом списке нет службы postgresql-13, то попытка ее добавления приведёт к указанной ошибке.

  2. Некорректное имя службы: Возможно, вы ошиблись в написании названия службы. В стандартной конфигурации firewalld существует служба с именем postgresql, которая подсоединяет TCP-порт 5432 для PostgreSQL. Попробуйте использовать именно это название:

    firewall-cmd --add-service=postgresql --permanent
  3. Пользовательская служба: Если действительно необходимо добавить службу с собственным именем, например, postgresql-13, её необходимо предварительно определить. Это можно сделать, создав XML-файл в директории /etc/firewalld/services/ или /usr/lib/firewalld/services/. Пример XML файла для создания кастомной службы может выглядеть так:

    <?xml version="1.0" encoding="utf-8"?>
    <service>
     <short>PostgreSQL 13</short>
     <description>PostgreSQL 13 service</description>
     <port protocol="tcp" port="5432"/>
    </service>

    Сохраните файл с именем postgresql-13.xml, затем выполните команду для добавления службы.

Проверка определенных служб

Если вы хотите проверить, какие порты и протоколы открываются для каждой службы, вы можете ознакомиться с XML-файлами, расположенными по адресу /usr/lib/firewalld/services/. Например, для PostgreSQL существует файл postgresql.xml, который описывает открываемый порт 5432.

Заключение

Для исправления ошибки INVALID_SERVICE, убедитесь, что:

  1. Вы используете корректное имя существующей службы (postgresql вместо postgresql-13).
  2. Если необходимо добавить пользовательскую службу, создайте соответствующий XML-файл с нужными параметрами.

Следуя этим рекомендациям, вы сможете успешно настроить firewalld и избежать появления данной ошибки в будущем.

Оцените материал
Добавить комментарий

Капча загружается...