Following the WannaCry Ransomeware attack in 2017, Windows stopped supporting the SMB1 protocol – and along with it Windows hosts’ previous primary broadcast discovery mechanism. Since then, Linux hosts have mostly gone dark when it comes to sharing discoverable network shares with Windows network clients. However, Windows supports the Web Service Discovery (WSD) protocol. Ubuntu has added support for WSDD – and now you can easily do the same for any Linux distribution that supports Python.
Background – Web Service Discovery
Web Service Discovery is a protocol first created by a partnership between IBM, SAP and Microsoft in 2000 as a way to enable SOAP services to discover other services that offered functionality a client service needed. These services are broadcast on TCP port 3702 and 5357. Since 2000, WSD has mostly disappeared from use for it’s primary goal, but Windows still supports it.
Windows hosts support WSD as a mechanism for discovering network devices, and as WSD is an open protocol its relatively easy for Linux hosts to broadcast themselves. For some reason this has yet to be implemented in Linux distros outside of Ubuntu.
Getting your Linux host to broadcast WSD information
WSDD enables a Linux host to broadcast WSD messages to network clients – Windows hosts included. This enables Linux hosts to broadcast their Samba availability natively.
As an awesome bonus, installing takes literally 5 mins.
If not already installed, install Python
Create a folder and download WSDD.
$ sudo curl –o /etc/systemd/system/wsdd.service https://raw.githubusercontent.com/christgau/wsdd/master/src/wsdd.py
Install WSDD as a local service using systemd.
$ sudo systemctl enable wsdd.service
Then start the service for the first time
$ sudo systemctl start wsdd.service
Following this, your host should appear in the your “Network” list in Windows 10, Windows Server 2019 etc.