背景
有一台Centos 7 的Linux服务器,需要每个IT管理员都可以登录并进行维护,为了方便账户管理,统一认证,要求Linux服务器登录实现Windows AD域验证。
环境说明
AD域:Windows server 2019
AD域主机IP : 192.168.100.100
域名:hyz.com
管理员组: ITadmin (组内含:管理员-张三、管理员-李四、管理员-昭哥)
单独的审计用户: audit
实现过程
- 首先将AD域服务器的IP与主机对应关系写入Centos 的hosts文件中;
vim /etc/hosts
192.168.100.100 dc1.hyz.com #这是我的AD域服务器IP与主机信息;
- Centos 7 安装sssd ;
yum -y install realmd sssd oddjob \
oddjob-mkhomedir adcli samba-common
realm join dc1.hyz.com -U administrator #使用域管理员权限加域
Password for administrator: ******* #此处输入域管理员的密码
- 配置sssd.conf,对ITadmin组和单独的用户账户audit进行登录授权;
vim /etc/sssd/sssd.conf
ad_server = dc1.hyz.com
ad_domain = hyz.com
krb5_realm = HYZ.COM
realmd_tags = manages-system joined-with-adcli
cache_credentials = True
id_provider = ad
krb5_store_password_if_offline = True
default_shell = /bin/bash
ldap_id_mapping = True
use_fully_qualified_names = False #改为 False
fallback_homedir = /home/%u #改为 /home/%u
access_provider = simple
simple_allow_groups = ITadmin #允许ITadmin组内成员登录此linux
simple_allow_users = audit #允许单独的审计用户audit登录此linux
- 配置sudoers文件,对用户进行系统权限授权;
visudo
在配置文件中添加如下语句
%ITadmin ALL=(ALL) ALL
关闭防火墙,并重启 sssd 服务;
systemctl stop firewalld.service
systemctl restart sssd
- 验证
使用域用户登录Centos 系统;
命令扩展
realm permit --withdraw -g ITadmin; # 取消LoginNO组的登录权限
id zhaoge; # 从AD中获取域用户信息
id zhaoge; # 在/etc/sssh/sssd.conf中设置了use_fully_qualified_names为False的可以直接用
realm leave dc1.hyz.com; # 退出AD域