本教程将指导您如何使用SSSD和Realmd服务将Ubuntu Desktop机器加入Samba4 Active Directory域,以便根据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.254和192.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: 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.使用大写输入默认领域的名称,然后按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_username或your_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中。