AIX 7.1 上的 Samba 3.6 - Windows 10 使用 Active Directory 身份验证访问 AIX 文件共享

AIX 7.1 上的 Samba 3.6 - Windows 10 使用 Active Directory 身份验证访问 AIX 文件共享

我正在运行 AIX 7.1,目前我们在服务器上安装了 samba 3.6.25。目前,一些 AIX 文件夹是共享的,某些 Windows 用户可以访问这些文件夹。目前服务器上未安装 Kerberos。

问题是,自 Windows 10 以来,访客功能不再起作用,因此用户必须手动输入他们的 Windows 登录名/密码才能访问共享驱动器。他们会收到一个弹出框,要求他们登录。以前,用户可以连接到 AIX 文件共享,而无需输入用户名/密码。

我的要求:我需要重新配置 Samba,以便 Active Directory 上特定组中的一小组 Windows 用户可以访问 AIX 上的这些共享文件夹,而无需输入他们的登录名和密码。Samba 应该识别他们当前在 Active Directory 上登录的用户,如果他们是正确访问组的成员,则允许他们访问该文件夹。

我当前的smb.conf如下:

工作组 = 域获胜支持 = 是安全 = 用户日志文件 = /var/log/samba.log 协议 = SMB2
最小协议 = SMB2 ## 必须添加此项,以便 Windows 10 计算机可以访问共享,因为不支持 SMB1

[文件共享] 路径 = /filetoshare/here 强制用户 = root 只读 = 否 公共 = 是 访客确定 = 否

我从初步研究中了解到,我需要通过设置 security = ADS 将安全性从用户更改为 ADS。这样我就可以使用 Active Directory 对用户进行身份验证。不幸的是,在检查 nmbd 日志后,似乎此版本的 Samba 3.6 无法识别此设置...

WARNING: Ignoring invalid value 'ADS' for parameter 'security'
Ignoring unknown parameter "realm"

可能是 Samba 3.6 不支持 ADS。在这种情况下,我是否还有其他 Samba 3.6 选项可以让我使用在 Windows Server 2012 上运行的 Windows 域进行身份验证?我看到还有一个服务器设置域 - 服务器 = 域。我理解 AIX 计算机名称需要添加到我推测的计算机下的 Active Directory 服务器中?

当查看将 Samba 添加到域时,引用了命令“net ads -u 用户名”,但我收到另一个错误。

ADS support not compiled in

所以我推测这意味着我不能使用域选项,这意味着我需要更新版本的 Samba。

我查看了许多 AIX 论坛,但一直找不到适用于 AIX 7.1 的预编译版 samba 4。这是最安全的升级方式。不幸的是,这台 AIX 机器没有安装 GCC、WGET、YUM,因此很难从源代码进行编译。如果这是 Ubuntu,我只需运行 apt-get install samba,但 AIX 完全不同。还有谁能确认我是否还需要安装 Kerberos 才能使其正常工作?

我很想知道是否有人能做到这一点。任何有助于该项目的建议都将不胜感激。谢谢。

答案1

使用 AIX Toolbox 存储库下载适用于 AIX 的最新可用 SMB。

相关链接:https://www.ibm.com/developerworks/community/forums/html/topic?id=97038d17-97b7-4304-a5a5-4d5b81266c5e

如果尚未安装,请使用 yum.sh(链接中提到)在您的 AIX 上安装 yum,然后使用它从官方存储库轻松更新您的所有软件包。

答案2

几个月前我成功地解决了这个问题

1)将 RPM 升级到最新版本,因为我发现当前版本的 RPM 不允许我安装所需的 RPM 包

导航ftp://public.dhe.ibm.com/aix/freeSoftware/aixtoolbox/INSTALLP/ppc/并下载 rpm.rte

运行 smit 并使用软件安装菜单进行安装

2)下载的YUM包

从以下位置下载 YUM 包 https://public.dhe.ibm.com/aix/freeSoftware/aixtoolbox/ezinstall/ppc/yum_bundle.tar

运行 smit 并使用软件安装菜单进行安装

安装 yum 后,我按照如下步骤安装 Samba 和其他所需软件

yum 安装 samba.ppc krb5-服务器.ppc krb5-工作站 samba-winbind-krb5-locator.ppc samba-winbind-devel.ppc libsmbclient-devel.ppc openldap-devel.ppc samba-winbind.ppc samba-winbind-clients.ppc samba-libs.ppc

现在将 WINBIND 库移至正确的文件夹

mv /opt/freeware/lib/WINBIND.so /usr/lib/security cd /usr/lib/security mv WINDBIND.so WINBIND chown root:security WINBIND

凯尔伯罗斯

1) 使用我登录域时使用的当前 Windows 用户名进行 kinit。最初,我在时间同步方面遇到了一些问题(scew 时间已到)。为了解决这个问题,我配置了 ntp 守护进程,将其指向域服务器,并强制进行时间同步。此后,该命令生效,我生成了一个 kerberos 密钥。

2)net ads join -U 使用我当前登录域的 Windows 用户名。

这两个命令都有效,所以我加入了 Windows 域。

在此阶段我运行了一些测试命令:

wbinfo --ping-dc - 结果显示成功

wbinfo -g - 这将返回域控制器上所有域组的列表 wbinfo -u - 这将返回域控制器上所有 Windows 用户名的 Unix 列表

配置文件

SAMBA.CONF 代码:服务器字符串 = “IBM AIX 服务器”日志文件 = /var/log/samba.log passdb 后端 = tdbsam idmap 配置*:后端 = tdb idmap 配置*:范围 = 1000-9999 idmap 配置 UTILITY:后端 = ad idmap 配置 UTILITY:schema_mode = rfc2307 idmap 配置 UTILITY:范围 = 10000-10099

日志级别 = 3 netbios 名称 = AIXBOX 工作组 = ROBOT 用户共享 允许来宾 = 是 域主控 = 否 本地主控 = 否 密码服务器 = * 领域 = ROBOT.LOCAL 安全 = ADS 加密密码 = 是 模板 shell = /usr/bin/bash 接口 = en0 winbind 使用默认域 = 是 客户端使用 spnego = 否

[testshare] 路径 = /home/share 只读 = 否 可写 = 是 访客可行 = 是 公共 = 是 可浏览 = 是 有效用户 = @“域计算机”

[测试] 路径 = /buuk 可浏览 = 是 有效用户 = my_windows_user_name

METHODS.CONF 代码:WINBIND:程序 = /usr/lib/security/WINBIND

NIS: 程序 = /usr/lib/security/NIS 程序_64 = /usr/lib/security/NIS_64

DCE:程序 = /usr/lib/security/DCE(在我的 AIX 系统上不存在)

KRB5A:程序 = /usr/lib/security/KRB5A 选项 = authonly

KRB5files:选项 = db=BUILTIN,auth=KRB5A

KRB5配置文件

代码:[logging] 默认 = FILE:/var/log/krb5libs.log kdc = FILE:/var/log/krb5kdc.log admin_server = FILE:/var/log/kadmind.log

[libdefaults] default_realm = ROBOT.LOCAL default_keytab_name = FILE:/etc/krb5.keytab dns_lookup_realm = false dns_lookup_kdc = false ticket_lifetime = 24h renew_lifetime = 7d forwardable = true

[领域] ROBOT.LOCAL = { kdc = KDC.ROBOT.LOCAL 默认域 = ROBOT.LOCAL }

希望这可以帮助。

相关内容