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

本教程将告诉你如何将 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 = 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 服务器

确保你替换了域名值,特别是对应域名的 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、 你也可以用 Linuxid命令获取 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=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中国荣誉推出

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,716评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,558评论 1 294
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,431评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,127评论 0 209
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,511评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,692评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,915评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,664评论 0 202
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,412评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,616评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,105评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,424评论 2 254
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,098评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,096评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,869评论 0 197
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,748评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,641评论 2 271

推荐阅读更多精彩内容