Linux中國

Samba 系列(十五):用 SSSD 和 Realm 集成 Ubuntu 到 Samba4 AD DC

本教程將告訴你如何將 Ubuntu 桌面版機器加入到帶有 SSSD 和 Realm 服務的 Samba4 活動目錄域中,以在活動目錄中認證用戶。

要求:

  1. 在 Ubuntu 上用 Samba4 創建一個活動目錄架構

第 1 步:初始配置

1、 在把 Ubuntu 加入活動目錄前確保主機名被正確設置了。使用 hostnamectl 命令設置機器名字或者手動編輯 /etc/hostname 文件。

$ sudo hostnamectl set-hostname your_machine_short_hostname
$ cat /etc/hostname
$ hostnamectl

2、 接下來,編輯機器網路介面設置並且添加合適的 IP 設置,並將正確的 DNS IP 伺服器地址指向 Samba 活動目錄域控制器,如下圖所示。

如果你已經配置了 DHCP 服務來為區域網機器自動分配包括合適的 AD DNS IP 地址的 IP 設置,那麼你可以跳過這一步。

設置網路介面

設置網路介面

上圖中,192.168.1.254192.168.1.253 代表 Samba4 域控制器的 IP 地址。

3、 用 GUI(圖形用戶界面)或命令行重啟網路服務來應用修改,並且對你的域名發起一系列 ping 請求來測試 DNS 解析如預期工作。 也用 host 命令來測試 DNS 解析。

$ sudo systemctl restart networking.service
$ host your_domain.tld
$ ping -c2 your_domain_name
$ ping -c2 adc1
$ ping -c2 adc2

4、 最後, 確保機器時間和 Samba4 AD 同步。安裝 ntpdate 包並用下列指令和 AD 同步時間。

$ sudo apt-get install ntpdate
$ sudo ntpdate your_domain_name

第 2 步:安裝需要的包

5、 這一步將安裝將 Ubuntu 加入 Samba4 活動目錄域控制器所必須的軟體和依賴:Realmd 和 SSSD 服務。

$ sudo apt install adcli realmd krb5-user samba-common-bin samba-libs samba-dsdb-modules sssd sssd-tools libnss-sss libpam-sss packagekit policykit-1 

6、 輸入大寫的默認 realm 名稱,然後按下回車繼續安裝。

輸入 Realm 名稱

輸入 Realm 名稱

7、 接著,創建包含以下內容的 SSSD 配置文件。

$ sudo nano /etc/sssd/sssd.conf

加入下面的內容到 sssd.conf 文件。

[nss]
filter_groups = root
filter_users = root
reconnection_retries = 3
[pam]
reconnection_retries = 3
[sssd]
domains = tecmint.lan
config_file_version = 2
services = nss, pam
default_domain_suffix = TECMINT.LAN
[domain/tecmint.lan]
ad_domain = tecmint.lan
krb5_realm = TECMINT.LAN
realmd_tags = manages-system joined-with-samba
cache_credentials = True
id_provider = ad
krb5_store_password_if_offline = True
default_shell = /bin/bash
ldap_id_mapping = True
use_fully_qualified_names = True
fallback_homedir = /home/%d/%u
access_provider = ad
auth_provider = ad
chpass_provider = ad
access_provider = ad
ldap_schema = ad
dyndns_update = true
dyndsn_refresh_interval = 43200
dyndns_update_ptr = true
dyndns_ttl = 3600

確保你對應地替換了下列參數的域名:

domains = tecmint.lan
default_domain_suffix = TECMINT.LAN
[domain/tecmint.lan]
ad_domain = tecmint.lan
krb5_realm = TECMINT.LAN

8、 接著,用下列命令給 SSSD 配置文件適當的許可權:

$ sudo chmod 700 /etc/sssd/sssd.conf

9、 現在,打開並編輯 Realmd 配置文件,輸入下面這行:

$ sudo nano /etc/realmd.conf

realmd.conf 文件摘錄:

[active-directory]
os-name = Linux Ubuntu
os-version = 17.04
[service]
automatic-install = yes
[users]
default-home = /home/%d/%u
default-shell = /bin/bash
[tecmint.lan]
user-principal = yes
fully-qualified-names = no

10、 最後需要修改的文件屬於 Samba 守護進程。 打開 /etc/samba/smb.conf 文件編輯,然後在文件開頭加入下面這塊代碼,在 [global] 之後的部分如下圖所示。

workgroup = TECMINT
client signing = yes
client use spnego = yes
kerberos method = secrets and keytab
realm = TECMINT.LAN
security = ads

配置 Samba 伺服器

配置 Samba 伺服器

確保你替換了域名值,特別是對應域名的 realm 值,並運行 testparm 命令檢驗設置文件是否包含錯誤。

$ sudo testparm

測試 Samba 配置

測試 Samba 配置

11、 在做完所有必需的修改之後,用 AD 管理員帳號驗證 Kerberos 認證並用下面的命令列出票據。

$ sudo kinit ad_admin_user@DOMAIN.TLD
$ sudo klist

檢驗 Kerberos 認證

檢驗 Kerberos 認證

第 3 步: 加入 Ubuntu 到 Samba4 Realm

12、 鍵入下列命令將 Ubuntu 機器加入到 Samba4 活動目錄。用有管理員許可權的 AD DC 賬戶名字,以便綁定 realm 可以如預期般工作,並替換對應的域名值。

