文章将讲解如何使用 Ubuntu 16.04 服务器版系统来创建第二台 Samba4 域控制器,并将其加入到已创建好的 Samba AD DC 林环境中,以便为一些关键的 AD DC 服务提供负载均衡及故障切换功能,尤其是为那些重要的服务,比如 DNS 服务和使用 SAM 数据库的 AD DC LDAP 模式。
第一步:为设置 Samba4 进行初始化配置

在开始把第二个 DC 服务器加入到 Samba4 AD DC 域环境之前,你需要注意一些初始化设置信息,首先,确保这个新系统的主机名包含描述性名称。

假设第一个域服务器的主机名叫做 adc1 ,你可以把第二个域服务器命名为 adc2,以保持域控制器名称的一致性。

执行下面的命令来修改系统主机名:

# hostnamectl set-hostname adc2

或者你也可以手动编辑 /etc/hostname 文件,在新的一行输入你想设置的主机名。

# nano /etc/hostname

这里添加主机名。

adc2

下一步,打开本地系统解析文件并添加一个条目,包含主域控制器的 IP 地址和 FQDN 名称。如下图所示:

在这篇教程中,主域控服务器的主机名为 adc1.tecmint.lan ,其对应的 IP 地址为 192.168.1.254 。

# nano /etc/hosts

添加如下行:

IP_of_main_DC FQDN_of_main_DC short_name_of_main_DC

为 Samba4 AD DC 服务器设置主机名

下一步,打开 /etc/network/interfaces 配置文件并设置一个静态 IP 地址,如下图所示:

注意 dns-nameservers 和 dns-search 这两个参数的值。为了使 DNS 解析正常工作,需要把这两个值设置成主 Samba4 AD DC 服务器的 IP 地址和域名。

重启网卡服务以让修改的配置生效。检查 /etc/resolv.conf 文件,确保该网卡上配置的这两个 DNS 的值已更新到这个文件。

# nano /etc/network/interfaces

编辑并替换你自定义的 IP 设置:

  • auto ens33
  • iface ens33 inet static
  • address 192.168.1.253
  • netmask 255.255.255.0
  • brodcast 192.168.1.1
  • gateway 192.168.1.1
  • dns-nameservers 192.168.1.254
  • dns-search tecmint.lan

重启网卡服务并确认生效。

# systemctl restart networking.service
# cat /etc/resolv.conf

配置 Samba4 AD 服务器的 DNS

当你通过简写名称(用于构建 FQDN 名)查询主机名时, dns-search 值将会自动把域名添加上。

为了测试 DNS 解析是否正常,使用一系列 ping 命令测试,命令后分别为简写名, FQDN 名和域名,如下图所示:

在所有测试用例中,Samba4 AD DC DNS 服务器都应该返回主域控服务器的 IP 地址。

验证 Samba4 AD 环境 DNS 解析是否正常

最后你需要注意的是确保这个主机跟域控服务器时间同步。你可以通过下面的命令在系统上安装 NTP 客户端工具来实现时间同步功能:

# apt-get install ntpdate

假设你想手动强制本地服务器与 samba4 AD DC 服务器时间同步,使用 ntpdate 命令加上主域控服务器的主机名,如下所示:

# ntpdate adc1

与 Samba4 AD 服务器进行时间同步

第 2 步:安装 Samba4 必须的依赖包

为了让 Ubuntu 16.04 系统加入到你的域中,你需要通过下面的命令从 Ubuntu 官方软件库中安装 Samba4 套件、 Kerberos 客户端 和其它一些重要的软件包以便将来使用:

# apt-get install samba krb5-user krb5-config winbind libpam-winbind libnss-winbind

在 Ubuntu 系统中安装 Samba4

在安装的过程中,你需要提供 Kerberos 域名。输入大写的域名然后按回车键完成安装过程。

为 Samba4 配置 Kerberos 认证

