编辑
2023-05-24
运维
00
请注意,本文编写于 483 天前,最后修改于 483 天前,其中某些信息可能已经过时。

本文展示如何使用 realmd ,sssd将 Ubuntu 20.04加入到 Active Directory 域。本文还进一步为通过 AD 登录的域用户配置 sudo 规则。

设置主机名和DNS

下面命令用来设置正确的主机名和dns服务器地址:

bpang@Ubuntu-1:~$ sudo hostnamectl set-hostname Ubuntu-1.pangzb.com bpang@Ubuntu-1:~$ hostnamectl

image-20230524141510083

配置可以和AD域控制器通信的DNS地址:

bpang@Ubuntu-1:~$ sudo vim /etc/netplan/00-installer-config.yaml bpang@Ubuntu-1:~$ cat /etc/netplan/00-installer-config.yaml # This is the network config written by 'subiquity' network: ethernets: enp1s0: dhcp4: false addresses: [10.111.127.141/18] gateway4: 10.111.127.254 nameservers: addresses: [10.111.87.200] version: 2 bpang@Ubuntu-1:~$ sudo netplan apply

image-20230524141514792

可以使用resolvectl查看当前的dns服务器地址:

bpang@Ubuntu-1:~$ resolvectl --no-pager | grep -i server DNS Servers: 10.111.87.200

安装需要用到的软件包

如果想要加入AD域,在Linux中需要安装一些软件包才行:

bpang@Ubuntu-1:~$ sudo apt update -y bpang@Ubuntu-1:~$ sudo apt -y install realmd libnss-sss libpam-sss sssd sssd-tools adcli samba-common-bin oddjob oddjob-mkhomedir packagekit

image-20230524141519989

发现域

realm discover 命令会显示完整的域配置和需要安装的软件包列表,只有安装了系统才能在域中注册。

bpang@Ubuntu-1:~$ sudo realm discover pangzb.com pangzb.com type: kerberos realm-name: PANGZB.COM domain-name: pangzb.com configured: no server-software: active-directory client-software: sssd required-package: sssd-tools required-package: sssd required-package: libnss-sss required-package: libpam-sss required-package: adcli

可以看到图中required-package列出的软件包就是刚刚我们安装的。

image-20230524141526051

将操作系统加入域中

使用realm join命令将系统加入域中。realm join --help可以看到相关帮助,里面有许多选项可供使用,下面使用-U选项来指定域控管理员账号,然后输入密码:

bpang@Ubuntu-1:~$ sudo realm join -U administrator pangzb.com Password for administrator:

查看是否成功加入域:

bpang@Ubuntu-1:~$ realm list pangzb.com type: kerberos realm-name: PANGZB.COM domain-name: pangzb.com configured: kerberos-member server-software: active-directory client-software: sssd required-package: sssd-tools required-package: sssd required-package: libnss-sss required-package: libpam-sss required-package: adcli required-package: samba-common-bin login-formats: %U@pangzb.com login-policy: allow-realm-logins

可以看到加入域之后的相关信息了。

image-20230524141531358

在域控里面也可以看到该计算机了。

image-20230524141535813

登录域用户来测试一下吧

下面通过切换至域用户测试一下:

bpang@Ubuntu-1:~$ su - user01@pangzb.com Password: su: warning: cannot change directory to /home/user01@pangzb.com: No such file or directory user01@pangzb.com@Ubuntu-1:/home/bpang$ pwd /home/bpang

image-20230524141540910

看到上面提示,发现域用户没有自动创建home目录,通过pwd命令查看以下,用户当前不在自己的home目录。

下面使用pam-auth-update来加载mkhomedir模块。

bpang@Ubuntu-1:~$ sudo pam-auth-update

选中Create home directory on login,点OK,更新之后,再次使用域用户登录,就可以自动创建目录了。

image-20230524141545048

bpang@Ubuntu-1:~$ su - user02@pangzb.com Password: Creating directory '/home/user02@pangzb.com'.

image-20230524141549692

设置访问控制列表

可以通过realm工具自带的访问控制列表来禁止或允许用户和组的登录访问。

例如:拒绝user02@pangzb.com登录本机:

bpang@Ubuntu-1:~$ sudo realm deny user02@pangzb.com

如下图,登录时提示permission denied

image-20230524141554293

允许用户组登录就是sudo realm permit -g 'Domain Users'

允许用户登录就是sudo realm permit Adinistrator

允许或拒绝所有用户登录:sudo realm permit --all / sudo realm deny --all

配置用户sudo访问

加入域之后重要的事情是限制域用户使用sudo命令提权。这可以通过使用visudo命令添加%domain^admins ALL=(ALL) ALL来完成,这样只允许域管理员用户才能使用sudo命令:

bpang@Ubuntu-1:~$ sudo visudo # 打开之后,在配置文件中添加如下行 %domain^admins ALL=(ALL) NOPASSWD: ALL

image-20230524141558597

测试域用户SSH登录

通过域用户登录时,@和.使用转义符转义一下。

bpang@Ubuntu-1:~$ ssh user01\@pangzb\.com@127.0.0.1

image-20230524141603516

总结

本文展示如何使用 realmd ,sssd将 Ubuntu 20.04加入到 Active Directory 域。本文还进一步为通过 AD 登录的域用户配置 sudo 规则。

如果对你有用的话,可以打赏哦
打赏
ali pay
wechat pay

本文作者:Gustav

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!