我們先假設smb.conf的內容都是對的。這樣變數比較小,不過實際上,我們都是改改調調,也不能100%的相信它沒有問題,即使testparm跟你說他是好的我們總是會懷疑。但我們還是先相信它是對的吧。
我用的Samba是4.9.1-6.el7的版本。
第一個問題是,在domain中的電腦在登入linux的samba server時,會很貼心的幫你貼上 \domain\username的帳號。這樣當然是過不了的。
我之前有錄過封包,它真的會自動幫你補上domain名稱。
解決方法很簡單,帳號改成 .\username就好了。這樣的話。它就會用\pcname\username的方法登入。但我實測的結果還是不能登入。
第二個問題是,你的密碼是用什麼指令建立的,你建立的密碼真的有被讀進來嗎?之前都是用smbpasswd,有人說現在應該要用pdbedit了,但我實測的結果,如果你沒有去動smb.conf的話,它都是產生在passdb.tdb中(當然,所存在的目錄會依你使用的linux不同而有所差異)。
第三個問題是,你的電腦乾淨嗎?以我的例子而言,因為換了機器,但是IP沒有變,還是192.168.1.2。之前儲存的\\192.168.1.2自然是不能用了。
要清除連線記錄(快取)的話,方法有很多。
klist purge
control keymgr.dll
rundll32.exe keymgr.dll, KRShowKeyMgr
基本上我都會試一下,不過我覺得比較有用的是第三個。
第四個問題,還是沒有效。怎麼辦?
這個就真的很直得討論了,我找了很久,發現以下的方法是有效的。如果你還是不能解決,就試試吧。然後可以調整一下內容裡的東西試試。
以下是操作方式:
在執行輸入secpol.msc
接著左邊選單選『本機原則』,再選『安全性選項。』
然後在右邊找到『網路安全性:LAN Manager 驗證等級』
對他點兩行,開啟內容。然後改成『只傳送NTLM v2 回應』
以下是可能的選項:
- 傳送 LM & NTLM 回應
- 傳送 LM & NTLM-如果交涉使用 NTLMv2 工作階段安全性 (這個是我的預設值)
- 將 NTLM 回應只傳送
- 傳送只 NTLMv2 回應
- 只傳送 NTLMv2 回應。 拒絕 LM
- 只傳送 NTLMv2 回應。 拒絕 LM & NTLM
- 未定義
(這個是微軟機翻的版本),英文的部份是
Possible values
- Send LM & NTLM responses
- Send LM & NTLM - use NTLMv2 session security if negotiated
- Send NTLM responses only
- Send NTLMv2 responses only
- Send NTLMv2 responses only. Refuse LM
- Send NTLMv2 responses only. Refuse LM & NTLM
- Not Defined
後記,由於同事需要上內部公文系統,如果修改成為NTLM V2 only會不能執行,因此我查詢了smb.conf的說明後,新增以下設定:
ntlm auth = true
讓它支援NTLM V1,降低了一點安全性。所以結論就是,Samba 4.x為了安全性,強制用戶一定要用NTLM V2。我們可以透過修改設定檔的方法增加其相容性。
你好:
回覆刪除http://tiserle.blogspot.com/search/label/874
關於這個貼文,能請教一下嗎?