Windows-Server-2008-R2

無法通過主機名或 FQDN 訪問 samba 共享,只能通過 Windows 2008 R2 域上的 IP

  • September 28, 2017

我有一個帶有 Samba 4.6.2 的 CentOS 7 伺服器,加入了 Windows Server 2008 R2 域,並且無法使用伺服器的主機名或 FQDN 從 Windows 訪問任何共享,只能通過 IP 地址。

我已經驗證 DNS 正在使用 nslookup 進行伺服器到客戶端、客戶端到伺服器,並驗證了所有 SRV 記錄以在 samba 伺服器上進行 AD 解析。

當我嘗試使用主機名或 FQDN 時,Windows 將顯示錯誤“登錄失敗:目標帳戶名稱不正確”,並且客戶端的 samba 日誌顯示以下內容:

[2017/09/28 13:04:00.119699,  3] ../source3/smbd/oplock.c:1322(init_oplocks)
 init_oplocks: initializing messages.
[2017/09/28 13:04:00.119899,  3] ../source3/smbd/process.c:1957(process_smb)
 Transaction 0 of length 159 (0 toread)
[2017/09/28 13:04:00.119956,  3] ../source3/smbd/process.c:1538(switch_message)
 switch message SMBnegprot (pid 15584) conn 0x0
[2017/09/28 13:04:00.120920,  3] ../source3/smbd/negprot.c:603(reply_negprot)
 Requested protocol [PC NETWORK PROGRAM 1.0]
[2017/09/28 13:04:00.120968,  3] ../source3/smbd/negprot.c:603(reply_negprot)
 Requested protocol [LANMAN1.0]
[2017/09/28 13:04:00.120999,  3] ../source3/smbd/negprot.c:603(reply_negprot)
 Requested protocol [Windows for Workgroups 3.1a]
[2017/09/28 13:04:00.121026,  3] ../source3/smbd/negprot.c:603(reply_negprot)
 Requested protocol [LM1.2X002]
[2017/09/28 13:04:00.121053,  3] ../source3/smbd/negprot.c:603(reply_negprot)
 Requested protocol [LANMAN2.1]
[2017/09/28 13:04:00.121080,  3] ../source3/smbd/negprot.c:603(reply_negprot)
 Requested protocol [NT LM 0.12]
[2017/09/28 13:04:00.121107,  3] ../source3/smbd/negprot.c:603(reply_negprot)
 Requested protocol [SMB 2.002]
[2017/09/28 13:04:00.121133,  3] ../source3/smbd/negprot.c:603(reply_negprot)
 Requested protocol [SMB 2.???]
[2017/09/28 13:04:00.121348,  3] ../source3/smbd/smb2_negprot.c:290(smbd_smb2_request_process_negprot)
 Selected protocol SMB2_FF
[2017/09/28 13:04:00.124041,  3] ../source3/smbd/negprot.c:730(reply_negprot)
 Selected protocol SMB 2.???
[2017/09/28 13:04:00.135575,  3] ../source3/smbd/smb2_negprot.c:290(smbd_smb2_request_process_negprot)
 Selected protocol SMB2_10
[2017/09/28 13:04:00.150178,  1] ../source3/librpc/crypto/gse.c:646(gse_get_server_auth_token)
 gss_accept_sec_context failed with [Unspecified GSS failure.  Minor code may provide more information: Request ticket server cifs/rack14.svsn.int@SVSN.INT not found in keytab (ticket kvno 10)]
[2017/09/28 13:04:00.161945,  3] ../source3/smbd/server_exit.c:246(exit_server_common)
 Server exit (NT_STATUS_CONNECTION_RESET)
[2017/09/28 13:04:00.179981,  3] ../source3/smbd/oplock.c:1322(init_oplocks)
 init_oplocks: initializing messages.
[2017/09/28 13:04:00.180172,  3] ../source3/smbd/process.c:1957(process_smb)
 Transaction 0 of length 108 (0 toread)
[2017/09/28 13:04:00.198458,  3] ../source3/smbd/smb2_negprot.c:290(smbd_smb2_request_process_negprot)
 Selected protocol SMB2_10
[2017/09/28 13:04:00.214297,  1] ../source3/librpc/crypto/gse.c:646(gse_get_server_auth_token)
 gss_accept_sec_context failed with [Unspecified GSS failure.  Minor code may provide more information: Request ticket server cifs/rack14.svsn.int@SVSN.INT not found in keytab (ticket kvno 10)]
[2017/09/28 13:04:00.227012,  3] ../source3/smbd/server_exit.c:246(exit_server_common)
 Server exit (NT_STATUS_CONNECTION_RESET)

桑巴配置:

[global]
 workgroup = DOMAIN
 realm = DOMAIN.LOCAL
 security = ads
 template homedir = /home/%U
 template shell = /bin/bash
 kerberos method = secrets and keytab
 winbind use default domain = true
 winbind offline logon = true
 idmap config * : backend = nss
 idmap config * : range = 3000-7999
 idmap config DOMAIN : backend = ad
 idmap config DOMAIN : default = yes
 idmap config DOMAIN : range = 10000-1000000
 idmap config DOMAIN : schema_mode = rfc2307
 winbind nss info = rfc2307
 winbind enum users = yes
 winbind enum groups = yes
 winbind nested groups = yes
 log file = /var/log/samba/log.%m
 log level = 3
 max log size = 50
 client use spnego = yes
 load printers = no
 cups options = raw
 printcap name = /dev/null

我不確定我錯過了什麼或還有什麼要解決的問題。重新加入域甚至清除 samba 配置都沒有幫助。我還手動將 cifs 添加到 keytab 但即使正確,Windows 也會繼續提示輸入使用者名和密碼。有任何想法嗎?

您的 Kerberos 設置已損壞。

從日誌:Request ticket server cifs/rack14.svsn.int@SVSN.INT not found in keytab (ticket kvno 10)

如果 Kerberos 不可行,似乎還有第二種身份驗證方法。如果您通過 IP 地址訪問,則使用第二種方法。這是因為 Kerberos 只能與 DNS 結合使用。

如果您通過 DNS 名稱訪問,Kerberos 會嘗試進行身份驗證並失敗。

我想您檢查所有機器(客戶端、伺服器、Kerberos 伺服器)的 DNS 條目。還要檢查 DNS 反向條目。之後生成一個新的密鑰表。

引用自:https://serverfault.com/questions/875998