所有依赖包安装完成后,通过使用 kinit 命令为域管理员请求一个 Kerberos 票据以验证设置是否正确。使用 klist 命令来列出已授权的 kerberos 票据信息。

# kinit domain-admin-user@YOUR_DOMAIN.TLD# klist

在 Samba4 域环境中验证 Kerberos

第 3 步:以域控制器的身份加入到 Samba4 AD DC

在把你的机器集成到 Samba4 DC 环境之前,先把系统中所有运行着的 Samba4 服务停止,并且重命名默认的 Samba 配置文件以便从头开始。在域控制器配置的过程中, Samba 将会创建一个新的配置文件。

# systemctl stop samba-ad-dc smbd nmbd winbind
# mv /etc/samba/smb.conf /etc/samba/smb.conf.initial

在准备加入域前,先启动 samba-ad-dc 服务,之后使用域管理员账号运行 samba-tool 命令将服务器加入到域。

# samba-tool domain join your_domain -U "your_domain_admin"

加入域过程部分截图:

# samba-tool domain join tecmint.lan DC -U "tecmint_user"

输出示例:

  • Finding a writeable DC for domain 'tecmint.lan'
  • Found DC adc1.tecmint.lan
  • Password for [WORKGROUP/tecmint_user]:
  • workgroup is TECMINT
  • realm is tecmint.lan
  • checking sAMAccountName
  • Deleted CN=ADC2,CN=Computers,DC=tecmint,DC=lan
  • Adding CN=ADC2,OU=Domain Controllers,DC=tecmint,DC=lan
  • Adding CN=ADC2,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=tecmint,DC=lan
  • Adding CN=NTDS Settings,CN=ADC2,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=tecmint,DC=lan
  • Adding SPNs to CN=ADC2,OU=Domain Controllers,DC=tecmint,DC=lan
  • Setting account password for ADC2$
  • Enabling account
  • Calling bare provision
  • Looking up IPv4 addresses
  • Looking up IPv6 addresses
  • No IPv6 address will be assigned
  • Setting up share.ldb
  • Setting up secrets.ldb
  • Setting up the registry
  • Setting up the privileges database
  • Setting up idmap db
  • Setting up SAM db
  • Setting up sam.ldb partitions and settings
  • Setting up sam.ldb rootDSE
  • Pre-loading the Samba 4 and AD schema
  • A Kerberos configuration suitable for Samba 4 has been generated at /var/lib/samba/private/krb5.conf
  • Provision OK for domain DN DC=tecmint,DC=lan
  • Starting replication
  • Schema-DN[CN=Schema,CN=Configuration,DC=tecmint,DC=lan] objects[402/1550] linked_values[0/0]
  • Schema-DN[CN=Schema,CN=Configuration,DC=tecmint,DC=lan] objects[804/1550] linked_values[0/0]
  • Schema-DN[CN=Schema,CN=Configuration,DC=tecmint,DC=lan] objects[1206/1550] linked_values[0/0]
  • Schema-DN[CN=Schema,CN=Configuration,DC=tecmint,DC=lan] objects[1550/1550] linked_values[0/0]
  • Analyze and apply schema objects
  • Partition[CN=Configuration,DC=tecmint,DC=lan] objects[402/1614] linked_values[0/0]
  • Partition[CN=Configuration,DC=tecmint,DC=lan] objects[804/1614] linked_values[0/0]
  • Partition[CN=Configuration,DC=tecmint,DC=lan] objects[1206/1614] linked_values[0/0]
  • Partition[CN=Configuration,DC=tecmint,DC=lan] objects[1608/1614] linked_values[0/0]
  • Partition[CN=Configuration,DC=tecmint,DC=lan] objects[1614/1614] linked_values[28/0]
  • Replicating critical objects from the base DN of the domain
  • Partition[DC=tecmint,DC=lan] objects[97/97] linked_values[24/0]
  • Partition[DC=tecmint,DC=lan] objects[380/283] linked_values[27/0]
  • Done with always replicated NC (base, config, schema)
  • Replicating DC=DomainDnsZones,DC=tecmint,DC=lan
  • Partition[DC=DomainDnsZones,DC=tecmint,DC=lan] objects[45/45] linked_values[0/0]
  • Replicating DC=ForestDnsZones,DC=tecmint,DC=lan
  • Partition[DC=ForestDnsZones,DC=tecmint,DC=lan] objects[18/18] linked_values[0/0]
  • Committing SAM database
  • Sending DsReplicaUpdateRefs for all the replicated partitions
  • Setting isSynchronized and dsServiceName
  • Setting up secrets database
  • Joined domain TECMINT (SID S-1-5-21-715537322-3397311598-55032968) as a DC

