在企业网络环境中,域控制器(Domain Controller)是管理用户账户、权限和资源访问的核心组件。虽然Windows Server是传统选择,但使用 Ubuntu Samba域控制器 同样可以构建功能完整的Active Directory(AD)环境,不仅节省成本,还能充分利用Linux系统的稳定性与安全性。
本教程将详细讲解如何在Ubuntu 22.04 LTS上配置Samba作为Active Directory域控制器(AD DC),即使你是Linux新手,也能一步步完成部署。

一、准备工作
在开始之前,请确保满足以下条件:
一台安装了 Ubuntu 22.04 LTS 的服务器(建议最小化安装) 静态IP地址(例如:192.168.1.10) 主机名已正确设置(如:dc1.example.local) 网络可访问互联网(用于安装软件包)二、设置主机名和静态IP
首先,设置主机名:
sudo hostnamectl set-hostname dc1.example.local
编辑
/etc/hosts文件,添加如下行:
127.0.0.1 localhost192.168.1.10 dc1.example.local dc1
然后配置静态IP(以Netplan为例):
# /etc/netplan/00-installer-config.yamlnetwork: version: 2 ethernets: eth0: dhcp4: no addresses: - 192.168.1.10/24 gateway4: 192.168.1.1 nameservers: addresses: [192.168.1.10, 8.8.8.8]
应用配置:
sudo netplan apply
三、安装Samba及相关工具
更新系统并安装所需软件包:
sudo apt updatesudo apt install -y samba krb5-user krb5-config winbind smbclient dnsutils
安装过程中会提示输入Kerberos默认Realm,输入你的域名(大写): EXAMPLE.LOCAL
四、配置Samba为Active Directory域控制器
首先备份原始Samba配置文件:
sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.bak
使用Samba内置工具创建新的AD DC配置:
sudo samba-tool domain provision --use-rfc2307 --interactive
交互式配置中填写以下信息:
Realm: EXAMPLE.LOCAL Domain: EXAMPLE Server Role: dc DNS backend: SAMBA_INTERNAL Administrator password: 设置一个强密码(至少8位)配置完成后,系统会生成新的
/etc/samba/smb.conf文件。
五、启动并启用Samba服务
禁用systemd自带的smbd/nmbd服务(因为Samba AD DC使用统一的samba服务):
sudo systemctl stop smbd nmbd winbindsudo systemctl disable smbd nmbd winbind
启动Samba AD DC服务:
sudo systemctl unmask samba-ad-dcsudo systemctl start samba-ad-dcsudo systemctl enable samba-ad-dc
六、验证配置
检查Samba服务状态:
sudo systemctl status samba-ad-dc
测试Kerberos认证:
kinit administrator@EXAMPLE.LOCALklist
如果看到票据信息,说明 Linux域控制器搭建 成功!
七、后续管理
你可以使用
samba-tool管理用户、组、OU等,例如创建新用户:
sudo samba-tool user create alice
现在,你的 Ubuntu Samba域控制器 已经可以替代Windows Server提供Active Directory服务了!客户端(Windows或Linux)只需将DNS指向该服务器(192.168.1.10),即可加入域。
总结
通过本教程,你已经成功完成了 Samba AD DC配置,构建了一个基于Ubuntu的Active Directory域环境。这不仅适用于中小企业IT基础设施,也为学习 Ubuntu Active Directory 集成提供了实践基础。
如有问题,欢迎查阅Samba官方文档或社区支持。
