Making Linux Samba shares visible to Windows hosts after WannaCry


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

An open source developer Steffen Christgau created a Python implementation of WSD aptly named WSDD on GitHub.

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.

Step-by-step installation

If not already installed, install Python

Create a folder and download WSDD.

$ sudo curl –o /etc/systemd/system/wsdd.service

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.