2019年10月16日 星期三

在domain中的電腦如何開啟Linux的Samba的網路芳鄰檔案共享服務

這個問題是老問題了,之前遇過一次。但沒有解決,這一次因為是換機器,避不開這個問題。只好想辦法解決。

我們先假設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。我們可以透過修改設定檔的方法增加其相容性。



1 則留言:

  1. 你好:
    http://tiserle.blogspot.com/search/label/874
    關於這個貼文,能請教一下嗎?

    回覆刪除