网站搜索

将 Ubuntu 与 SSSD 和 Realm 集成到 Samba4 AD DC - 第 15 部分


本教程将指导您如何使用 SSSDRealmdUbuntu 桌面 计算机加入 Samba4 Active Directory 域> 服务,以便根据 Active Directory 对用户进行身份验证。

要求:

  1. 在 Ubuntu 上使用 Samba4 创建 Active Directory 基础架构

第 1 步:初始配置

1. 在开始将 Ubuntu 加入 Active Directory 之前,请确保主机名已正确配置。使用hostnamectl命令设置机器名称或手动编辑/etc/hostname文件。

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

2. 在下一步中,编辑计算机网络接口设置并添加正确的 IP 配置和正确的 DNS IP 服务器地址以指向 Samba AD 域控制器,如下面的屏幕截图所示。

如果您已在您的场所配置了 DHCP 服务器,以使用正确的 AD DNS IP 地址自动为 LAN 计算机分配 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 AD DC:RealmdSSSD 服务。

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.输入大写的默认领域名称,然后按Enter键继续安装。

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
dyndns_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

确保替换域名值,尤其是领域值以匹配您的域名,并运行testparm命令以检查配置是否正确文件不包含错误。

sudo testparm

11. 完成所有必需的更改后,使用 AD 管理帐户测试 Kerberos 身份验证,并通过发出以下命令列出票证。

sudo kinit [email 
sudo klist

步骤 3:将 Ubuntu 加入 Samba4 Realm

12. 要将 Ubuntu 计算机加入 Samba4 Active Directory,请执行以下一系列命令,如下所示。使用具有管理员权限的 AD DC 帐户的名称,以便与领域的绑定按预期工作并相应地替换域名值。

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

13. 域绑定完成后,运行以下命令以确保所有域帐户都被允许在计算机上进行身份验证。

sudo realm permit --all

随后,您可以使用领域命令允许或拒绝域用户帐户或组的访问,如以下示例所示。

sudo realm deny -a
realm permit --groups ‘domain.tld\Linux Admins’
realm permit [email 
realm permit DOMAIN\\User2

14. 在安装了 RSAT 工具的 Windows 计算机上,您可以打开 AD UC 并导航到计算机 容器,并检查是否存在名为您的机器的已创建。

步骤 4:配置 AD 帐户身份验证

15. 为了使用域帐户在 Ubuntu 计算机上进行身份验证,您需要使用 root 权限运行 pam-auth-update 命令,并启用所有 PAM 配置文件,包括自动创建的选项首次登录时每个域帐户的主目录。

[空格]键检查所有条目,然后点击确定应用配置。

sudo pam-auth-update

16. 在系统上手动编辑 /etc/pam.d/common-account 文件和以下行,以便自动为经过身份验证的域用户创建主目录。

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

17. 如果 Active Directory 用户无法在 Linux 中从命令行更改密码,请打开 /etc/pam.d/common-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 计算机是否已成功集成到领域,请运行安装 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’

21. 您还可以使用 Linux id 命令来获取有关 AD 帐户的信息,如以下命令所示。

id tecmint_user

22. 要使用 Samba4 AD 帐户在 Ubuntu 主机上进行身份验证,请在 su 命令后使用域用户名参数。运行 id 命令以获取有关 AD 帐户的额外信息。

su - your_ad_user

如果您想更改密码,请使用pwd命令查看您的域用户当前工作目录和passwd命令。

23. 要在 Ubuntu 计算机上使用具有 root 权限的域帐户,您需要通过发出以下命令将 AD 用户名添加到 sudo 系统组:

sudo usermod -aG sudo [email 

使用域帐户登录 Ubuntu,并通过运行 apt update 命令检查 root 权限来更新系统。

24. 要为域组添加 root 权限,请使用 visudo 命令打开结束编辑 /etc/sudoers 文件并添加以下行,如图所示。

%domain\ [email        		 ALL=(ALL:ALL) ALL

25. 要对 Ubuntu 桌面使用域帐户身份验证,请通过编辑 /usr/share/lightdm/lightdm.conf.d/50-ubuntu 来修改 LightDM 显示管理器。 conf 文件中,附加以下两行并重新启动 lightdm 服务或重新启动计算机应用更改。

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

使用 your_domain_usernameyour_domain_username@your_domain.tld 语法通过域帐户登录 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 Active Directory 的集成,但可以应用相同的步骤将 Ubuntu 与 Realmd 和 SSSD 服务集成到 Microsoft Windows Server Active Directory 中。