把域加入到 Samba4 AD DC

在已安装了 Samba4 套件的 Ubuntu 系统加入域之后,打开 Samba 主配置文件添加如下行:

# nano /etc/samba/smb.conf

添加以下内容到 smb.conf 配置文件中。

  • dns forwarder = 192.168.1.1
  • idmap_ldb:use rfc2307 = yes
  • template shell = /bin/bash
  • winbind use default domain = true
  • winbind offline logon = false
  • winbind nss info = rfc2307
  • winbind enum users = yes
  • winbind enum groups = yes

使用你自己的 DNS 转发器 IP 地址替换掉上面 dns forwarder 地址。 Samba 将会把域权威区之外的所有 DNS 解析查询转发到这个 IP 地址。

最后,重启 samba 服务以使修改的配置生效,然后执行如下命令来检查活动目录复制功能是否正常。

# systemctl restart samba-ad-dc
# samba-tool drs showrepl

配置 Samba4 DNS

另外,还需要重命名原来的 /etc下的 kerberos 配置文件,并使用在加入域的过程中 Samba 生成的新配置文件 krb5.conf 替换它。

Samba 生成的新配置文件在 /var/lib/samba/private 目录下。使用 Linux 的符号链接将该文件链接到 /etc 目录。

 # mv /etc/krb6.conf /etc/krb5.conf.initial
# ln -s /var/lib/samba/private/krb5.conf /etc/
# cat /etc/krb5.conf<

配置 Kerberos

同样,使用 samba 的 krb5.conf 配置文件验证 Kerberos 认证是否正常。通过以下命令来请求一个管理员账号的票据并且列出已缓存的票据信息。

# kinit administrator
# klist

使用 Samba 验证 Kerberos 认证是否正常

第 4 步:验证其它域服务

你首先要做的一个测试就是验证 Samba4 DC DNS 解析服务是否正常。要验证域 DNS 解析情况,使用 host 命令,加上一些重要的 AD DNS 记录,进行域名查询,如下图所示:

每一次查询,DNS 服务器都应该返回两个 IP 地址。

# host your_domain.tld
# host -t SRV _kerberos._udp.your_domain.tld  # UDP Kerberos SRV record
# host -t SRV _ldap._tcp.your_domain.tld  # TCP LDAP SRV record

Verify Samba4 DC DNS

*验证 Samba4 DC DNS *

这些 DNS 记录也可以从注册过的已安装了 RSAT 工具的 Windows 机器上查询到。打开 DNS 管理器,展开到你的域 tcp 记录,如下图所示:

通过 Windows RSAT 工具来验证 DNS 记录

下一个验证是检查域 LDAP 复制同步是否正常。使用 samba-tool 工具,在第二个域控制器上创建一个账号,然后检查该账号是否自动同步到第一个 Samba4 AD DC 服务器上。

在 adc2 上:

# samba-tool user add test_user

在 adc1 上:

# samba-tool user list | grep test_user

在 Samba4 AD 服务器上创建账号

在 Samba4 AD 服务器上验证同步功能

你也可以从 Microsoft AD DC 控制台创建一个账号,然后验证该账号是否都出现在两个域控服务器上。

