Samba 系列(一):在 Ubuntu 系统上使用 Samba4 来创建活动目录架构

简介:

Samba 是一个自由的开源软件套件,用于实现 Windows 操作系统与 Linux/Unix 系统之间的无缝连接及共享资源。

Samba 不仅可以通过 SMB/CIFS 协议组件来为 Windows 与 Linux 系统之间提供独立的文件及打印机共享服务,它还能实现活动目录Active Directory域控制器Domain Controller的功能,或者让 Linux 主机加入到域环境中作为域成员服务器。当前的 Samba4 版本实现的 AD DC 域及林功能级别可以取代 Windows 2008 R2 系统的域相关功能。

本系列的文章的主要内容是使用 Samba4 软件来配置活动目录域控制器,涉及到 Ubuntu、CentOS 和 Windows 系统相关的以下主题:

  • 第 1 节:在 Ubuntu 系统上使用 Samba4 来创建活动目录架构
  • 第 2 节:在 Linux 命令行下管理 Samba4 AD 架构
  • 第 3 节:在 Windows 10 操作系统上安装 RSAT 工具来管理 Samba4 AD
  • 第 4 节:从 Windows 中管理 Samba4 AD 域控制器 DNS 和组策略
  • 第 5 节:使用 Sysvol Replication 复制功能把 Samba 4 DC 加入到已有的 AD
  • 第 6 节:从 Linux DC 服务器通过 GOP 来添加一个共享磁盘并映射到 AD
  • 第 7 节:把 Ubuntu 16.04 系统主机作为域成员服务器添加到 AD
  • 第 8 节:把 CenterOS 7 系统主机作为域成员服务器添加到 AD
  • 第 9 节:在 AD Intranet 区域创建使用 kerberos 认证的 Apache Website

这篇指南将阐明在 Ubuntu 16.04 和 Ubuntu 14.04 操作系统上安装配置 Samba4 作为域控服务器组件的过程中,你需要注意的每一个步骤。

以下安装配置文档将会说明在 Windows 和 Linux 的混合系统环境中,关于用户、机器、共享卷、权限及其它资源信息的主要配置点。

环境要求:

  1. Ubuntu 16.04 服务器安装
  2. Ubuntu 14.04 服务器安装
  3. 为你的 AD DC 服务器设置静态IP地址

第一步:初始化 Samba4 安装环境

1、 在开始安装 Samba4 AD DC 之前,让我们先做一些准备工作。首先运行以下命令来确保系统已更新了最新的安全特性,内核及其它补丁:


 
 
  1. $ sudo apt-get update
  2. $ sudo apt-get upgrade
  3. $ sudo apt-get dist-upgrade

2、 其次,打开服务器上的 /etc/fstab 文件,确保文件系统分区的 ACL 已经启用 ,如下图所示。

通常情况下,当前常见的 Linux 文件系统,比如 ext3、ext4、xfs 或 btrfs 都默认支持并已经启用了 ACL 。如果未设置,则打开并编辑 /etc/fstab 文件,在第三列添加 acl,然后重启系统以使用修改的配置生效。

启动 Linux 文件系统的 ACL 功能

启动 Linux 文件系统的 ACL 功能

3、 最后使用一个具有描述性的名称来设置主机名 ,比如这往篇文章所使用的 adc1。通过编辑/etc/hostname 文件或使用使用下图所示的命令来设置主机名。


 
 
  1. $ sudo hostnamectl set-hostname adc1

为了使修改的主机名生效必须重启服务器。

第二步: 为 Samba4 AD DC 服务器安装必需的软件包

4、 为了让你的服务器转变为域控制器,你需要在服务器上使用具有 root 权限的账号执行以下命令来安装 Samba 套件及所有必需的软件包。


 
 
  1. $ sudo apt-get install samba krb5-user krb5-config winbind libpam-winbind libnss-winbind

在 Ubuntu 系统上安装 Samba 套件

在 Ubuntu 系统上安装 Samba 套件

5、 安装包在执行的过程中将会询问你一系列的问题以便完成域控制器的配置。

在第一屏中你需要以大写为 Kerberos 默认 REALM 输入一个名字。以大写为你的域环境输入名字,然后单击回车继续。

配置 Kerosene 认证服务

配置 Kerosene 认证服务

6、 下一步,输入你的域中 Kerberos 服务器的主机名。使用和上面相同的名字,这一次使用小写,然后单击回车继续。

设置 Kerberos 服务器的主机名

