您的位置:首页 > 其它

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

2017-09-09 18:14 453 查看
本教程将告诉你如何将 Ubuntu 桌面版机器加入到带有 SSSD 和 Realm 服务的 Samba4 活动目录域中,以在活动目录中认证用户。

要求:

在 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.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 活动目录域控制器所必须的软件和依赖: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 名称
7、 接着,创建包含以下内容的 SSSD 配置文件。
$ sudo nano /etc/sssd/sssd.conf
加入下面的内容到 
sssd.conf
 文件。
[nss]filter_groups = rootfilter_users = rootreconnection_retries = 3[pam]reconnection_retries = 3[sssd]domains = tecmint.lanconfig_file_version = 2services = nss, pamdefault_domain_suffix = TECMINT.LAN[domain/tecmint.lan]ad_domain = tecmint.lankrb5_realm = TECMINT.LANrealmd_tags = manages-system joined-with-sambacache_credentials = Trueid_provider = adkrb5_store_password_if_offline = Truedefault_shell = /bin/bashldap_id_mapping = Trueuse_fully_qualified_names = Truefallback_homedir = /home/%d/%uaccess_provider = adauth_provider = adchpass_provider = adaccess_provider = adldap_schema = addyndns_update = truedyndsn_refresh_interval = 43200dyndns_update_ptr = truedyndns_ttl = 3600
确保你对应地替换了下列参数的域名:
domains = tecmint.landefault_domain_suffix = TECMINT.LAN[domain/tecmint.lan]ad_domain = tecmint.lankrb5_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 Ubuntuos-version = 17.04[service]automatic-install = yes[users]default-home = /home/%d/%udefault-shell = /bin/bash[tecmint.lan]user-principal = yesfully-qualified-names = no
10、 最后需要修改的文件属于 Samba 守护进程。 打开 
/etc/samba/smb.conf
 文件编辑,然后在文件开头加入下面这块代码,在 
[global]
之后的部分如下图所示。
workgroup = TECMINTclient signing = yesclient use spnego = yeskerberos method = secrets and keytabrealm = TECMINT.LANsecurity = ads



配置 Samba 服务器
确保你替换了域名值,特别是对应域名的 realm 值,并运行 
testparm
 命令检验设置文件是否包含错误。
$ sudo testparm



测试 Samba 配置
11、 在做完所有必需的修改之后,用 AD 管理员帐号验证 Kerberos 认证并用下面的命令列出票据。
$ sudo kinit ad_admin_user@DOMAIN.TLD$ sudo klist



检验 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



列出 Realm Domain 信息



添加用户到 Realm Domain



添加 Domain 到 Realm
13、 区域绑定好了之后,运行下面的命令确保所有域账户允许在这台机器上认证。
$ sudo realm permit -all
然后你可以使用下面举例的
realm
命令允许或者禁止域用户帐号或群组访问。
$ sudo realm deny -a$ realm permit --groups ‘domain.tld\Linux Admins’$ realm permit user@domain.lan$ realm permit DOMAIN\\User2
14、 从一个 安装了 RSAT 工具的 Windows 机器上你可以打开 AD UC 并浏览“电脑computers”容器,并检验是否有一个使用你机器名的对象帐号已经创建。



确保域被加入 AD DC

第 4 步:配置 AD 账户认证

15、 为了在 Ubuntu 机器上用域账户认证,你需要用 root 权限运行 
pam-auth-update
 命令并允许所有 PAM 配置文件,包括为每个域账户在第一次注册的时候自动创建家目录的选项。
按 [空格] 键检验所有配置项并点击 ok 来应用配置。
$ sudo pam-auth-update



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
21、 你也可以用 Linux 
id
 命令获取 AD 账户的信息,命令如下:
$ id tecmint_user



检验 AD 用户信息
22、 用
su -
后跟上域用户名参数来认证 Ubuntu 主机的一个 Samba4 AD 账户。运行 
id
 命令获取该 AD 账户的更多信息。
$ su - your_ad_user



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=truegreeter-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/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