默认情况下,这个账号都应该在两个 samba 域控制器上自动创建完成。在 adc1 服务器上使用 wbinfo 命令查询该账号名。

从 Microsoft AD UC 创建账号

在 Samba4 AD 服务器上验证账号同步功能

实际上,打开 Windows 机器上的 AD DC 控制台,展开到域控制器,你应该看到两个已注册的 DC 服务器。

验证 Samba4 域控制器

第 5 步:启用 Samba4 AD DC 服务

要在整个系统启用 Samba4 AD DC 的服务,首先你得禁用原来的不需要的 Samba 服务,然后执行如下命令仅启用 samba-ad-dc 服务:

# systemctl disable smbd nmbd winbind
# systemctl enable samba-ad-dc

启用 Samba4 AD DC 服务

如果你从 Microsoft 客户端远程管理 Samba4 域控制器,或者有其它 Linux 或 Windows 客户机集成到当前域中,请确保在它们的网卡 DNS 服务器地址设置中提及 adc2 服务器的 IP 地址,以实现某种程序上的冗余。

下图显示 Windows 和 Debian/Ubuntu 客户机的网卡配置要求。

配置 Windows 客户端来管理 Samba4 DC

配置 Linux 客户端来管理 Samba4 DC

如果第一台 DC 服务器 192.168.1.254 网络不通,则调整配置文件中 DNS 服务器 IP 地址的顺序,以免先查询这台不可用的 DNS 服务器。

最后,如果你想在 Linux 系统上使用 Samba4 活动目录账号来进行本地认证,或者为 AD LDAP 账号授予 root 权限,请查看在 Linux 命令行下管理 Samba4 AD 架构 这篇教程的 第 2 步和第 3 步。

原文来自:http://os.51cto.com/art/201704/536428.htm

本文地址:https://www.linuxprobe.com/ubuntu-dc-samba4-ad-dc.html

