在企业网络环境中,域控制器(Domain Controller)是管理用户账户、权限和资源的核心组件。虽然 Windows Server 是传统选择,但借助 Samba,我们可以在开源的 Debian 系统上搭建功能完整的 Active Directory 域控制器。本文将详细指导你从零开始配置 Debian Samba域控制器,即使是 Linux 新手也能轻松上手。

一、准备工作
在开始之前,请确保满足以下条件:
一台安装了 Debian 11(Bullseye)或更高版本 的服务器 静态 IP 地址(例如:192.168.1.10) 主机名已正确设置(例如:dc1.example.lan) 网络可访问,且能解析自身主机名注意:Samba AD DC 不支持在已有 Samba 配置或正在运行的 Samba 服务上直接升级。建议使用干净的 Debian 系统。
二、设置主机名和静态IP
首先,设置主机名为
dc1.example.lan(请根据你的实际域名调整):
sudo hostnamectl set-hostname dc1.example.lan
然后编辑
/etc/hosts文件,确保本地解析正确:
# /etc/hosts127.0.0.1 localhost192.168.1.10 dc1.example.lan dc1
三、安装 Samba 及相关工具
更新系统并安装 Samba AD DC 所需的软件包:
sudo apt updatesudo apt install -y samba krb5-user krb5-config winbind smbclient dnsutils
安装过程中会提示输入 Kerberos 默认 Realm,输入你的域名(大写),例如:
EXAMPLE.LAN。
四、初始化 Samba AD 域控制器
在初始化前,先停止并禁用默认的 Samba 服务:
sudo systemctl stop smbd nmbd winbindsudo systemctl disable smbd nmbd winbindsudo systemctl unmask samba-ad-dc
现在使用
samba-tool初始化域控制器:
sudo samba-tool domain provision \ --use-rfc2307 \ --interactive
系统会交互式地询问以下信息:
Realm:EXAMPLE.LAN(必须大写) Domain:
EXAMPLEServer Role: 选择
dcDNS backend: 推荐选择
SAMBA_INTERNALAdministrator 密码: 设置强密码(至少8位,含大小写和数字)
五、配置 Kerberos 客户端
备份原 Kerberos 配置并链接 Samba 生成的配置文件:
sudo mv /etc/krb5.conf /etc/krb5.conf.baksudo ln -sf /var/lib/samba/private/krb5.conf /etc/krb5.conf
六、启动 Samba AD DC 服务
sudo systemctl start samba-ad-dcsudo systemctl enable samba-ad-dc
七、验证配置是否成功
使用以下命令测试 Kerberos 认证:
kinit administrator@EXAMPLE.LANklist
如果看到票据信息,说明认证成功。
再测试 DNS 是否正常工作(Samba 内置 DNS):
host -t SRV _kerberos._tcp.example.lan.host -t SRV _ldap._tcp.example.lan.
应返回类似
dc1.example.lan的记录。
八、常见问题与优化建议
时间同步:AD 对时间敏感,建议配置 NTP 同步:sudo apt install chrony && sudo systemctl enable --now chrony防火墙:开放必要端口(53, 88, 135, 139, 389, 445, 464, 636, 3268, 3269) 客户端加入域:Windows 或 Linux 客户端可通过 DNS 指向此服务器后加入 EXAMPLE.LAN 域
结语
通过以上步骤,你已经成功在 Debian 上搭建了一个功能完整的 Samba AD DC。这不仅节省了 Windows Server 授权成本,还充分利用了 Linux 系统的稳定性和安全性。无论是用于实验室学习还是小型企业生产环境,Debian搭建Active Directory 都是一个高效可靠的选择。
记住定期备份
/var/lib/samba目录,这是你整个域的数据核心!