$ sudo realm discover -v DOMAIN.TLD
$ sudo realm list
$ sudo realm join TECMINT.LAN -U ad_admin_user -v
$ sudo net ads join -k

加入 Ubuntu 到 Samba4 Realm

加入 Ubuntu 到 Samba4 Realm

列出 Realm Domain 信息

列出 Realm Domain 信息

加入用戶到 Realm Domain

添加用戶到 Realm Domain

表列 Realm Domain 信息

添加 Domain 到 Realm

13、 區域綁定好了之後,運行下面的命令確保所有域賬戶允許在這台機器上認證。

$ sudo realm permit -all

然後你可以使用下面舉例的 realm 命令允許或者禁止域用戶帳號或群組訪問。

$ sudo realm deny -a
$ realm permit --groups 『domain.tldLinux Admins』
$ realm permit user@domain.lan
$ realm permit DOMAIN\User2

14、 從一個 安裝了 RSAT 工具的 Windows 機器上你可以打開 AD UC 並瀏覽「 電腦 computers 」容器,並檢驗是否有一個使用你機器名的對象帳號已經創建。

確保域被加入 AD DC

確保域被加入 AD DC

第 4 步:配置 AD 賬戶認證

15、 為了在 Ubuntu 機器上用域賬戶認證,你需要用 root 許可權運行 pam-auth-update 命令並允許所有 PAM 配置文件,包括為每個域賬戶在第一次註冊的時候自動創建家目錄的選項。

按 [空格] 鍵檢驗所有配置項並點擊 ok 來應用配置。

$ sudo pam-auth-update

PAM 配置

PAM 配置

16、 在系統上手動編輯 /etc/pam.d/common-account 文件,下面這幾行是為了給認證過的域用戶自動創建家目錄。

session    required    pam_mkhomedir.so    skel=/etc/skel/    umask=0022

17、 如果活動目錄用戶不能用 linux 命令行修改他們的密碼,打開 /etc/pam.d/common-password 文件並在 password 行移除 use_authtok 語句,最後如下:

password       [success=1 default=ignore]      pam_winbind.so try_first_pass

18、 最後,用下面的命令重啟並啟用以應用 Realmd 和 SSSD 服務的修改:

$ sudo systemctl restart realmd sssd
$ sudo systemctl enable realmd sssd

19、 為了測試 Ubuntu 機器是是否成功集成到 realm ,安裝 winbind 包並運行 wbinfo 命令列出域賬戶和群組,如下所示。

$ sudo apt-get install winbind
$ wbinfo -u
$ wbinfo -g

列出域賬戶

列出域賬戶

20、 同樣,也可以針對特定的域用戶或群組使用 getent 命令檢驗 Winbind nsswitch 模塊。

$ sudo getent passwd your_domain_user
$ sudo getent group 『domain admins』

檢驗 Winbind Nsswitch

檢驗 Winbind Nsswitch

21、 你也可以用 Linux id 命令獲取 AD 賬戶的信息,命令如下:

$ id tecmint_user

檢驗 AD 用戶信息

檢驗 AD 用戶信息

22、 用 su - 後跟上域用戶名參數來認證 Ubuntu 主機的一個 Samba4 AD 賬戶。運行 id 命令獲取該 AD 賬戶的更多信息。

$ su - your_ad_user

AD 用戶認證

AD 用戶認證

pwd 命令查看你的域用戶當前工作目錄,和用 passwd 命令修改密碼。

23、 在 Ubuntu 上使用有 root 許可權的域賬戶,你需要用下面的命令添加 AD 用戶名到 sudo 系統群組:

$ sudo usermod -aG sudo your_domain_user@domain.tld

用域賬戶登錄 Ubuntu 並運行 apt update 命令來更新你的系統以檢驗 root 許可權。

24、 給一個域群組 root 許可權,用 visudo 命令打開並編輯 /etc/sudoers 文件,並加入如下行:

%domain admins@tecmint.lan              ALL=(ALL:ALL) ALL

25、 要在 Ubuntu 桌面使用域賬戶認證,通過編輯 /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf 文件來修改 LightDM 顯示管理器,增加以下兩行並重啟 lightdm 服務或重啟機器應用修改。

greeter-show-manual-login=true
greeter-hide-users=true

域賬戶用「你的域用戶」或「你的域用戶@你的域」 格式來登錄 Ubuntu 桌面。

26、 為使用 Samba AD 賬戶的簡稱格式,編輯 /etc/sssd/sssd.conf 文件,在 [sssd] 塊加入如下幾行命令。

full_name_format = %1$s

並重啟 SSSD 守護進程應用改變。

$ sudo systemctl restart sssd

你會注意到 bash 提示符會變成了沒有附加域名部分的 AD 用戶名。

27、 萬一你因為 sssd.conf 里的 enumerate=true 參數設定而不能登錄,你得用下面的命令清空 sssd 緩存數據:

$ rm /var/lib/sss/db/cache_tecmint.lan.ldb

這就是全部了!雖然這個教程主要集中於集成 Samba4 活動目錄,同樣的步驟也能被用於把使用 Realm 和 SSSD 服務的 Ubuntu 整合到微軟 Windows 伺服器活動目錄。

作者簡介:

Matei Cezar - 我是一名網癮少年,開源和基於 linux 系統軟體的粉絲,有4年經驗在 linux 發行版桌面、伺服器和 bash 腳本。

via: https://www.tecmint.com/integrate-ubuntu-to-samba4-ad-dc-with-sssd-and-realm/

作者:Matei Cezar 譯者:XYenChi 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的電子郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國