天天看点

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 的混合系统环境中,关于用户、机器、共享卷、权限及其它资源信息的主要配置点。

<a href="http://www.tecmint.com/installation-of-ubuntu-16-04-server-edition/" target="_blank">ubuntu 16.04 服务器安装</a>

<a href="http://www.tecmint.com/ubuntu-14-04-server-installation-guide-and-lamp-setup/" target="_blank">ubuntu 14.04 服务器安装</a>

<a target="_blank"></a>

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

<code>$ sudo apt-get update</code>

<code>$ sudo apt-get upgrade</code>

<code>$ sudo apt-get dist-upgrade</code>

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

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

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

启动 linux 文件系统的 acl 功能

<code>$ sudo hostnamectl set-hostname adc1</code>

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

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

<code>$ sudo apt-get install samba krb5-user krb5-config winbind libpam-winbind libnss-winbind</code>

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

在 ubuntu 系统上安装 samba 套件

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

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

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

配置 kerosene 认证服务

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

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

设置 kerberos 服务器的主机名

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

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

设置管理服务器的主机名

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

<code>$ sudo systemctl stop samba-ad-dc.service smbd.service nmbd.service winbind.service</code>

<code>$ sudo systemctl disable samba-ad-dc.service smbd.service nmbd.service winbind.service</code>

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

<code>$ sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.initial</code>

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

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

<code>$ sudo samba-tool domain provision --use-rfc2307 –interactive</code>

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

samba 域供给

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

<code>$ sudo mv /etc/krb6.conf /etc/krb5.conf.initial</code>

<code>$ sudo ln –s /var/lib/samba/private/krb5.conf /etc/</code>

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

创建 kerberos 配置文件

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

<code>$ sudo systemctl start samba-ad-dc.service</code>

<code>$ sudo systemctl status samba-ad-dc.service</code>

<code>$ sudo systemctl enable samba-ad-dc.service</code>

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

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

<code>$ sudo netstat –tulpn| egrep ‘smbd|samba’</code>

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

验证 samba 活动目录

14、 此刻,samba 应该跟你想像的一样,完全运行正常。samba 现在实现的域功能级别可以完全跟 windows ad dc 2008 r2 相媲美。

可以使用 <code>samba-tool</code> 工具来验证 samba 服务是否正常:

<code>$ sudo samba-tool domain level show</code>

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

验证 samba 域服务级别

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

<code>$ sudo cat /etc/network/interfaces</code>

<code>$ sudo cat /etc/resolv.conf</code>

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

为 samba 配置 dns 服务器地址

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

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

<code>$ ping –c3 tecmint.lan # 域名</code>

<code>$ ping –c3 adc1.tecmint.lan # fqdn</code>

<code>$ ping –c3 adc1 # 主机</code>

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

检查 samba ad dns 记录

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

<code>$ host –t a tecmint.lan</code>

<code>$ host –t a adc1.tecmint.lan</code>

<code>$ host –t srv _kerberos._udp.tecmint.lan # udp kerberos srv record</code>

<code>$ host -t srv _ldap._tcp.tecmint.lan # tcp ldap srv record</code>

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

<code>$ kinit [email protected]</code>

<code>$ klist</code>

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

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

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

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

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

继续阅读