Как получить список портов, которые относятся к предварительно настроенным службам firewall-cmd?

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

Я хочу открыть следующие порты в своем файрволле CentOS 7:

UDP 137 (Служба имен NetBIOS)
UDP 138 (Служба дейтаграмм NetBIOS)
TCP 139 (Служба сессий NetBIOS)
TCP 445 (SMB)

Я предполагаю, что имя службы samba включает TCP 445, но я не знаю, имеют ли другие порты преднастроенные имена служб.

Я могу перечислить поддерживаемые службы, используя:

$ firewall-cmd --get-services

Но это не говорит мне, какие порты настроены для этих служб.

Есть ли способ перечислить, какие порты принадлежат этим службам, чтобы я мог найти нужный?

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

Например, samba.xml выглядит так (на моем centos7):

<?xml version="1.0" encoding="utf-8"?>
<service>
  <short>Samba</short>
  <description>Эта опция позволяет вам получать доступ и участвовать в сетях совместного использования файлов и принтеров Windows. Вам нужно установить пакет samba, чтобы эта опция была полезной.</description>
  <port protocol="udp" port="137"/>
  <port protocol="udp" port="138"/>
  <port protocol="tcp" port="139"/>
  <port protocol="tcp" port="445"/>
  <module name="nf_conntrack_netbios_ns"/>
</service>

Так что легко заметить, какие порты включены для этой службы. Если у вас есть номер порта (и он не является частью диапазона портов), вы можете попробовать что-то вроде

grep -r -l 'port="3702"' {/usr/lib,/etc}/firewalld/services/

(и игнорировать возможную ошибку о том, что /etc/firewalld/services не существует).

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

Чтобы получить список портов, которые относятся к преднастроенным службам в фаерволе firewalld на CentOS 7, существует несколько методов. Firewalld использует конфигурационные файлы в формате XML для определения служб и их связанных портов. Ниже приведены подробные шаги для выполнения этой задачи.

Шаг 1: Получение списка доступных служб

Сначала вы можете получить список всех поддерживаемых служб с помощью команды:

firewall-cmd --get-services

Эта команда выведет список всех предустановленных служб, доступных на вашей системе, таких как samba, http, ssh и других. Однако данная команда не предоставляет информацию о портах, связанных с этими службами.

Шаг 2: Изучение конфигурационных файлов

Для просмотра или поиска портов, связанных с конкретными службами, необходимо обратиться к конфигурационным файлам, которые располагаются в следующих каталогах:

  • /usr/lib/firewalld/services/ (для системных служб, управляемых дистрибутивом)
  • /etc/firewalld/services/ (для пользовательских или настроенных вручную служб)

Вы можете просмотреть содержимое файла, соответствующего нужной вам службе, следующим образом. Например, для службы Samba:

cat /usr/lib/firewalld/services/samba.xml

В этом файле вы увидите информацию о портах, таких как:

<port protocol="udp" port="137"/>
<port protocol="udp" port="138"/>
<port protocol="tcp" port="139"/>
<port protocol="tcp" port="445"/>

Эти строки показывают, какие конкретные порты открываются службой Samba.

Шаг 3: Автоматизированный поиск

Если вам нужно быстро найти, какие службы связаны с определённым портом, вы можете использовать команду grep. Например, если вы хотите найти, какая служба использует порт 137, выполните:

grep -r -l 'port="137"' {/usr/lib,/etc}/firewalld/services/

Эта команда просканирует указанные каталоги и выведет названия файлов, содержащих упоминаемый порт.

Шаг 4: Проверка активных правил

Для дополнения, вы можете проверить активные правила и посмотреть, какие порты открыты в данный момент, используя:

firewall-cmd --list-all

Это даст вам представление о текущей конфигурации фаерволла.

Заключение

Таким образом, изучив конфигурационные файлы служб и применив команды для поиска, вы сможете легко составить список портов, ассоциированных с преднастроенными службами в firewalld на CentOS 7. Данный подход не только помогает в настройке сети, но также обеспечивает безопасность, позволяя открывать только необходимые порты.

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

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