1 Востаннє редагувалося HetmanNet (27.05.2023 17:11:15)

Тема: [RedHat-like] WS-Discovery (WSD) та AVAHI для легшого пошуку SAMBA

Все доволі просто.

Почнемо з WSD.
Встановлюємо.

# dnf -y install wsdd

Додаємо нову службу ws-discovery для firewalld, спочатку створивши файл ws-discovery.xml з вмістом:

<?xml version="1.0" encoding="utf-8"?>
<service>
  <short>WSD</short>
  <description>Web Services Dynamic Discovery (WS-Discovery) is a multicast discovery protocol to locate services on a local network. The component WSDMON in Windows 7 and later uses WS-Discovery to automatically discover WSD-enabled network printers, which show in Network in Windows Explorer, and can be installed by double-clicking on them. In Windows 8 or later installation is automatic.</description>
  <port protocol="tcp" port="3702"/><!-- ws-discovery -->
  <port protocol="udp" port="3702"/><!-- ws-discovery -->
  <port protocol="tcp" port="5357"/><!-- wsdapi -->
  <port protocol="udp" port="5357"/><!-- wsdapi -->
</service>

Потім активувавши його:

# firewall-cmd --permanent --new-service-from-file=ws-discovery.xml

Додавши до активної зони, в моєму випадку public:

# firewall-cmd --zone=public --add-service=ws-discovery --permanent && firewall-cmd --reload

Потім wsdd вказуємо опцію імені хоста, має збігатися із зазначеною в smb.conf та hostnamectl, насправді ця опція необов'язкова, але якщо у вас smb.conf розбито на кілька файлів чи використовуєте щось на зразок cockpit-file-sharing який використовує збереження конфіга в registry, то треба так як wsdd не знайде строку в файлі конфіга, тож в /etc/sysconfig/wsdd треба замінити строку:

OPTIONS=""

На строку:

OPTIONS="--interface eno1 --hoplimit 1 --ipv4only --workgroup WORKGROUP --hostname HOSTNAME"

де HOSTNAME це ім'я машини прописане в smb.conf та hostnamectl, WORKGROUP це ім'я групи в якій перебуває машина, eno1 назва мережевого інтерфейсу який слухати.
Запускаємо і ставимо в автозапуск:

# systemctl start wsdd && systemctl enable wsdd

Вітаю, тепер Windows 7 && 8 && 10 && 11 буде знаходити вашу машину з samba без встановлення компонента SMBv1.

Переходимо до Avahi.
Встановлюємо.

# dnf -y install avahi

Якщо у машини наявно більше одного мережевого інтерфейсу (байдуже чи підключенні) то дивимося як називається той який використовуємо, наприклад цією командою:

# ifconfig

Йдемо прописуємо його в /etc/avahi/avahi-daemon.conf додавши строку:

allow-interfaces=eno1

Де eno1 в моєму прикладі ім'я інтерфейсу.
Додаємо сервіс в firewalld відповідно в активну зону:

# firewall-cmd --zone=public --add-service=mdns --permanent && firewall-cmd --reload

де в моєму прикладі активною зоною є public.
Потім запускаємо та додаємо в автозапуск:

# systemctl start avahi-daemon && systemctl enable avahi-daemon

Прописувати сервіс samba в avahi потреби немає, звісно якщо у вас в конфігураційному файлі samba немає строки:

multicast dns register = no

Вітаю, тепер продукція apple буде легко знаходити вашу машину з samba.

Подякували: leofun01, kisilam2