将Ubuntu与SSSD和领域的Samba4 AD DC集成 - 第15部分

本教程将指导您如何使用SSSDRealmd服务将Ubuntu Desktop机器加入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 = youcl.lan
config_file_version = 2
services = nss, pam
default_domain_suffix = youcl.LAN
[domain/youcl.lan]
ad_domain = youcl.lan
krb5_realm = youcl.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 = youcl.lan
default_domain_suffix = youcl.LAN
[domain/youcl.lan]
ad_domain = youcl.lan
krb5_realm = youcl.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
[youcl.lan]
user-principal = yes
fully-qualified-names = no

10.您需要修改的最后一个文件属于Samba守护程序。 打开/etc/samba/smb.conf文件进行编辑,并在文件开头添加以下代码块,如下图所示的[global]部分之后。

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

配置Samba服务器

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

$ sudo testparm

测试Samba配置

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

$ sudo kinit [email protected]
$ sudo klist

检查Kerberos身份验证

第3步:将Ubuntu加入Samba4领域

12.要将Ubuntu机器加入Samba4 Active Directory,请按照以下一系列命令进行操作。 使用具有管理员权限的AD DC帐户的名称,以使绑定到领域能够按预期工作,并相应地替换域名值。

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

加入Ubuntu到Samba4领域

列出领域域信息

将用户添加到领域域

添加域到域

13.域绑定发生后,运行以下命令,以确保所有域帐户都可以在机器上进行身份验证。

$ sudo realm permit -all

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

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

14.安装RSAT工具的Windows机器中,您可以打开AD UC并导航到Computers容器,并检查是否已创建具有机器名称的对象帐户。

确认添加到AD DC的域

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

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

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

$ sudo pam-auth-update

PAM配置

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

列出域帐户

另外,通过针对特定域用户或组发出getent命令来检查Winbind nsswitch模块。

$ sudo getent passwd your_domain_user
$ sudo getent group ‘domain admins’

检查Winbind Nsswitch

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

$ id youcl_user

检查AD用户信息

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

$ su - your_ad_user

AD用户验证

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

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

$ sudo usermod -aG sudo [email protected]

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

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

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

25.要使用Ubuntu Desktop的域帐户身份验证,请通过编辑/usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf文件修改LightDM显示管理器,附加以下两行并重新启动lightdm服务或重新引导机器应用变化。

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

使用your_domain_usernameyour_domain_username@your_domain.tld语法使用域帐户登录Ubuntu Desktop。

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_youcl.lan.ldb

就这样! 虽然本指南主要集中在与Samba4 Active Directory集成,但是也可以采用相同的步骤将Ubuntu与Realmd和SSSD服务集成到Microsoft Windows Server Active Directory中。

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