在Linux命令行下管理Samba4 AD架構
這篇文章包括了管理 Samba4 域控制器架構過程中的一些常用命令,比如添加、移除、禁用或者列出用戶及用戶組等。
我們也會關注一下如何配置域安全策略以及如何把 AD 用戶綁定到本地的 PAM 認證中,以實現 AD 用戶能夠在 Linux 域控制器上進行本地登錄。
要求
- 在 Ubuntu 系統上使用 Samba4 來創建活動目錄架構
***步:在命令行下管理
1、 可以通過 samba-tool 命令行工具來進行管理,這個工具為域管理工作提供了一個功能強大的管理接口。
通過 samba-tool 命令行接口,你可以直接管理域用戶及用戶組、域組策略、域站點,DNS 服務、域復制關系和其它重要的域功能。
使用 root 權限的賬號,直接輸入 samba-tool 命令,不要加任何參數選項來查看該工具能實現的所有功能。
- # samba-tool -h
samba-tool —— Samba 管理工具
2、 現在,讓我們開始使用 samba-tool 工具來管理 Samba4 活動目錄中的用戶。
使用如下命令來創建 AD 用戶:
- # samba-tool user add your_domain_user
添加一個用戶,包括 AD 可選的一些重要屬性,如下所示:
- --------- review all options ---------
- # samba-tool user add -h
- # samba-tool user add your_domain_user --given-name=your_name --surname=your_username --mail-address=your_domain_user@tecmint.lan --login-shell=/bin/bash
在 Samba AD 上創建用戶
3、 可以通過下面的命令來列出所有 Samba AD 域用戶:
- # samba-tool user list
列出 Samba AD 用戶信息
4、 使用下面的命令來刪除 Samba AD 域用戶:
- # samba-tool user delete your_domain_user
5、 重置 Samba 域用戶的密碼:
- # samba-tool user setpassword your_domain_user
6、 啟用或禁用 Samba 域用戶賬號:
- # samba-tool user disable your_domain_user
- # samba-tool user enable your_domain_user
7、 同樣地,可以使用下面的方法來管理 Samba 用戶組:
- --------- review all options ---------
- # samba-tool group add –h
- # samba-tool group add your_domain_group
8、 刪除 samba 域用戶組:
- # samba-tool group delete your_domain_group
9、 顯示所有的 Samba 域用戶組信息:
- # samba-tool group list
10、 列出指定組下的 Samba 域用戶:
- # samba-tool group listmembers "your_domain group"
列出 Samba 域用戶組
11、 從 Samba 域組中添加或刪除某一用戶:
- # samba-tool group addmembers your_domain_group your_domain_user
- # samba-tool group remove members your_domain_group your_domain_user
12、 如上面所提到的, samba-tool 命令行工具也可以用于管理 Samba 域策略及安全。
查看 samba 域密碼設置:
- # samba-tool domain passwordsettings show
檢查 Samba 域密碼
13、 為了修改 samba 域密碼策略,比如密碼復雜度,密碼失效時長,密碼長度,密碼重復次數以及其它域控制器要求的安全策略等,可參照如下命令來完成:
- ---------- List all command options ----------
- # samba-tool domain passwordsettings -h
管理 Samba 域密碼策略
不要把上圖中的密碼策略規則用于生產環境中。上面的策略僅僅是用于演示目的。
第二步:使用活動目錄賬號來完成 Samba 本地認證
14、 默認情況下,離開 Samba AD DC 環境,AD 用戶不能從本地登錄到 Linux 系統。
為了讓活動目錄賬號也能登錄到系統,你必須在 Linux 系統環境中做如下設置,并且要修改 Samba4 AD DC 配置。
首先,打開 Samba 主配置文件,如果以下內容不存在,則添加:
- $ sudo nano /etc/samba/smb.conf
確保以下參數出現在配置文件中:
- winbind enum users = yes
- winbind enum groups = yes
Samba 通過 AD 用戶賬號來進行認證
15、 修改之后,使用 testparm 工具來驗證配置文件沒有錯誤,然后通過如下命令來重啟 Samba 服務:
- $ testparm
- $ sudo systemctl restart samba-ad-dc.service
檢查 Samba 配置文件是否報錯
16、 下一步,我們需要修改本地 PAM 配置文件,以讓 Samba4 活動目錄賬號能夠完成本地認證、開啟會話,并且在***次登錄系統時創建一個用戶目錄。
使用 pam-auth-update 命令來打開 PAM 配置提示界面,確保所有的 PAM 選項都已經使用 [空格] 鍵來啟用,如下圖所示:
完成之后,按 [Tab] 鍵跳轉到 OK ,以啟用修改。
- $ sudo pam-auth-update
為 Samba4 AD 配置 PAM 認證
Enable PAM Authentication Module for Samba4 AD Users
為 Samba4 AD 用戶啟用 PAM認證模塊
17、 現在,使用文本編輯器打開 /etc/nsswitch.conf 配置文件,在 passwd 和 group 參數的***面添加 winbind 參數,如下圖所示:
- $ sudo vi /etc/nsswitch.conf
為 Samba 服務添加 Winbind Service Switch 設置
18、 ***,編輯 /etc/pam.d/common-password 文件,查找下圖所示行并刪除 user_authtok 參數。
該設置確保 AD 用戶在通過 Linux 系統本地認證后,可以在命令行下修改他們的密碼。有這個參數時,本地認證的 AD 用戶不能在控制臺下修改他們的密碼。
- password [success=1 default=ignore] pam_winbind.so try_first_pass
允許 Samba AD 用戶修改密碼
在每次 PAM 更新安裝完成并應用到 PAM 模塊,或者你每次執行 pam-auth-update 命令后,你都需要刪除 use_authtok 參數。
19、 Samba4 的二進制文件會生成一個內建的 windindd 進程,并且默認是啟用的。
因此,你沒必要再次去啟用并運行 Ubuntu 系統官方自帶的 winbind 服務。
為了防止系統里原來已廢棄的 winbind 服務被啟動,確保執行以下命令來禁用并停止原來的 winbind 服務。
- $ sudo systemctl disable winbind.service
- $ sudo systemctl stop winbind.service
雖然我們不再需要運行原有的 winbind 進程,但是為了安裝并使用 wbinfo 工具,我們還得從系統軟件庫中安裝 Winbind 包。
wbinfo 工具可以用來從 winbindd 進程側來查詢活動目錄用戶和組。
以下命令顯示了使用 wbinfo 命令如何查詢 AD 用戶及組信息。
- $ wbinfo -g
- $ wbinfo -u
- $ wbinfo -i your_domain_user
檢查 Samba4 AD 信息
檢查 Samba4 AD 用戶信息
20、 除了 wbinfo 工具外,你也可以使用 getent 命令行工具從 Name Service Switch 庫中查詢活動目錄信息庫,在 /etc/nsswitch.conf 配置文件中有相關描述內容。
通過 grep 命令用管道符從 getent 命令過濾結果集,以獲取信息庫中 AD 域用戶及組信息。
- # getent passwd | grep TECMINT
- # getent group | grep TECMINT
查看 Samba4 AD 詳細信息
第三步:使用活動目錄賬號登錄 Linux 系統
21、 為了使用 Samba4 AD 用戶登錄系統,使用 su - 命令切換到 AD 用戶賬號即可。
***次登錄系統后,控制臺會有信息提示用戶的 home 目錄已創建完成,系統路徑為 /home/$DOMAIN/ 之下,名字為用戶的 AD 賬號名。
使用 id 命令來查詢其它已登錄的用戶信息。
- # su - your_ad_user
- $ id
- $ exit
檢查 Linux 下 Samba4 AD 用戶認證結果
22、 當你成功登入系統后,在控制臺下輸入 passwd 命令來修改已登錄的 AD 用戶密碼。
- $ su - your_ad_user
- $ passwd
修改 Samba4 AD 用戶密碼
23、 默認情況下,活動目錄用戶沒有可以完成系統管理工作的 root 權限。
要授予 AD 用戶 root 權限,你必須把用戶名添加到本地 sudo 組中,可使用如下命令完成。
確保你已輸入域 、斜杠和 AD 用戶名,并且使用英文單引號括起來,如下所示:
- # usermod -aG sudo 'DOMAIN\your_domain_user'
要檢查 AD 用戶在本地系統上是否有 root 權限,登錄后執行一個命令,比如,使用 sudo 權限執行 apt-get update 命令。
- # su - tecmint_user
- $ sudo apt-get update
授予 Samba4 AD 用戶 sudo 權限
24、 如果你想把活動目錄組中的所有賬號都授予 root 權限,使用 visudo 命令來編輯 /etc/sudoers 配置文件,在 root 權限那一行添加如下內容:
- %DOMAIN\\your_domain\ group ALL=(ALL:ALL) ALL
注意 /etc/sudoers 的格式,不要弄亂。
/etc/sudoers 配置文件對于 ASCII 引號字符處理的不是很好,因此務必使用 '%' 來標識用戶組,使用反斜杠來轉義域名后的***個斜杠,如果你的組名中包含空格(大多數 AD 內建組默認情況下都包含空格)使用另外一個反斜杠來轉義空格。并且域的名稱要大寫。
授予所有 Samba4 用戶 sudo 權限
好了,差不多就這些了!管理 Samba4 AD 架構也可以使用 Windows 環境中的其它幾個工具,比如 ADUC、DNS 管理器、 GPM 等等,這些工具可以通過安裝從 Microsoft 官網下載的 RSAT 軟件包來獲得。
要通過 RSAT 工具來管理 Samba4 AD DC ,你必須要把 Windows 系統加入到 Samba4 活動目錄。這將是我們下一篇文章的重點,在這之前,請繼續關注。