0x09 在Debian12.0中部署SAMBA4活动目录,实现DC域控 【base:SAMBA4+Debian12+vSphere】

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,但不影响使用。

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 contrib

deb 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+1

apt-cache policy samba-vfs-modules
aptitude install samba-vfs-modules=2:4.17.10+dfsg-0+deb12u1~bpo11+1

apt-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 winbind
    systemctl 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都结合起来,我不太喜欢这种做法,这种会造成单点故障,这很显然不是运维人员希望看到的,这些都是后话了。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Debian 11 上部署 RAID5 磁盘阵列,可以按照以下步骤进行操作: 1. 确认硬件支持 RAID5 磁盘阵列,并插入所需数量的硬盘。 2. 安装 mdadm 工具,用于创建和管理软件 RAID 磁盘阵列。 ``` sudo apt install mdadm ``` 3. 使用 fdisk 命令创建分区,可以创建一个 RAID 分区和一个备用分区: ``` sudo fdisk /dev/sdX n # 创建新分区 p # 指定分区类型为主分区 1 # 指定分区编号为1 # 按提示输入分区大小等信息 t # 修改分区类型 fd # 选择 Linux RAID 分区类型 n # 创建备用分区 p # 指定分区类型为主分区 2 # 指定分区编号为2 # 按提示输入分区大小等信息 t # 修改分区类型 fd # 选择 Linux RAID 分区类型 w # 保存分区表 ``` 4. 创建 RAID5 磁盘阵列: ``` sudo mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/sdX1 /dev/sdY1 /dev/sdZ1 ``` 其 `/dev/md0` 是 RAID 设备的名称,`--level=5` 指定 RAID 级别为 RAID5,`--raid-devices=3` 指定 RAID 设备的数量为 3,`/dev/sdX1 /dev/sdY1 /dev/sdZ1` 是要加入 RAID 磁盘阵列的分区。 5. 创建文件系统并挂载: ``` sudo mkfs.ext4 /dev/md0 sudo mkdir /mnt/raid5 sudo mount /dev/md0 /mnt/raid5 ``` 6. 将 RAID5 磁盘阵列自动挂载: ``` sudo echo "/dev/md0 /mnt/raid5 ext4 defaults 0 0" >> /etc/fstab ``` 7. 测试 RAID5 磁盘阵列是否正常工作: ``` sudo touch /mnt/raid5/test ``` 如果能够正常创建文件,则说明 RAID5 磁盘阵列已经成功部署。 需要注意的是,以上步骤仅供参考,具体操作可能会因为硬件配置、磁盘容量和分区等因素而有所不同。在进行操作时,请务必备份重要数据,并谨慎操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Leoioz

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值