在当今的企业IT环境中,将Linux服务器(如CentOS)集成到现有的Windows活动目录(AD)域中是一种常见的实践,这种集成可以实现统一的身份认证、集中的策略管理以及简化的用户权限控制,从而极大地提升了运维效率和安全性,本文将详细介绍如何将一台CentOS服务器平滑地加入AD域,完成这一关键的系统管理任务。
准备工作:确保基础环境无误
在开始配置之前,必须确保CentOS服务器满足一些基本的前提条件,这是成功加入域的关键。
- 网络连通性与DNS解析:确保CentOS服务器能够通过网络访问到AD域控制器(DC),最关键的一点是,服务器的DNS设置必须指向AD域控制器的IP地址,AD服务严重依赖DNS进行服务定位,因此错误的DNS配置是导致加入失败最常见的原因,您可以通过编辑
/etc/resolv.conf
文件来设置DNS。 - 主机名设置:为服务器设置一个规范的主机名,并确保其在域内是唯一的,主机名不应包含“localhost”或任何临时字符,可以使用
hostnamectl set-hostname your-server-name
命令进行设置。 - 时间同步:确保CentOS服务器的时间与AD域控制器的时间保持同步,时间差异过大会导致Kerberos认证失败,建议配置NTP服务,使其与域控制器或相同的公共时间源同步。
- 更新系统:执行
sudo yum update -y
或sudo dnf update -y
,确保系统软件包是最新的,以避免潜在的兼容性问题。
安装必要的软件包
CentOS需要特定的软件包来与AD域进行通信。realmd
工具集极大地简化了这一过程,它自动处理了底层的SSSD、Kerberos和Samba客户端配置,打开终端,执行以下命令安装所需组件:
sudo yum install -y realmd sssd oddjob oddjob-mkhomedir adcli samba-common-tools
这些软件包各司其职:realmd
用于发现和加入域;sssd
(System Security Services Daemon)是核心守护进程,负责缓存用户凭据和处理认证请求;oddjob-mkhomedir
用于在用户首次登录时自动创建家目录;adcli
和 samba-common-tools
提供了与AD交互的底层工具。
核心步骤:加入AD域
准备工作就绪后,便可以开始执行加入域的核心操作。
发现域:使用
realm discover
命令验证您的网络环境是否能够正确发现AD域,将your.domain.com
替换为您的实际域名。realm discover your.domain.com
如果命令成功执行,它将返回域的详细信息,包括域控制器地址和Realm名称,如果此步骤失败,请回头检查DNS和网络配置。
加入域:使用
realm join
命令正式将服务器加入AD域,您需要提供一个具有域加入权限的账户(通常是域管理员或具有等效权限的账户)。sudo realm join your.domain.com -U your_admin_user
执行后,系统会提示您输入
your_admin_user
的密码,验证通过后,系统将自动配置SSSD、Kerberos和Samba,并完成计算机账户在AD中的创建,整个过程无需手动编辑任何配置文件。验证加入状态:加入成功后,可以通过
realm list
命令查看当前已加入的域信息,您还可以使用id
命令来验证是否可以解析AD用户,查看一个AD用户ad_user
的UID和GID信息:id ad_user@your.domain.com
如果能够正确返回用户的Unix ID信息,说明加入操作已完全成功。
后续配置与优化
加入域只是第一步,为了让AD用户能够顺畅地使用服务器,还需要进行一些后续配置。
自动创建家目录:默认情况下,AD用户首次登录时可能没有家目录,可以通过
authconfig
启用此功能:sudo authconfig --enablemkhomedir --update
确保
oddjobd
服务是开机自启并正在运行:sudo systemctl enable oddjobd && sudo systemctl start oddjobd
配置Sudo权限:若要允许特定的AD用户或组获得sudo权限,可以在
/etc/sudoers.d/
目录下创建一个新的配置文件,要让名为 “Domain Admins” 的AD组拥有所有sudo权限,可以创建文件/etc/sudoers.d/ad_admins
,并添加以下内容:%domain admins@your.domain.com ALL=(ALL) ALL
注意,域中的空格需要用反斜杠
转义,并且组名和域名通常是小写。
为了便于快速回顾,下表小编总结了关键操作:
操作 | 命令或文件路径 | 描述 |
---|---|---|
设置DNS | /etc/resolv.conf | 指向域控制器IP,确保AD服务发现 |
安装软件包 | sudo yum install -y realmd sssd ... | 安装加入域所需的全部依赖 |
发现域 | realm discover your.domain.com | 验证网络和DNS配置是否正确 |
加入域 | sudo realm join your.domain.com -U admin_user | 使用管理员账户将计算机加入AD域 |
验证用户 | id ad_user@your.domain.com | 检查SSSD是否能正确解析AD用户身份 |
启用自动家目录 | sudo authconfig --enablemkhomedir --update | 允许AD用户首次登录时自动创建家目录 |
配置Sudo | /etc/sudoers.d/ | 为AD用户或组分配sudo权限 |
相关问答FAQs
问题1:在执行 realm join
时,系统提示“No logon servers”或“Unable to join domain”,该怎么办?
解答: 这个错误几乎总是指向DNS解析问题,请检查 /etc/resolv.conf
文件中的 nameserver
是否正确设置为您的AD域控制器的IP地址,尝试从CentOS服务器使用 nslookup
或 dig
命令解析您的AD域名(如 nslookup your.domain.com
)和域控制器的SRV记录(如 nslookup _ldap._tcp.your.domain.com
),如果SRV记录无法解析,域客户端就无法找到登录服务器,加入自然会失败,请确保网络防火墙没有阻止到域控制器53端口的流量。
问题2:AD用户可以成功登录服务器,但是登录后提示“Could not chdir to home directory”,并且没有自动创建家目录,是什么原因?
解答: 这是因为没有启用自动创建家目录的功能,请确保您已经执行了 sudo authconfig --enablemkhomedir --update
命令。oddjobd
服务必须处于运行状态,请检查该服务状态:systemctl status oddjobd
,如果未运行,请使用 sudo systemctl start oddjobd
启动它,并用 sudo systemctl enable oddjobd
设置为开机自启。oddjobd
服务是实际响应PAM模块调用来创建目录的后台程序,两者缺一不可。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复