Samba share láthatóvá tétele Windows 10-en

Van az a probléma, hogy Windows 10-en nem látszik a linuxos samba share, illetve a host. Úgy értem, működik, csak a NetBios névfeloldás nem akar menni. Utánaolvastam, az a gond, hogy a 4-es Samba-ban még nem implementálták a WSD/LLMNR-t, így önmagában az smb.conf-ban a fejünk tetejére is állhatunk, akkor sem lesz megoldás.

Lenne az a fallback, hogy akkor meséljük el a Windows 10 klienseknek registry-ben, hogy használjanak régi smb 1 protokollt. Ez nekem nem tetszik, mert nem vagyok én rendszergazda, hogy mások gépeit piszkáljam, meg különben is, ami régi, az gyaníthatóan lyukacsos, mint a sajt, nem véletlenül van újabb.

És akkor íme a megoldás:

WSD/LLMNR Discovery/Name Service Daemon

A man page leírja, mely TCP és UDP portokat kell kinyitni hozzá a tűzfalon. Kipróbáltam Fedora 28-on, működik. :)

Ennyit kell tenni:

git clone 'https://github.com/Andy2244/wsdd2.git'

make

Root-ként:

make install

Tűzfalon a man page-ben megadott portok kinyitása. Ha nem lenne engedélyezve a szolgáltatás, akkor engedélyezni kell, meg elindítani. De talán ezt is megteszi maga, mert úgy emlékszem, hibaüzenetet kaptam, amikor el akartam indítani, mert már futott.

Hozzászólások

És most akkor windows 10-en a hálózatra kattintva bejön a megosztás?
Vagy mi lett a végeredmény?

Igen. Tehát Windows 10-en alapbeállításokkal látszik az Intézőben a linuxos gép azon neve, amely az smb.conf-ban netbios name kulcsszó alatt meg lett adva. Rákattintva pedig elérhető a megosztás. Jó, kér felhasználónevet, jelszót, de ez így természetes, ez már a samba szerver security része, tudtommal a Windows is ugyanúgy viselkedik. Illetve ez már konfigurálható.

A lényeg, hogy ezen daemon nélkül be kellett csépelni Windows-on, hogy \\linuxosgépneve\, aztán használható volt, most viszont a linuxos gép „hirdeti” magát a hálózaton, simán rá lehet kattintani kényelmesen, s ehhez nem kell protokoll fallback sem.

Én sem gondoltam volna, de ezt a Samba 4 még nem tudja.

https://wiki.samba.org/index.php/FAQ#Why_does_Windows_Network_Neighborh…

Why does Windows Network Neighborhood not show Samba server(s)?

If you are using SMB2 or SMB3, network browsing uses WSD/LLMNR, which is not yet supported by Samba [1]. SMB1 is disabled by default on the latest Windows versions for security reasons. It is still possible to access the Samba resources directly via \\name or \\ip.address.

If SMB1 is enabled on Windows, check that NetBIOS over TCP/IP is also enabled, and that nmbd is started on the server.

tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

Persze bocsánat a félrevezető címért. Mindent a linuxos gépen teszünk annak érdekében, hogy a windows-os gépeken látszódjék a linuxos gép, mint host, illetve samba share. Tehát nem a Windows 10-en tesszük láthatóvá, hanem a Linuxon érjük el, hogy a Windows 10-en látszódjon. Csak egy címben mindez nem fér el. :)

tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

Engem a windows-os file sharing millió féle névfeloldási lehetősége mindig annyira zavarba hozott, hogy belepirulok, ha rágondolok. :) Nem is értek hozzá. Azt tudom, hogy először próbálkoztam, mint vidéki buzi a gőzfürdőben, de nem jött össze samba konfigurálással. A share ment, de a host nem látszott a windows Intézőben. Elkezdtem utánaolvasni, akkor azt láttam, menne ez régi protokollal, de az nem biztonságos, meg az összes kliensen át kellene állítani. Ez nem járható út. Utána megtaláltam, amit fentebb idéztem, hogy nem is fog ez menni, mert a sambában ez nincs is implementálva. Ezt követően bukkantam erre a nyílt forrású projectre, amelyben ezt a WSD/LLMNR protokollt implementálták önálló daemon-ként. Ennek van egy python3-as változata, de szerencsére ott megtaláltam, hogy megvan ez írva C-ben is. Nosza, lefordítottam a C forrást, feltelepítettem, kinyitottam a tűzfalon, ami kell, s megjelent a Windows 10-es gépen a linuxos notebook-om, rá tudtam kattintani a host-ra az Intézőben, majd láttam a linuxos filemegosztásomat.

Gondoltam, ezt a katartikus élményt megosztom itt, hátha másnak is szüksége lesz rá. Ha már kijártam az útját. Bár nem kizárt, hogy rajtam kívül mindenki ismerte a megoldást. ;)

tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

Fogalmam sincs, de ettől még tény, hogy nincs benne. Amúgy ennek a szerkezetnek a unit file-jából hiányzott valami ilyesmi:

[Install]
WantedBy=multi-user.target

Erre akkor jöttem rá, amikor boot után nem indult el, aminek az volt az oka, hogy nem sikerült az engedélyezése. De most már jó. :)

tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

És akkor ahogy ígértem...

/usr/lib/systemd/system/wsdd2.service tartalma:

[Unit]
Description=WSD/LLMNR Discovery/Name Service Daemon
BindsTo=smb.service

[Service]
ExecStart=/usr/sbin/wsdd2
ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure

[Install]
WantedBy=multi-user.target

tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

Egyébként a program megalkotója is észrevette és javította, már épp az általam fentebb írt unit file szerepel az eredeti forrásban is, szóval telepítés után csak engedélyezni kell a szolgáltatást - illetve el kell indítani -, más tennivaló nincs vele.

Illetve egy apró különbség, de ez lehet, hogy Fedora specifikus. A szállított file-ban:

BindsTo=smbd.service

míg nálam:

BindsTo=smb.service

Fedorán smb és nmb a szolgáltatások neve, nem pedig smbd és nmbd. Maguknak a daemonoknak persze már ez utóbbi a nevük.

tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

"Nemtudom mi ez, de bármikor jól jöhet" Bukmark!

Apró infó, de természetesen a még meg sem jelent Fedora 30-on is működik, kipróbáltam. Illetve akár úgy is, hogy sleep-ből felébred a gép, akkor újra látszik.

tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

Az lehet hogy a csomag által szállított .service (systemd) fájl nem működik Ubuntu 18.04-en?

Sziasztok! Debian 10, pöccre megy a dolog! Adalék infó: BIND-et használok DNS-nek és ISC-DHCP-t DHCP-nek, annyit csináltam még hogy készült egy belső hálózati zóna: kutyafule.lan, a DNS szerver a szerver.kutyafule.lan, az A rekord saját magára mutat. A DHCP-nél a search domain nevek közé felvittem a kutyafule.lan-t, így rátalál rövid névvel is. Ne felejtsétek el a telepített szervizt systemd enable-el beállítani hogy újraindítás után is működjön. Kb. ennyi. Ha valakinek még van ötlete / javaslata hozzá, szívesen veszem. Köszi!

Na ezt jól megjegyzem...

Egyszer kellene valaki okos balekot keresnem, aki hajlandó az elcseszett világlátásomnak megfelelően elmagyarázni ezt a BIND-DNS megoldás használatát helyi LAN-okhoz... Nem tud valaki egy piszok türelmes fószert, aki ért a BIND-hoz, és még magyarázni is tud?