如何将 Samba 3 配置为主域控制器

很多企业使用 Windows Server 上的 Active Directory 对所有员工或者用户进行集中身份验证,但现在 Linux 引入了 Samba3,可用于提供相同的功能。

但是 Samba3 缺少 Active Directory 的一些功能,所以最近 Samba 推出了 Samba4,它可以用来在 Linux 机器上配置 Active Directory 域控制器,并且可以在任何包含所有功能的 windows 机器上使用客户端软件进行控制活动目录。

本文将配置Samba3作为主要的域控制器。

注意:请备份我们将在本教程中使用的所有原始配置文件。

环境

服务器:CentOS 6
IP 地址:10.10.10.100
用户:user1,user2

客户端:Windows XP

IP 地址:10.10.10.90
机器名称:machine1

首先确保所有必需的软件包都安装在系统中,如果没有,我们可以使用“yum”安装它们

# rpm -qa | grep samba
samba-3.5.10-116.el6_2.i686
samba-common-3.5.10-116.el6_2.i686
samba-winbind-clients-3.5.10-116.el6_2.i686
samba-client-3.5.10-116.el6_2.i686

如果软件包尚未安装,则安装:

# yum -y install samba

打开配置文件,我们可以复制下面内容:

# vi /etc/samba/smb.conf
[Global]
workgroup = EXAMPLE
#corresponds to domain name
local master = yes
preferred master = yes
domain master = yes
domain logons = yes
security = user
passdb backend = tdbsam
logon path = \%LProfiles%U
logon script = logon.bat
add machine script = /usr/sbin/useradd -d /dev/null -g 200 -s /sbin/nologin -M %u
[homes]
browseable = yes
writable = yes
[netlogon]
path = /home/netlogon
writable = no
browseable = no
[Profiles]
path = /home/profiles
createmask = 0755
directory mask = 0755
writable = yes

行domain master=yes使Samba成为域主浏览器,如有必要,它处理跨多个子网的域浏览服务。虽然看起来非常相似,但local master=yes不会使Samba成为子网上的主浏览器,而只是告诉它参与浏览器选举并允许自己获胜。接下来的两行确保Samba赢得选举。设置首选主参数使Samba在启动时强制选举。
行domain logons=yes告诉Samba我们希望此服务器处理域登录。

定义登录路径是支持漫游配置文件所必需的。 UNC %Lprofiles%u 指的是保存在配置文件的 samba 服务器上的共享。 变量 %L 和 %u 分别被 samba 替换为服务器名称和登录用户的用户名。
登录脚本 = logon.bat 行指定了一个 MS-DOS 批处理文件的名称,该文件将在客户端登录到域时执行。 此处指定的路径相对于稍后在 smb.conf 文件中定义的 [netlogon] 共享。

现在我们需要使用在 smb.conf 文件中提到的适当权限创建共享

# mkdir -m 1777 /home/profiles 
# mkdir -m 1777 /home/netlogon
# groupadd -g 200 machine

由于我们在 conf 文件中使用了“添加机器脚本”,如上所示,我们不需要为客户端机器创建任何用户,因为它会在我们每次登录域连接的客户端机器时自动创建一个。
但是如果我们不使用该脚本,那么我们可以手动执行相同的操作(可选的)

# useradd -d /dev/null -s /sbin/nologin -g 200 machine1$

创建计算机帐户时,必须在 samba 服务器上发生两件事。
将一个条目添加到 smbpasswd 文件,其中“用户名”是计算机的 NetBIOS 名称,并在其后添加了 $符号。
这部分由 smbpasswd 命令处理,我们不需要对其执行任何其他操作。

# smbpasswd -m -a machine1$

现在是时候创建我们要登录域的用户了

# useradd user1
# useradd user2
# smbpasswd -a root
# smbpasswd -a user1
# smbpasswd -a user2
# service smb restart
# service nmb restart

检查防火墙设置,因为在我的情况下,我已禁用防火墙和 selinux。

客户端配置:

打开 Windows XP 机器并确保该机器与服务器联网。
以管理员或者管理员组中的其他用户身份登录计算机。
右键单击“我的电脑”图标并单击“属性”,然后转到“计算机名称”选项卡并单击“更改”。

现在将域设置从工作组更改为“示例”并点击“确定”。

它将提示输入服务器的用户名和密码,然后我们应该会收到一条消息“欢迎使用示例”域。
重新启动机器并尝试使用我们在服务器上创建的 user1 下次登录。
如果我们无法使用上述步骤连接机器,请告诉我,以便我可以进一步dig并。

注意:为了将 Windows 7 机器添加到 Samba 3,我们可能需要执行一些与注册表相关的更改

错误:

The following error occurred attempting to join the domain „.....“:

The specified domain either does not exist or could not be contacted.
尝试加入域“.....”时发生以下错误:

指定的域不存在或者无法联系。

解决方案:

修改注册表。

[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetservicesLanmanWorkstationParameters]
"DomainCompatibilityMode"=dword:00000001
"DNSNameResolutionRequired"=dword:00000000 

成功加入域后,我们可能还会收到如下错误

Changing the Primary Domain DNS name of this computer to "" failed. The name will remain ".....".

The error was:

The specified domain either does not exist or could not be contacted

将此计算机的主域 DNS 名称更改为“”失败。 名称将保持为“.....”。
错误是:
指定的域不存在或者无法联系

我们可以安全地忽略此消息或者静默错误弹出下载并安装 Microsoft 修补程序 kb-2171571 。

日期:2020-06-02 22:16:56 来源:oir作者:oir