linux怎么建ad域
linux怎么建ad域详细介绍
在 Linux 系统中加入 Active Directory(AD)域,通常是指将 Linux 服务器配置为 AD 域的成员,以便使用 AD 的用户认证和授权功能。以下是具体步骤(以常见的 Red Hat/CentOS 和 Debian/Ubuntu 为例):
一、准备工作
- 确认 AD 域信息
- 域名称(如
example.com或短名称EXAMPLE) - 域控制器 IP 地址(如
192.168.1.100) - 具有加入域权限的 AD 账户(如
Administrator或普通域用户)。
- 域名称(如
- 配置 DNS
确保 Linux 服务器能正确解析 AD 域控制器的域名。修改/etc/resolv.conf或通过 DHCP 获取 DNS 服务器地址(指向 AD 域控制器):
bashnameserver .1.100
二、Red Hat/CentOS/RHEL 系列(如 Rocky Linux、AlmaLinux)
1. 安装必要软件包
bash
dnf samba samba-common-tools sssd adcli realmd oddjob oddjob-mkhomedir
2. 加入 AD 域
使用 realm 命令(推荐,自动配置 sssd 和 PAM):
bash
realm example.com
输入 AD 账户密码后,系统会自动配置 Kerberos 和 sssd。
3. 手动配置(可选,若 realm 失败)
使用 adcli 和 sssd 手动加入:
bash
adcli example.comsystemctl sssd
4. 配置 PAM 和 NSS
确保认证和用户解析使用 AD:
bash
/etc/pam.d/system-auth
auth sufficient pam_krb5.so
account sufficient pam_krb5.so
password sufficient pam_krb5.so
session optional pam_mkhomedir.so /etc/skel 0077
passwd: files sss
group: files sss
shadow: files sss
三、Debian/Ubuntu 系列
1. 安装必要软件包
bash
samba sssd adcli realmd krb5-user
2. 加入 AD 域
使用 realm 命令:
bash
realm example.com
3. 配置 sssd
编辑配置文件 /etc/sssd/sssd.conf(自动生成,若需调整):
ini
4. 启动 sssd 服务
bash
systemctl sssd
四、验证配置
- 检查 Kerberos 票据
bashklist - 测试 AD 用户登录
bash- username@example.com - 查看域成员状态
bashrealm list
五、常见问题处理
- DNS 解析问题
- 确保能通过域名 ping 通 AD 域控制器(如
ping dc.example.com)。 - 检查
/etc/hosts是否手动绑定了域控制器 IP 和域名。
- 确保能通过域名 ping 通 AD 域控制器(如
- 防火墙设置
开放 AD 所需端口(如 Kerberos 88、LDAP 389、LDAPS 636、NETLOGON 135/445 等):
bashfirewall-cmd --add-serviceldap --add-servicekerberos
firewall-cmd
ufw allow /tcp
ufw allow /udp
ufw allow /tcp
ufw allow /tcp
- 权限问题
确保使用的 AD 账户有 “加入域” 的权限(普通域用户默认可能无此权限,需联系域管理员)。
六、高级配置(可选)
- 自定义用户主目录:修改 sssd 配置中的
fallback_homedir为自定义路径。 - 组策略支持:使用
samba-gpo工具(需额外安装)处理 AD 组策略。 - 双因素认证:结合 PAM 模块(如
pam_google_authenticator)扩展认证方式。
通过以上步骤,Linux 服务器即可成功加入 AD 域,实现与 Windows AD 环境的统一认证和授权。如果需要将 Linux 服务器作为 AD 域控制器(非成员),则需使用 Samba 的 AD 模式(Samba AD DC),但此场景较为复杂,需单独部署并配置 Samba 4 的 AD 功能,适用于自建 AD 替代方案。