在CentOS系统中搭建域服务器通常使用Samba软件套件,它支持活动目录(Active Directory)功能,可实现用户认证、权限管理和集中控制,以下是详细搭建步骤:
环境准备
-
系统要求:推荐使用CentOS 7或8版本,确保网络配置正确,服务器具有静态IP地址。
- IP地址:192.168.1.100
- 子网掩码:255.255.255.0
- 网关:192.168.1.1
- DNS:192.168.1.100(指向自身)
-
更新系统:
sudo yum update -y sudo reboot
-
安装必要依赖:
sudo yum install -y samba samba-common samba-client realmd oddjob oddjob-mkhomedir sssd adcli
配置Samba
-
备份原始配置:
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
-
编辑主配置文件:
sudo vim /etc/samba/smb.conf
在文件末尾添加以下内容:
[netlogon] path = /var/lib/samba/netlogon browseable = No writeable = No guest ok = Yes [profiles] path = /var/lib/samba/profiles browseable = No writeable = Yes guest ok = Yes
-
创建共享目录:
sudo mkdir -p /var/lib/samba/netlogon sudo mkdir -p /var/lib/samba/profiles sudo chown -R nobody:nobody /var/lib/samba/netlogon sudo chown -R nobody:nobody /var/lib/samba/profiles
加入域
-
测试域名解析:
sudo realm discover example.com # 替换为实际域名
-
加入域:
sudo realm join example.com -U administrator # 替换为实际域管理员账户
根据提示输入域管理员密码。
-
配置自动创建家目录: 编辑
/etc/sssd/sssd.conf,确保[domain/example.com]部分包含:ldap_id_use_start_tls = True fallback_homedir = /home/%u
-
启用PAM模块:
sudo authconfig --enablemkhomedir --update
设置域控制器角色
-
配置Samba为域控制器: 编辑
/etc/samba/smb.conf,在[global]部分添加:workgroup = EXAMPLE # 替换为域名NetBIOS名称 realm = EXAMPLE.COM # 替换为实际域名 server role = active directory domain controller dns forwarder = 8.8.8.8 # 可选配置外部DNS
-
初始化域数据库:
sudo samba-tool domain provision --use-rfc2307 --interactive
根据提示输入域名、管理员密码等信息。
-
重启服务:
sudo systemctl restart smb nmb sssd sudo systemctl enable smb nmb sssd
验证域功能
-
检查域状态:
sudo samba-tool domain status
-
创建测试用户:
sudo samba-tool user create testuser 'Password123!'
-
客户端测试: 在Windows客户端修改DNS指向服务器IP,使用
testuser账户登录。
常见问题排查
-
防火墙配置:
sudo firewall-cmd --permanent --add-service={samba,ldap,kerberos} sudo firewall-cmd --reload -
日志查看:
tail -f /var/log/samba/log.smbd tail -f /var/log/sssd/sssd_example.com.log
相关问答FAQs
问题1:如何重置域管理员密码?
解答:使用samba-tool命令重置密码,首先以root身份登录域控制器,执行:
sudo samba-tool user setpassword administrator
根据提示输入新密码两次,若需强制修改过期密码,可添加--newpassword参数直接指定新密码。
问题2:客户端无法加入域,报错“找不到域控制器”怎么办?
解答:首先检查网络连通性,确保客户端能ping通服务器IP,其次验证DNS配置,客户端DNS必须指向域控制器,然后检查服务器防火墙是否开放了关键端口(如TCP/UDP 53、88、135、389、445等),最后使用sudo realm discover example.com确认域发现是否成功,若失败则检查服务器日志排查认证问题。
