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