Ubuntu DC + Samba4 AD 实现双域控主机模的更多相关文章

  1. samba服务器加入域控主机所需要修改的配置文件

    samba服务器加入域控主机,成为域成员,当用户访问samba服务器上的共享文件时,直接到域控主机上进行认证.samba服务器上不需要像先前一样创建系统用户,创建samba用户及密码. 1.安装环境( ...

  2. Windows server 2012 利用ntdsutil工具实现AD角色转移及删除域控方法

    场景1:主域控制器与辅助域控制器运行正常,相互间可以实现AD复制功能.需要把辅助域控制器提升为主域控制器 ,把主域控制器降级为普通成员服务器:这种场景一般应用到原主域控制器进行系统升级(先转移域角色, ...

  3. 【CTF】msf和impacket联合拿域控内网渗透-拿域控

    前言 掌控安全里面的靶场内网渗透,练练手! 内网渗透拿域控 环境:http://afsgr16-b1ferw.aqlab.cn/?id=1 1.进去一看,典型的sql注入 2.测试了一下,可以爆库,也 ...

  4. MS14-068(CVE-2014-6324)域控提权利用及原理解析

    漏洞利用 0x01 漏洞利用前提 1.域控没有打MS14-068的补丁(KB3011780) 2.拿下一台加入域的计算机 3.有这台域内计算机的域用户密码和Sid 0x02 工具下载 Ms14-068 ...

  5. Hyper-V 2012 R2 故障转移群集之建立域控(AD DS)与加入域

    Windows  2012 R2建立域控(AD DS)与加入域 Active Directory概述:          使用 Active Directory(R) 域服务 (AD DS) 服务器角 ...

  6. Windows 2012建立域控(AD DS)详解

    Active Directory概述:          使用 Active Directory(R) 域服务 (AD DS) 服务器角色,可以创建用于用户和资源管理的可伸缩.安全及可管理的基础机构, ...

  7. AD域控Dsquery查询命令实列

    注:请以管理员的身份运行cmd程序,要不然某些命令不生效 AD域控Dsquery查询命令实列 查询技术支持二部的所有用户          dsquery user OU=技术支持二部,OU=技术部, ...

  8. Windows Server 2012R2 实现AD双域控制器互为冗余

    前言 在部署活动目录服务的时候,首先应该考虑域控制器的安全性,主域控一旦崩掉,一般很难修复,后果非常严重,本文介绍在活动目录中部署两台域控制器,两台都是主控,互为冗余. 环境网络192.168.100 ...

  9. Windows DC域控由server08r2升级至server2016测试

    测试环境 原DC: csctest.com CSCDC01 192.168.100.1 server08r2 CSCDC02 192.168.100.2 server08r2 要求: 原两台旧主机均更 ...

  10. 001.AD域控简介及使用

    一 AD概述 1.1 AD简介 域(Domain)是Windows网络中独立运行的单位,域之间相互访问则需要建立信任关系. 当一个域与其他域建立了信任关系后,2个域之间不但可以按需要相互进行管理,还可 ...

随机推荐

  1. 中国省市区--地区SQL表

    SET FOREIGN_KEY_CHECKS=0; -- ---------------------------- -- Table structure for rc_district -- ---- ...

  2. Ubuntu20.04 Docker搭建远程xfce桌面以及ssh教程

    简介:本文主要介绍ubuntu20.04容器中搭建xfce远程桌面.C++.Go环境.容器内docker操作配置. 一.创建容器1.创建容器 docker pull ubuntu:20.04docke ...

  3. TiDB在科捷物流神州金库核心系统的应用与实践

    导读:在经过了近半年的测试验证和迁移准备之后,神州金库3.0核心系统 WMS 正式从 MySQL 迁移到了分布式 HTAP 数据库 TiDB,上线后不久即经历了第一次双11的考验,TiDB的性能和稳定 ...

  4. 深度学习入门系列之doc

    这周老师让把深度学习的名词过一遍,小玛同学准备在过一遍Deep Learning名词的同时把基本的模型也过一遍. 感谢杰哥发我深度学习入门系列能让我有机会快速入门. 下面就来doc一些学到的东西 线性 ...

  5. day07-优惠券秒杀03

    功能03-优惠券秒杀03 4.功能03-优惠券秒杀 4.6Redisson的分布式锁 Redis分布式锁-Redisson+RLock可重入锁实现篇 4.6.1基于setnx实现的分布式锁问题 我们在 ...

  6. Accurate SerDes LineRate

    测试现象:(单板A板载7A series,单板B板载7K series) 1. 单板A板载2个type C接口,通过线缆自环,GTP near-end loopback, OK. 2. 2块单板A,使 ...

  7. 顶会ICSE-2023发布LIBRO技术,利用大模型技术进行缺陷重现,自动重现率达33%

    摘要:本文围绕LIBRO技术的主要步骤进行介绍. 本文分享自华为云社区<[LLM for SE]顶会ICSE-2023发布LIBRO技术,利用大模型技术进行缺陷重现,自动重现率(33%)实现业界 ...

  8. pytorch学习笔记——timm库

    当使用ChatGPT帮我们工作的时候,确实很大一部分人就会失业,当然也有很大一部分人收益其中.我今天继续使用其帮我了解新的内容,也就是timm库.毫不夸张的说,Chat GPT比百分之80的博客讲的更 ...

  9. Django自定义视图类及实现请求参数和返回参数加解密

    django rest_framework中GenericAPIView配合拓展类mixin或者视图集viewset可以复用其代码,减少自己编写的代码量.下面我要实现自己的视图类,以减少代码量新建一个 ...

  10. 如何科学地利用MTTR优化软件交付流程?

    谷歌提出的衡量 DevOps 质量的 DORA 指标让 MTTR(平均恢复时间) 名声大振.在本文中,你将了解到 MTTR 的作用.为什么它对行业研究很有用.你可能被它误导的原因以及如何避免 MTTR ...