本文主要是介绍0x09 在Debian12.0中部署SAMBA4活动目录,实现DC域控 【base:SAMBA4+Debian12+vSphere】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- 1.概要
- 2.整体架构流程
- 3.技术细节
- 3.1 准备一个终端工具。
- 3.2 vSphere中新建Debian12,开启SSH配置。
- 3.3 终端工具连接Debian12的SSH
- 3.4 Debian12安装SAMBA4的准备工作
- 3.5 Debian12完成SAMBA4的安装
- 3.6 Debian12完成Kerberos安装
- 3.7 安装完成后配置启动服务
- 3.8 安装完成后其它工作
- 4.小结
1.概要
摘抄samba.org的摘要,开源的,注明出处给大家。https://samba.org
Samba is a free Open Source software which provides a standard interoperability between Windows OS and Linux/Unix Operating Systems.
Samba 是一个免费的开源软件,它提供了Windows操作系统和Linux/Unix操作系统之间的标准互操作性。
Samba can operate as a standalone file and print server for Windows and Linux clients through the SMB/CIFS protocol suite or can act as an Active Directory Domain Controller or joined into a Realm as a Domain Member. The highest AD DC domain and forest level that currently Samba4 can emulate is Windows 2008 R2.
Samba 可以通过SMB/CIFS协议套件作为Windows和Linux客户端的独立文件和打印服务器运行,也可以充当Active Directory域控制器或作为域成员加入域。目前Samba 4可以模拟的最高AD DC域和林级别是Windows 2008 R2。
Windows 2008 R2和之后的Windows server2016这些特性没差多少。
2.整体架构流程
3.1 准备一个终端工具。
3.2 vSphere中新建Debian12,开启SSH配置。
3.3 终端工具连接Debian12的SSH
3.4 Debian12安装SAMBA4的准备工作
3.5 Debian12完成SAMBA4的安装
3.6 Debian12完成Kerberos安装
3.7 安装完成后配置启动服务
3.8 安装完成后其它工作
3.技术细节
3.1 准备一个终端工具。
mobaxterm、xshell、windterm各有千秋,都好用。windterm全免费,但是各种密码输入界面BUG,但不影响使用。
- mobaxterm网址:https://mobaxterm.mobatek.net/,下载Free版就够用了,英文界面。
- xshell网址:https://www.xshell.com/zh/xshell/,xshell自称最强,付费以后的确是的。
- windterm网址:https://github.com/kingToolbox/WindTerm,中文开源免费,各种指令补全快捷执行。
3.2 vSphere中新建Debian12,开启SSH配置。
此前我们都是通过ESXI创建或者运行主DNS的那台Debian12克隆,这次我们在vSphere上演示如何起虚拟机。Debian12的镜像之前DNS配置的时候,已经上传到ESXI中,无需二次上传。
首先正常登录进入vSphere(vCenter Server控制台)
在我们创建的集群上右键,选择新建虚拟机。
提供多种方式创建一个新的虚拟机,这里为了演示选择第一种,往后我推荐大家起一个模板,从模板创建,这样就以后不需要重复添加源这些操作。创建过程大家直接看图。
创建完虚拟机后,在虚拟机列表找到你的新虚拟机,右键——控制台——启动远程控制台,会打开提示:问你是否通过VMware workstation来管理,点击打开,你就跳转到你电脑本机安装的VMware workstation里了。什么?你电脑没有VMware workstation!装一个,别在ESXI的网页界面里折磨自己。
跳转到VMware workstation后,你发现ESXI其实是帮你在VMware workstation连接了一个远程服务器,接下来所有步骤就像正常的虚拟机哪有操作就行,安装Debian12过程中的重点地方,我会在下面截图中说明。
其实都没啥重点,我写了这么多篇,安装部分不多于赘述了,就放些关键图吧,这部分太呆了。
扫描完组件后,进入到配置主机名和域名,正常写,我们这是LDAP服务主机名就写LDAP,域也正常写就行了。
最后等待安装就行,Debian12的安装真没啥说的,动手强的兄弟批量装机,这玩意可能就三分钟内点完安装了。安装完成后,你的ssh服务是默认打开的。
3.3 终端工具连接Debian12的SSH
先在Debian12里面打开终端,su提权到root身份
su
一般开始都是DHCP获得的IP,正常情况服务器IP地址是需要固定的,无论你用网络高级选项配置还是nmtui,你固定IP就行配置完成后,正常保存退出,通过“ip a”命令检查IP地址是否正确,通过ping www.baidu.com检查是否与外网通讯正常。
ip a
ping www.baidu.com
接着修改SSH配置文件,调整为默认允许root身份登录
nano /etc/ssh/sshd_config
把PermitRootLogin前面的#号去掉,后面改为yes,然后按ctrl+x再加Y确认修改(ctrl+u撤销上一步),接着重启ssh服务
systemctl restart sshd
以windtrem为例,右键新建会话,如下配置,root是你登录的用户名,正常连接即可。
进入到ssh后,再次检查
ip a
ping www.baidu.com
开局都是0配置,你的内网是即插即用的,这一步应该没毛病,有问题ping不通就去检查你的路由器。
接着去修改Debian软件仓库源,我喜欢同时指定为国内的阿里和清华源,流程如下
nano /etc/apt/sources.list
把里面的所有内容清空,把下面的内容粘贴进去,这里就提醒终端软件的好处了,wind支持你直接你在CSDN复制,然后在终端里面右键直接粘贴
deb https://mirrors.aliyun.com/debian/ bullseye main non-free contrib
deb-src https://mirrors.aliyun.com/debian/ bullseye main non-free contrib
deb https://mirrors.aliyun.com/debian-security/ bullseye-security main
deb-src https://mirrors.aliyun.com/debian-security/ bullseye-security main
deb https://mirrors.aliyun.com/debian/ bullseye-updates main non-free contrib
deb-src https://mirrors.aliyun.com/debian/ bullseye-updates main non-free contrib
deb https://mirrors.aliyun.com/debian/ bullseye-backports main non-free contrib
deb-src https://mirrors.aliyun.com/debian/ bullseye-backports main non-free contribdeb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib non-free
deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main contrib non-free
deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-backports main contrib non-free
deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-backports main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian-security bullseye-security main contrib non-free
deb-src https://mirrors.tuna.tsinghua.edu.cn/debian-security bullseye-security main contrib non-free
编辑好如下,按ctrl+x再加Y确认修改(ctrl+u撤销上一步)
接着apt-get update更新源
apt-get update
3.4 Debian12安装SAMBA4的准备工作
根据SAMBA官网的建议,要确保你的Linux文件系统(如ext 3、ext4、xfs或btrfs)支持ACL,这不用去管,现在的Linux发行版都支持。然后规划好你的主机名(注意主机名就不要加域名后缀了)和静态IP地址,从这步开始就很重要,请通过nmtui命令,先完成这些配置。
正式安装samba前,结合官方samba wiki:
Note1,咱们的DC域控搭建完成后,是作为服务端工作,其它Linux的机器如果要通过我们域控samba DC里面创建的账号登录域,那么它只充当客户端角色,只安装libpam-winbind和libnss-winbind包就行。
Note2,是告诉我们samba DC域控,一般是顶级管理设备,它可以直接提供DNS、NTP等基础服务,如果你要让你的samba DC域控充当NTP,你还需要安装一个ntp包,然后参考我写的0x04文章配置NTP就行。
再看官方wiki的语句,要求我们安装如下内容:
apt-get install acl attr samba winbind libpam-winbind libnss-winbind krb5-config krb5-user dnsutils python3-setproctitle
如果你是新手,把官方的安装命令一个一个拆开,分解如下:
- apt-get install acl
- apt-get install attr
- apt-get install samba //在debian里其实是安装samba-ac-dc
- apt-get install winbind
- apt-get install libpam-winbind
- apt-get install libnss-winbind
- apt-get install krb5-config
- apt-get install krb5-user
- apt-get install dnsutils
- apt-get install python3-setproctitle
截止20230911,我发现在Debian12里,安装samba,做文件共享功能和做DC域控是不一样的,不是同一个包名,这一点在官方的安装语句中并没有提及,只是要求安装samba,但安装samba后,可能导致直接无法工作。真正需要安装的是samba-ac-dc包,直接说可能没概念,直接上图:
3.5 Debian12完成SAMBA4的安装
所以前情提要说完,接下来我们正式进入安装过程
首先更新你的源,注意更新update就行了。
apt-get update
接着执行apt-get install安装命令
apt-get install samba-ad-dc
你发现大量的依赖包报错,注意不要直接使用aptitude命令整体自动解决依赖包问题进行安装,最好的解决办法是吧上述的Depends包单独拎出来,先查询版本,再使用aptitude进行分解安装,分解命令如下:
aptitude install samba=2:4.17.10+dfsg-0+deb12u1~bpo11+1 //按要求指定版本安装apt-cache policy samba-dsdb-modules //先查版本,找最新版本,然后再指定版本安装
aptitude install samba-dsdb-modules=2:4.17.10+dfsg-0+deb12u1~bpo11+1apt-cache policy samba-vfs-modules
aptitude install samba-vfs-modules=2:4.17.10+dfsg-0+deb12u1~bpo11+1apt-cache policy winbind
aptitude install winbind=2:4.17.10+dfsg-0+deb12u1~bpo11+1
aptitude命令的工作逻辑是检查依赖问题,然后给出建议,输入y代表接受第一个建议,输入n代表不同意这个建议,系统会给你下一个提示,输入q代表退出,下面我从winbind往上依次执行命令,包含截图:
apt-cache policy winbind
aptitude install winbind=2:4.17.10+dfsg-0+deb12u1~bpo11+1
apt-cache policy samba-vfs-modules
aptitude install samba-vfs-modules=2:4.17.10+dfsg-0+deb12u1~bpo11+1
apt-cache policy samba-dsdb-modules //先查版本,找最新版本,然后再指定版本安装
aptitude install samba-dsdb-modules=2:4.17.10+dfsg-0+deb12u1~bpo11+1 //安装samba-vfs-modules后,这个一般都会自动安装
aptitude install samba=2:4.17.10+dfsg-0+deb12u1~bpo11+1 //按要求指定版本安装
这些依赖包单独安装完后,最好执行samba-ad-dc安装命令
apt-get install samba-ad-dc
aptitude install samba-ad-dc
//两个命令都可以,因为依赖问题已经全部解决
如何检查自己是否安装成功了呢,使用dpkg命令,可以检查如下输出:
dpkg -s samba
3.6 Debian12完成Kerberos安装
开始前说明一下Kerberos的Realm在这篇博客里为cluster.io。
Realm :Kerberos所管理的一个领域或范围,称之为一个 Realm。
再看官方wiki的语句,要求我们安装如下内容:
apt-get install acl attr samba winbind libpam-winbind libnss-winbind krb5-config krb5-user dnsutils python3-setproctitle
如果你是新手,把官方的安装命令一个一个拆开,分解如下:
- apt-get install acl
- apt-get install attr
- apt-get install samba //在debian里其实是安装samba-ac-dc
- apt-get install winbind
- apt-get install libpam-winbind
- apt-get install libnss-winbind
- apt-get install krb5-config
- apt-get install krb5-user
- apt-get install dnsutils
- apt-get install python3-setproctitle
samba官网Wiki的内容我们通过上一轮安装就差acl、attr、libpam-winbind、libnss-winbind、krb5-config、krb5-user 、dnsutils、python3-setproctitle没装了。
其中libpam-winbind、libnss-winbind是客户端需要装的,服务端咱们就不安装(并且细心的看官会发现,安装这两行会破坏samba-ac-dc的samba-common包依赖,客户端要求这个降低版本)
acl、attr、这两个,正常Linux发行版都是默认安装的。咱们直接执行一下:
krb5-config、krb5-user 、dnsutils、python3-setproctitle咱们一起执行安装
apt-get install krb5-config krb5-user dnsutils python3-setproctitle
//如果遇到依赖包问题,就使用aptitude安装
aptitude install krb5-config krb5-user dnsutils python3-setproctitle
安装Krb期间会有三配置框,都输人一样的内容,区别只是第一个框要大写输入:
这样安装完了,一般这个kerboros安装没啥报错。
3.7 安装完成后配置启动服务
安装完成后,运行前,先要把samba默认的smbd和nmbd这些功能关掉,因为他们会占用端口,影响samba做DC域控的功能
systemctl stop samba-ad-dc smbd nmbd winbindsystemctl disable samba-ad-dc smbd nmbd winbind
samba的配置生成方式wiki上介绍有两种,一种是一条命令交互方式配置,一种是改配置文件,官方建议用交互式命令,使用前要把samba默认的smb.conf文件,给改名,我们需要重新生成配置文件,然后执行samba-tool
mv /etc/samba/smb.conf /etc/samba/smb.conf.initial
samba-tool domain provision --use-rfc2307 --interactive
这里又有一些区别了,其它linux版本,在交互配置第一个就要求你输入Realm,但Debian12不需要,它会匹配出来,直接回车默认就行
Server Role角色咱们肯定是做DC域控
DNS backend选samba默认就行,如果你准备把samba这个作为DNS服务器,你就要选BIND9_DLZ,我建议使用我们之前博客自建的DNS服务器,这样域控死了,DNS还能工作,在业务上不至于一锅端,至于你以后想all in one你自己倒腾。
DNS forwarder配置上,默认Debian12会填写你的网卡的DNS地址第一个。
Password写复杂点,写简单了会报错,报错又要去删除smb.conf文件
配置完后,你会看到一堆输出,主要看后面红框部分,前面一长串都是输出来源,后面才是配置内容
接着,把Kerberos安装过程的默认配置文件重命名或者删掉,把samba自动配置产生的Kerberos配置文件给替换掉,或者简单点ln软连接过去
mv /etc/krb5.conf /etc/krb5.conf.initial
ln -s /var/lib/samba/private/krb5.conf /etc/
去/etc检查一下
ll /etc/krb5.conf
OK到这里,samba4 作为DC的基本安装和配置就结束,咱们启动一下看看
systemctl start samba-ad-dc //启动systemctl status samba-ad-dc //检查状态systemctl enable samba-ad-dc //设为开机启动
如遇到**Failed to start samba-ad-dc.service: Unit samba-ad-dc.service is masked.**问题,先执行解unmask:
systemctl unmask samba-ad-dc
mask被屏蔽这个问题是samba默认不提供systemctl等命令脚本来管理服务,会默认屏蔽mask掉,在wiki中有介绍,我不建议你按wiki去操作,因为sammb-ad-dc.service是一个设备文件,你无法编辑它,直接命令解mask就行了:解释超链接
最后,检验你的samba作为DC是否配置完成,使用下面语句:
samba-tool domain level show
你应该能看到上面的各种输出,它告诉你samba4现在能实现的最高等级是window 2008 R2级。
别高兴,samba作为DC还缺少认证访问,下面的Kerberos的各种测试都能过,才说明samba和Kerberos连接起来了。
3.8 安装完成后其它工作
samba作为DC,kerberos是他的认证服务器,为了让DC能解析到kerberos,需要把DNS为DC设备本机,并且添加搜索域:
nmtui
改完以后最保险的做法是重启一次,保证修改生效。
当然你也可以把自己的主机名和IP地址,手动添加到etc的hosts文件,方便自己能解析到自己。
nano /etc/hosts
重启,保证配置生效。
ping -c4 pdc //检查通过主机名能否访问自己
ping -c4 cluster.io //检查通过realm能否访问安装的Kerberos
ping -c4 pdc.cluster.io //检查通过域名能否访问自己
这里配置正确能解析的话,都应该共同指向你的本机地址。
接下来检查域控DC的配置:
host -t A cluster.io
host -t A pdc.cluster.io
host -t SRV _kerberos._udp.cluster.io
host -t SRV _ldap._tcp.cluster.io
你应该要看到正常解析主机host的各类资源,SRV是用来查询主机端口资源的服务类型。
最后我们检查Kerberos的配置:
kinit administrator@CLUSTER.IO //administrator是安装Kerberos时的默认账号
klist
你应该看到正常输出Kerberos的通讯内容。
4.小结
到这里,每天花点时间折腾,没想到五天的时间安装配置终于写完,中间遇到各种情况,比如一开始Debian依赖包的问题,一个一个查包解决,后面再使用aptitude;又或者samba4安装后服务被屏蔽,走弯路看官网wiki折腾文件,最后发现命令解屏蔽;还有Kerberos的配置和解析一直不对…说实话在Debian12上,第一次这样折腾域控,整合了太多学习资料,最后搭建完毕,成就感之余,都是累。
可能之前我win ad用多了,没啥感觉,现在想起来搭域控感觉真的不一样,对这个东西的理解加深了很多。
当然它支持all in one,把NTP\DNS都结合起来,我不太喜欢这种做法,这种会造成单点故障,这很显然不是运维人员希望看到的,这些都是后话了。
这篇关于0x09 在Debian12.0中部署SAMBA4活动目录,实现DC域控 【base:SAMBA4+Debian12+vSphere】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!