SMB: optional legacy mode (SMB1 + NTLMv1) for old clients
build / build (push) Successful in 1m1s

Supermicro BMC virtual media ("CD-ROM image" over a Windows share) only
offers the SMB1 dialect "NT LM 0.12", which Samba rejects with
server min protocol = SMB2. Add an opt-in "Allow legacy clients" SMB
setting that renders server min protocol = NT1 and
ntlm auth = ntlmv1-permitted. Off by default.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-02 23:59:53 +03:00
co-authored by Claude Opus 5.5
parent 6362f1b9f7
commit b965d2c9db
7 changed files with 41 additions and 2 deletions
+7 -1
View File
@@ -37,6 +37,12 @@ func RenderSMB(c Config, owner string) string {
if anyGuest(c) {
mapGuest = "Bad User"
}
minProto := "server min protocol = SMB2"
if c.SMB.Legacy {
// old embedded clients (e.g. Supermicro BMC virtual media) only offer
// SMB1 "NT LM 0.12" and authenticate with NTLMv1
minProto = "server min protocol = NT1\n ntlm auth = ntlmv1-permitted"
}
g := []string{
"workgroup = " + c.SMB.Workgroup,
"server string = " + c.SMB.ServerString,
@@ -44,7 +50,7 @@ func RenderSMB(c Config, owner string) string {
"security = user",
"map to guest = " + mapGuest,
"guest account = nobody",
"server min protocol = SMB2",
minProto,
"unix charset = UTF-8",
"logging = file",
"log file = /var/log/samba/log.%m",