设置 Kerberos 服务器的主机名

7、 最后,指定 Kerberos realm 管理服务器的主机名。使用更上面相同的名字,单击回车安装完成。

设置管理服务器的主机名

设置管理服务器的主机名

第三步:为你的域环境开启 Samba AD DC 服务

8、 在为域服务器配置 Samba 服务之前,先运行如下命令来停止并禁用所有 Samba 进程。


 
 
  1. $ sudo systemctl stop samba-ad-dc.service smbd.service nmbd.service winbind.service
  2. $ sudo systemctl disable samba-ad-dc.service smbd.service nmbd.service winbind.service

9、 下一步,重命名或删除 Samba 原始配置文件。在开启 Samba 服务之前,必须执行这一步操作,因为在开启服务的过程中 Samba 将会创建一个新的配置文件,如果检测到原有的 smb.conf 配置文件则会报错。


 
 
  1. $ sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.initial

10、 现在,使用 root 权限的账号并接受 Samba 提示的默认选项,以交互方式启动域供给domain provision

还有,输入正确的 DNS 服务器地址并且为 Administrator 账号设置强密码。如果使用的是弱密码,则域供给过程会失败。


 
 
  1. $ sudo samba-tool domain provision --use-rfc2307 interactive

Samba 域供给

Samba 域供给

11、 最后,使用以下命令重命名或删除 Kerberos 认证在 /etc 目录下的主配置文件,并且把 Samba 新生成的 Kerberos 配置文件创建一个软链接指向 /etc 目录。


 
 
  1. $ sudo mv /etc/krb6.conf /etc/krb5.conf.initial
  2. $ sudo ln s /var/lib/samba/private/krb5.conf /etc/

创建 Kerberos 配置文件

创建 Kerberos 配置文件

12、 启动并开启 Samba 活动目录域控制器后台进程


 
 
  1. $ sudo systemctl start samba-ad-dc.service
  2. $ sudo systemctl status samba-ad-dc.service
  3. $ sudo systemctl enable samba-ad-dc.service

开启 Samba 活动目录域控制器服务

开启 Samba 活动目录域控制器服务

13、 下一步,使用 netstat 命令 来验证活动目录启动的服务是否正常。


 
 
  1. $ sudo netstat tulpn| egrep smbd|samba

验证 Samba 活动目录

验证 Samba 活动目录

第四步: Samba 最后的配置

14、 此刻,Samba 应该跟你想像的一样,完全运行正常。Samba 现在实现的域功能级别可以完全跟 Windows AD DC 2008 R2 相媲美。

可以使用 samba-tool 工具来验证 Samba 服务是否正常:


 
 
  1. $ sudo samba-tool domain level show

验证 Samba 域服务级别

验证 Samba 域服务级别

15、 为了满足 DNS 本地解析的需求,你可以编辑网卡配置文件,修改 dns-nameservers 参数的值为域控制器地址(使用 127.0.0.1 作为本地 DNS 解析地址),并且设置 dns-search 参数为你的 realm 值。


 
 
  1. $ sudo cat /etc/network/interfaces
  2. $ sudo cat /etc/resolv.conf

为 Samba 配置 DNS 服务器地址

为 Samba 配置 DNS 服务器地址

设置完成后,重启服务器并检查解析文件是否指向正确的 DNS 服务器地址。

16、 最后,通过 ping 命令查询结果来检查某些重要的 AD DC 记录是否正常,使用类似下面的命令,替换对应的域名。


 
 
  1. $ ping c3 tecmint.lan # 域名
  2. $ ping c3 adc1.tecmint.lan # FQDN
  3. $ ping c3 adc1 # 主机

检查 Samba AD DNS 记录

检查 Samba AD DNS 记录

执行下面的一些查询命令来检查 Samba 活动目录域控制器是否正常。


 
 
  1. $ host t A tecmint.lan
  2. $ host t A adc1.tecmint.lan
  3. $ host t SRV _kerberos._udp.tecmint.lan # UDP Kerberos SRV record
  4. $ host -t SRV _ldap._tcp.tecmint.lan # TCP LDAP SRV record

17、 并且,通过请求一个域管理员账号的身份来列出缓存的票据信息以验证 Kerberos 认证是否正常。注意域名部分使用大写。


 
 
  1. $ kinit administrator@TECMINT.LAN
  2. $ klist

检查域环境中的 Kerberos 认证是否正确

检查域环境中的 Kerberos 认证是否正确

