SMB1 can now be removed from the server code !

Jeremy Allison jra at
Thu Apr 7 18:43:49 UTC 2022

Hi all,

Just wanted to let everyone know about a milestone in
coding achieved by David Mulder from SuSE.

David reconfigured our codebase to allow the SMB1 code
inside smbd to be removed using an option at configure
time !

Configure Samba using:

configure --without-smb1-server

and smbd will now no longer include any of the SMB1
legacy protocol other than the minimal "bootstrap"
code needed to allow a Windows client to first contact
the server via SMB1 "negotiate protocol" and then
immediately switch to SMB2 (when the smbd server
tells it we no longer support SMB1). This is the
same way a Windows server behaves once SMB1 support
is removed.

This new feature will be available in 4.17.0 (whenever
we ship that :-) but I wanted everyone to know SMB1
is on its way out !

Note that SMB1 support is still allowed in the libsmbclient
libraries to keep maximum backwards compatibility to
legacy servers.

Here is the new WHATSNEW.txt entry.

Configure without the SMB1 Server

It is now possible to configure Samba without support for
the SMB1 protocol in smbd. This can be selected at configure
time with either of the options:


By default (without either of these options set) Samba
is configured to include SMB1 support (i.e. --with-smb1-server
is the default). When Samba is configured without SMB1 support,
none of the SMB1 code is included inside smbd except the minimal
stub code needed to allow a client to connect as SMB1 and immediately
negotiate the selected protocol into SMB2 (as a Windows server also

None of the SMB1-only smb.conf parameters are removed when
configured without SMB1, but these parameters are ignored by
the smbd server. This allows deployment without having to change
an existing smb.conf file.

This option allows sites, OEMs and integrators to configure Samba
to remove the old and insecure SMB1 protocol from their products.

Note that the Samba client libraries still support SMB1 connections
even when Samba is configured as --without-smb1-server. This is
to ensure maximum compatibility with environments containing old
SMB1 servers.

I want to say a big cowsay:

         \   ^__^
          \  (oo)\_______
             (__)\       )\/\
                 ||----w |
                 ||     ||

to David Mulder from SuSE for writing this code, and to Samba
Team members Ralph Boehme from SerNet and Andrew Bartlett from
Catalyst for reviewing and improving the code changes before



More information about the samba-technical mailing list