企業為了集中認證與管理,大都使用微軟 Windows Server 伺服器的 AD (Active Directory) 做為認證核心,有加入 AD 的伺服器與電腦就可以方便的整合權限機制,對管理人員來說,是一個非常重要的功能。
為什麼不用 Windows
沒錯,用 AD 認證,並結合檔案伺服器確實很好用。
問題出在用 Windows Server 做為檔案伺服器這件事,它的確提供很多方便的介面以及豐富的管理功能,但是「效能」、「費用」這兩件事對中小企業來說卻是一大困擾。
例如檔案存取效率,製作以前的版本速度,都是一個個的瓶頸。
需要用高規格的硬體來換取更好的效能,這是一個很容易看出的道理,但是沒有這麼多錢可以投資在主機上,更別說檔案伺服器上面跑的 Windows Server 也是要購買授權的。
替代方案 FreeNAS
FreeNAS 是一款相當成熟的 Storage 套件,基於 FreeBSD 作業系統開發,最重要的是搭載 ZFS 這個強大檔案系統。
不過 FreeNAS 整合 AD、SMB 畢竟不是正統的 Windows Server 系列程式,搭配不同開源的套件總是容易出現許多奇怪的問題,有些地方稍一不甚沒設好,就無法好好的運作起來。
由於我有迫切的效能需求,要把一些檔案服務優先移到 FreeNAS 換取更好的存取效能,以及最重要的歷史版本功能(基於 ZFS 快照),因此花了一段時間研究把設定方法確立,以下提供經驗分享。
以下操作是設定在:
「FreeNAS 已經安裝起來並具資料集與網路連線能力」
同時提醒:
「至少用 9.10.2-U6 版本以減少踩到 Samba 套件的坑」
FreeNAS 加入 AD
進入 [服務] > [SMB] 的設定頁
- NetBIOS:輸入您要呈現的主機名稱,如 fileserver
- 工作群組:輸入您 AD 網域名稱,如 test.com.tw
- DOS 字元編碼:CP950
- UNIX 字元編碼:UTF-8
- 此網域的時間伺服器:若有加入 AD/LDAP,請取消勾選
進入 [服務]
- 將 SMB 切換至 [ON]
進入 [目錄] > [Active Directory] 頁籤
- 按下 [進階模式] 按鈕
- 網域名稱:輸入您 AD 網域名稱,如 test.com.tw
- Domain Account Name:輸入您 AD 具有讀取使用者、群組、電腦權限的帳號,如 Administrator
- Domain Account Password:承上,輸入密碼
- Allow Trusted Domains:打勾
- Use Default Domain:打勾
- Allow DNS updates:打勾
- Domain Controller:輸入您的網域控制站名稱,如 dc1.test.com.tw
- Global Catalog Server:輸入您的 GC 網域控制站名稱,如 dc1.test.com.tw
- Enable:打勾
進入 [目錄] > [Kerberos Realms] 頁籤
- 按下 [Add kerberos realm] 按鈕,打開後再按下 [進階模式] 按鈕
- Realm:輸入您 AD 網域名稱,如 test.com.tw
- KDC:輸入您的 KDC 網域控制站名稱,如 dc1.test.com.tw
- Admin Server:輸入您的 Admin 網域控制站名稱,如 dc1.test.com.tw
- Password Server:輸入您的 Password 網域控制站名稱,如 dc1.test.com.tw
設定 CIFS/SMB 分享權限
進入 [儲存] > [磁區] 頁籤
- 選取要設定分享的資料集,並按左下角的 [變更權限] 按鈕
- Apply Owner (user):打勾
- 所有者(帳號):輸入網域中的帳號,如 Administrator
- Apply Owner (group):打勾
- 所有者(群組):輸入網域中的群組,如 Domain Admins
- Apply Mode:打勾
- Permission Type:選取 Windows
- 最後按下 [變更]
進入 [共享] > [Windows (SMB)] 頁籤
- 按下 [Add Windows (SMB) Share] 按鈕
- 按下 [進階模式] 按鈕
- 路徑:選取要分享的 Dataset 位置
- 名稱:輸入要顯示於分享的名稱
- Apply Default Permissions:打勾
- 瀏覽用戶端網路:打勾
- 允許訪客連線:不勾
- 只允許訪客連線:不勾
- 定期快照工作:選取這個 Dataset 的排程快照工作,可以用來提供「以前的版本」功能,非常好用又重要!
設定 CIFS/SMB 分享對象
在 FreeNAS 上沒有提供這個設定能力,需要找一台 Windows 電腦進行。
使用 [電腦管理] 連線
- 根節點按滑鼠右鍵,選取 [連線到另一台電腦] 項目
- 在 [另一台電腦] 輸入 FreeNAS 主機的位址並按下 [確定]
- 展開根節點,展開 [系統工具],中間會出現錯誤訊息「RPC 伺服器無法使用」請不用理會
進行 [共用權限] 設定
- 進入 [系統工具] > [共用資料夾] > [共用]
- 於右方可見 FreeNAS 上設定的共用,滑鼠右鍵點選,並按下 [內容] 項目
- 切換 [共用權限] 頁籤
- 於下方可見目前已有的權限對象,可參考 Windows 設定方法進行修改
取用以前的版本
這是一個 Windows 上極為好用的設計,要找回誤刪或誤改檔案可以很方便的從時間點來找回。
不過,若是用 Windows Server 做為檔案伺服器,它做歷史版本與查看歷始版本時效率都較慢,我們採用的 FreeNAS 因為有了 ZFS 強力支援,具有非常快速的操作能力。
題外話:
有一點我非常很納悶,這功能超級好用,可是為什麼微軟非要給它取一個這麼沒力的名字呢?😂😂😂
看看隔壁 Apple,在時間軸還原部份用起來的功能兩者接近,但 Apple 就給它配上一個具有科幻感的「 Time Machine 」,瞬間就潮啦。
使用 [以前的版本] 連線
- 在任一個分享資料夾或檔案上按滑鼠右鍵,選取 [內容] 項目
- 切換 [以前的版本] 頁籤
- 若有設定對應到定期快照工作,也有確實產生快照,這裡就會有時間點可以選擇
其它應用:NextCloud
FreeNAS 搭配 AD CIFS/SMB 設定完後,還可以另外結合 NextCloud 做為介面提供服務,而且一樣吃 AD 的驗證機制與 NTFS 安全性管理,非常好用與方便!
日後再來寫一篇教學分享,因為當時 FreeNAS 整合 AD CIFS/SMB 成功後,要跟 NextCloud 結合同樣認證與權限,讓我吃足了苦頭。