至此! 你当前的网络环境中已经完全运行着一个 AD 域控制器,你现在可以把 Windows 或 Linux 系统的主机集成到 Samba AD 中了。

原文发布时间为:2017-12-27

本文来自云栖社区合作伙伴“Linux中国”

相关文章
|
9月前
|
数据采集 机器学习/深度学习 运维
量化合约系统开发架构入门
量化合约系统核心在于数据、策略、风控与执行四大模块的协同,构建从数据到决策再到执行的闭环工作流。强调可追溯、可复现与可观测性,避免常见误区如重回测轻验证、忽视数据质量或滞后风控。初学者应以MVP为起点,结合回测框架与实时风控实践,逐步迭代。详见相关入门与实战资料。
|
9月前
|
前端开发 JavaScript BI
如何开发车辆管理系统中的车务管理板块(附架构图+流程图+代码参考)
本文介绍了中小企业如何通过车务管理模块提升车辆管理效率。许多企业在管理车辆时仍依赖人工流程,导致违章处理延误、年检过期、维修费用虚高等问题频发。将这些流程数字化,可显著降低合规风险、提升维修追溯性、优化调度与资产利用率。文章详细介绍了车务管理模块的功能清单、数据模型、系统架构、API与前端设计、开发技巧与落地建议,以及实现效果与验收标准。同时提供了数据库建表SQL、后端Node.js/TypeScript代码示例与前端React表单设计参考,帮助企业快速搭建并上线系统,实现合规与成本控制的双重优化。
|
9月前
|
Ubuntu 编译器 开发工具
在Ubuntu系统上搭建RISC-V交叉编译环境
以上步骤涵盖了在Ubuntu系统上搭建RISC-V交叉编译环境的主要过程。这一过程涉及了安装依赖、克隆源码、编译安装工具链以及设置环境变量等关键步骤。遵循这些步骤,可以在Ubuntu系统上搭建一个用于RISC-V开发的强大工具集。
923 22
|
9月前
|
Ubuntu 网络协议 网络安全
解决Ubuntu系统的网络连接问题
以上步骤通常可以帮助解决大多数Ubuntu系统的网络连接问题。如果问题仍然存在,可能需要更深入的诊断,或考虑联系网络管理员或专业技术人员。
2107 18
|
9月前
|
人工智能 自然语言处理 安全
AI助教系统:基于大模型与智能体架构的新一代教育技术引擎
AI助教系统融合大语言模型、教育知识图谱、多模态交互与智能体架构,实现精准学情诊断、个性化辅导与主动教学。支持图文语音输入,本地化部署保障隐私,重构“教、学、评、辅”全链路,推动因材施教落地,助力教育数字化转型。(238字)
1701 23
|
9月前
|
存储 人工智能 搜索推荐
拔俗AI助教系统:基于大模型与智能体架构的新一代教育技术引擎
AI助教融合大语言模型、教育知识图谱、多模态感知与智能体技术,重构“教、学、评、辅”全链路。通过微调LLM、精准诊断错因、多模态交互与自主任务规划,实现个性化教学。轻量化部署与隐私保护设计保障落地安全,未来将向情感感知与教育深度协同演进。(238字)
1208 0
|
9月前
|
机器学习/深度学习 人工智能 搜索推荐
拔俗AI学伴智能体系统:基于大模型与智能体架构的下一代个性化学习引擎
AI学伴智能体系统融合大模型、多模态理解与自主决策,打造具备思考能力的个性化学习伙伴。通过动态推理、长期记忆、任务规划与教学逻辑优化,实现千人千面的自适应教育,助力因材施教落地,推动教育公平与效率双提升。(238字)
1180 0
|
9月前
|
Cloud Native Serverless API
微服务架构实战指南:从单体应用到云原生的蜕变之路
🌟蒋星熠Jaxonic,代码为舟的星际旅人。深耕微服务架构,擅以DDD拆分服务、构建高可用通信与治理体系。分享从单体到云原生的实战经验,探索技术演进的无限可能。
微服务架构实战指南:从单体应用到云原生的蜕变之路
|
弹性计算 API 持续交付
后端服务架构的微服务化转型
本文旨在探讨后端服务从单体架构向微服务架构转型的过程,分析微服务架构的优势和面临的挑战。文章首先介绍单体架构的局限性,然后详细阐述微服务架构的核心概念及其在现代软件开发中的应用。通过对比两种架构,指出微服务化转型的必要性和实施策略。最后,讨论了微服务架构实施过程中可能遇到的问题及解决方案。