HCRM博客

CentOS 7下快速搭建Samba 4域控制器教程

CentOS7部署Samba4域控简明教程

CentOS7部署Samba4域控简明教程

CentOS 7下快速搭建Samba 4域控制器教程-图1

把旧文件服务器升级成域控,不少运维第一反应是Windows Server,其实手头那台CentOS7就能搞定。Samba4已经把AD域协议整得七七八八,装完就能让Windows、Linux、macOS统统加域,省掉一套正版授权费。下面这份笔记把踩过的坑全写进去,照着敲命令,一杯咖啡工夫就能交差。

Samba4域控能干什么

简单说,它能把CentOS7变成一台“类Windows Server”的域控制器,提供用户认证、组策略、DNS、LDAP、Kerberos全套服务。PC加域后,账号密码统一走Samba,共享文件夹按组开权限,再也不用每台机器单独建用户。对中小企业、学校机房、开发测试环境尤其友好。

装系统前四步准备

1. 固定IP:DHCP一不小心换地址,域内机器全掉线。装系统时就把IPv4写死,DNS指向自己。

2. 改主机名:hostnamectl set-hostname dc.example.com,重启shell立刻生效,后面域证书全靠它。

CentOS 7下快速搭建Samba 4域控制器教程-图2

3. 关防火墙先放行端口:firewalld临时放行389、636、88、464、135、445、139、3268、3269、53、123,省得后面排错抓瞎。

4. 时间必须准:yum install chrony -y,systemctl enable --now chronyd,Kerberos对时差零容忍,超过5分钟就拒绝登录。

一条命令装依赖

yum install samba samba-common samba-client samba-dc bind-utils chrony -y,CentOS7自带仓库里的版本就能跑,别手痒去编译最新版,除非你想给调试器打工。

初始化Samba AD域

装完先别急着启动,旧配置文件统统清掉:rm -f /etc/samba/smb.conf。然后执行

CentOS 7下快速搭建Samba 4域控制器教程-图3

samba-tool domain provision --use-rfc2307 --interactive

脚本会依次问:域名、域NetBIOS、服务器角色、DNS后端、Administrator密码。域名写example.com,NetBIOS写EXAMPLE,DNS选SAMBA_INTERNAL,一路回车,十秒生成新配置。看到“SUCCESS”字样说明域已经搭好。

把Samba塞到系统服务里

systemctl disable smbd nmbd winbind && systemctl stop smbd nmbd winbind,这些老服务与samba-ad-dc冲突。接着

systemctl enable --now samba-ad-dc

netstat -tulnp | grep :53确认53端口已被samba占用,DNS算正式上岗。

本地验证域是否健康

samba-tool domain level show,如果显示Domain and forest function level: 2008_R2,说明协议级别对齐Windows Server 2008 R2,老客户端也能加域。

samba-tool user list能看到内置的Administrator、krbtgt、Guest,证明LDAP跑通。

再执行host -t SRV ldap.tcp.example.com,返回本机IP端口389,证明SRV记录没毛病。

把Windows 10加进域

Windows端把DNS改成CentOS7的IP,ping example.com能解析就行。系统属性里点“更改设置”,域名填example.com,弹出窗口输入EXAMPLE\Administrator加刚才设的密码,重启后登录界面出现“其他用户”,输入域账号,桌面弹出“欢迎到example域”,齐活。

Linux客户端 likewise加域

CentOS7桌面也省得记两套密码:yum install realmd sssd oddjob oddjob-mkhomedir adcli samba-common-tools -y

realm join -U Administrator example.com,看到“Successfully enrolled”就成功。id Administrator@example.com能返回uid/gid,说明sssd已把AD账号映射成本地属性。

开共享给不同部门

mkdir -p /srv/smb/finance /srv/smb/hr

chmod 2770 /srv/smb/finance && chgrp "Domain Admins" /srv/smb/finance

vim /etc/samba/smb.conf尾部追加

[finance]

path = /srv/smb/finance

read only = no

browseable = yes

valid users = @"EXAMPLE\Finance Team"

接着samba-tool group add "Finance Team”,再把用户塞进去:samba-tool group addmembers "Finance Team" alice;bob。systemctl reload samba-ad-dc让配置生效。Windows端用\\dc.example.com\finance访问,只认财务组,其它账号直接拒。

常见坑速查

1. 加域提示“找不到域控制器”:99%是DNS没指对,把客户端DNS改成CentOS7 IP,别用公共DNS。

2. 登录慢成狗:/etc/resolv.conf里nameserver 127.0.0.1放第一行,另外把search example.com写全,反向解析找不到会拖超时。

3. Windows11报“加密类型不支持”:samba-tool domain level raise --function-level 2012_R2,协议级别升到2012即可。

4. 重启后samba起不来:/var/log/samba/log.samba看是不是端口被bind9占了,卸掉bind9或改监听。

备份与恢复

域控一旦挂掉,所有登录都泡汤。写个cron每晚跑

samba-tool domain backup online --targetdir=/backup/$(date +%F) --configfile=/etc/samba/smb.conf

把/backup挂到远程NFS,灾难时新装系统,yum装好samba后执行

samba-tool domain backup restore --backup-file=/backup/xxxx.tar.bz2 --newdomain-name=example.com --target-dir=/var/lib/samba

原机IP一挂,原地复活,用户密码一条不丢。

卸载也很干脆

如果哪天改回工作组,客户端先退域,再systemctl disable --now samba-ad-dc,rm -rf /var/lib/samba/private /var/lib/samba/etc,把/etc/samba/smb.conf删掉,重启机器,CentOS7瞬间变回普通服务器,毫无残留。

照着上面敲完,一台免费、稳定、跨平台的域控就躺在机房。Windows终端无缝登录,Linux服务器统一账号,共享权限按组划分,运维再也不用每台机器翻用户列表。整套流程亲测几十台生产环境,从初始化到交付不超过半小时,省下的预算给自己加根内存条更香。

本站部分图片及内容来源网络,版权归原作者所有,转载目的为传递知识,不代表本站立场。若侵权或违规联系Email:zjx77377423@163.com 核实后第一时间删除。 转载请注明出处:https://blog.huochengrm.cn/pc/41991.html

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
请登录后评论...
游客游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~