标签: winbind

Linux + Active Directory 身份验证 + 仅允许某些组登录

我有一些使用 Windows Active Directory 身份验证的 linux 机器,效果很好(Samba + Winbind)。

我现在想做的是只允许某些人或某些组使用 Active Directory 凭据登录。目前任何拥有有效 AD 帐户的人都可以登录。我想将其限制为仅几个组。这是可行的吗?

linux active-directory ldap samba winbind

14
推荐指数
1
解决办法
5万
查看次数

Samba Winbind 用户解析

我们已经在六台 Centos 6 服务器上使用 Samba 和 Winbind (idmap_ad) 成功部署了 AD 身份验证,并且已经愉快地运行了几个月。

其中一台服务器已停止解析一个特定的用户名(# id username),此 AD 用户在所有其他服务器上解析,所有其他用户在问题服务器上解析。

我认为这可能是由损坏的 winbindd_idmap.tdb 引起的。现在,检查这个最简单的方法是停止 winbind 删除文件,重新启动 samb 并启动 winbind,然后再试一次。我的问题是目前有一个更改冻结到位,我们将不得不提出 RFC 等来测试理论。

我的问题是:是否可以在不重新启动服务的情况下清除 winbind 缓存?

或者,如果您认为这是其他事情,请随时介入!

谢谢


更新:

更改冻结现已完成。

我已经删除了 winbindd_idmap.tdb 和 winbindd_cache.tdb 并重新启动了 winbind。这并没有解决它。

此外,服务器不会解析随机的新用户(有些会,有些不会)。我很难弄清楚这一点。

任何人都可以帮忙吗?

samba winbind

8
推荐指数
2
解决办法
5万
查看次数

将 Ubuntu Server 17.04 加入 Windows AD:同样 vs Centrify vs Winbind vs SSSD

我有很多 Ubuntu Server 17.04 主机必须加入现有的 Windows AD 域(Windows Server 2016)。我以前从未这样做过,但我知道有几种方法可以实现这一点,例如:同样,Centrify、SSSD 和 Winbind。

您能否分享您的一般经验并说明这些解决方案中的每一个都多么可靠、易于配置/维护?

如果您可以分享涵盖该主题的最新文章/手册的任何链接,那也很棒,因为我只能找到几个 3 到 5 岁的文章,而且它们并没有真正按预期工作。

非常感谢您的帮助!

winbind likewise-open sssd

8
推荐指数
1
解决办法
1万
查看次数

通过 ADS 进行 Linux 身份验证——仅允许 PAM 中的特定组

我正在使用 samba/winbind/PAM 路由从我们的 Active Directory 域对我们的 linux 服务器上的用户进行身份验证。

一切正常,但我想限制允许哪些 AD 组进行身份验证。Winbind / PAM 当前允许在活动目录中使用任何已启用的用户帐户,而 pam_winbind.so 似乎并未注意该require_membership_of=MYDOMAIN\\mygroup参数。如果我在/etc/pam.d/system-auth/etc/security/pam_winbind.conf文件中设置它并不重要。

如何强制 winbind 遵守require_membership_of设置?使用带有最新软件包的 CentOS 5.5。

更新:事实证明,PAM 总是允许 root 通过身份验证,因为它是 root。所以只要账户存在,root 就会通过 auth。任何其他帐户都受到身份验证限制。

更新 2: require_membership_of似乎正在工作,除非请求用户具有 root uid。在这种情况下,无论require_membership_of设置如何,登录都会成功。这对于任何其他帐户都不是问题。require_membership_of即使当前用户是 root,我如何配置 PAM 以强制检查?

当前的 PAM 配置如下:

auth sufficient pam_winbind.so
auth sufficient pam_unix.so nullok try_first_pass
auth requisite pam_succeed_if.so uid >= 500 quiet
auth required pam_deny.so

account sufficient pam_winbind.so
account sufficient pam_localuser.so
account required pam_unix.so …
Run Code Online (Sandbox Code Playgroud)

active-directory authentication samba pam winbind

6
推荐指数
1
解决办法
1万
查看次数

加入 Active Directory 域的计算机(本机 MS Windows 或带有 winbind 的 Linux)如何确定最近的密码服务器?

加入 Active Directory 域的计算机(本机 MS Windows 或带有 winbind 的 Linux)如何确定最近的密码服务器?这个问题意味着在不同位置有 2 个以上 Active Directory 服务器的集群。

Windows上,没有明显的选项来优先选择将使用哪个 Active Directory 服务器进行身份验证等。

Linux(使用 samba/winbind)上有 smb.cfg(“密码服务器”)的设置,但它是可选的(与设置“security = ads”结合使用时)。

cluster active-directory samba winbind

6
推荐指数
1
解决办法
1207
查看次数

Linux 机器在 Windows 域中,但域登录不起作用

我们部门有一个小型网络

  • 2 Win Server 2008 域控制器
  • 1 个 debian 网络服务器
  • 多个win7客户端

我的 predecssor 尝试将网络服务器添加到我们的域中,以便使用我们域中的用户帐户登录(主要用于将文件传输到网络服务器上)。我工作了一段时间,但由于时间不明,它不再起作用。

所以我阅读了一些关于 samba 的教程并查看了配置文件但找不到问题。现在我正在寻求你的帮助。

auth.log 尝试使用“域用户”登录后:

Mar 13 17:04:33 linuxwebserver login[22754]: pam_winbind(login:auth): getting password (0x00000000)
Mar 13 17:04:35 linuxwebserver login[22754]: pam_winbind(login:auth): user '<domain-username>' granted access
Mar 13 17:04:35 linuxwebserver login[22754]: pam_unix(login:account): could not identify user (from getpwnam(<domain-username>))
Mar 13 17:04:35 linuxwebserver login[22754]: User not known to the underlying authentication module
Run Code Online (Sandbox Code Playgroud)

auth.log 尝试使用“域”\“域用户”登录后:

Mar 13 17:06:29 linuxwebserver login[22762]: pam_winbind(login:auth): getting password (0x00000000)
Mar 13 17:06:32 linuxwebserver login[22762]: pam_winbind(login:auth): …
Run Code Online (Sandbox Code Playgroud)

samba winbind

6
推荐指数
1
解决办法
6509
查看次数

Samba 4 AD 域控制器上的 winbind 信息不一致

我已经在 Debian Jessie (samba 4.2.10) 上设置了 Samba 4 AD 域控制器。一切工作正常,除了 winbind 提供错误的用户/组信息。

我有一个示例用户“testuser”和一个安全组“people”。它们的 UNIX 属性设置如下:

测试用户 UNIX 属性 人员组 UNIX 属性

然而 winbind 显示了这一点:

root@agnus:~# wbinfo -i testuser
testuser:*:10010:100:Test User:/home/HOME/testuser:/bin/false
Run Code Online (Sandbox Code Playgroud)

UID 匹配,但其他一切都是错误的。

我的 smb.conf 包含以下内容:

# Global parameters
[global]
        workgroup = HOME
        realm = HOME.LOCAL
        netbios name = AGNUS
        server role = active directory domain controller
        server services = s3fs, rpc, nbt, wrepl, ldap, cldap, kdc, drepl, winbindd, ntp_signd, kcc, dnsupdate
        idmap_ldb:use rfc2307 = yes

        idmap config *:backend = tdb
        idmap config *:range = 2000-9999

        idmap …
Run Code Online (Sandbox Code Playgroud)

linux samba domain-controller winbind

6
推荐指数
1
解决办法
2089
查看次数

OS X:在绑定到 AD 的 Samba 服务器上使用 SMB 共享时,Finder 错误 -36

我们正在考虑在 Debian (5.0.3) 上为我们的 mac 客户端部署 SMB 家庭,而不是购买四个新的 Xserve。我们已经建立了我们的测试服务器并正常运行。Windows 客户端运行良好,但我们遇到了 OS X(10.6.x 和 10.5.x)问题。由于采用这种方式时会出现一系列其他问题,我们将采用这种方式而不是 Windows 文件服务器。

具体来说,当挂载一个 SMB 共享并打开 unix 扩展并且远程服务器绑定到 AD 时,finder 无法将文件保存在共享上,而是触摸文件然后用 -36 IO 错误轰炸,创建文件夹就可以了。在终端中复制文件表现良好,问题似乎仅限于查找器。

问题出现(我认为)是因为在使用 unix 扩展时会传递远程 UID/GID。OS X 使用自己的 winbind idmap (odsam) 来计算 AD 用户和组的有效 UID/GID,同时我们在服务器上使用rid 映射。因此,发现者选择尊重的所有权不匹配。

OS X 似乎如何处理这个问题是在文件权限级别使用远程 uid 和 gid(见下文),然后设置一个 OS X acl,授予本地 uid/gid 对文件具有适当的权限。我认为 finder 会接触文件(由于 ACL 内核允许),然后检查文件系统权限并因 IO 错误而退出。

在客户端

fc-003353-d:homes2 root# ls -led test/
drwx------+ 2 135978  100513  16384 Feb  3 15:14 test/
 0: user:jfrench allow list,add_file,search,delete,add_subdirectory,delete_child,readattr,writeattr,readextattr,writeextattr,readsecurity,writesecurity,chown,file_inherit,directory_inherit
 1: group:ARTS\domain users …
Run Code Online (Sandbox Code Playgroud)

finder samba mac-osx winbind

5
推荐指数
1
解决办法
4150
查看次数

组映射不适用于 AD 组

我们有一个 ActiveDirectory,我们可以从中获取用户。因此 Linux 机器上的身份验证通过 pam 进行。

到目前为止,我们已经成功地完成了这部分工作,但我们需要所有用户都成为本地组“users”的一部分。据我所知,这对于组映射是有效的。

我的 SID 是:

SID for local machine MYSERVER is: S-1-5-21-1487948860-3705201071-3703638889  
SID for domain MYDOMAIN is: S-1-5-21-1960408961-115176313-682003330
Run Code Online (Sandbox Code Playgroud)

我使用以下命令创建了组映射:

myserver:~# net groupmap add ntgroup="Domain Users" rid=513 unixgroup=users
Run Code Online (Sandbox Code Playgroud)

组映射如下所示:

myserver:~# net groupmap list -v

Domain Users
        SID       : S-1-5-21-1487948860-3705201071-3703638889-513
        Unix gid  : 100
        Unix group: users
        Group type: Domain Group
        Comment   : Domain Unix group
Administrators
        SID       : S-1-5-32-544
        Unix gid  : 10029
        Unix group: BUILTIN\administrators
        Group type: Local Group
        Comment   :
Users
        SID …
Run Code Online (Sandbox Code Playgroud)

linux active-directory ldap samba winbind

5
推荐指数
1
解决办法
1万
查看次数

管理双 Samba / Winbind 的 UID/GID 到 AD

我有两台使用 Samba/Winbind 连接到 Active Directory Windows 2008 服务器的 Linux 服务器,这是我的 samba 配置

    workgroup = COMPANY
    realm = COMPANY.COM
    server string = SAMBA-AD Server
    security = ADS
    password server = 10.1.x.x
    log level = 2
    log file = /var/log/samba/log.%m
    max log size = 50
    unix extensions = No
    idmap uid = 10000-20000
    idmap gid = 10000-20000
    template homedir = /home/%u
    template shell = /bin/bash
    winbind separator = +
    winbind enum users = Yes
    winbind enum groups = Yes
    winbind use default …
Run Code Online (Sandbox Code Playgroud)

active-directory samba winbind

4
推荐指数
1
解决办法
1万
查看次数

将 Linux 克隆的 VM 加入活动目录

将 Linux 主机加入 Windows AD 已被广泛记录。但是,我很难找到有关如何加入已经是域成员的 Linux 克隆的任何指南或最佳实践。
由于相同的 SID,事情自然开始破裂。我不能使用“网络广告取消加入”,因为这会从域中删除原始 SID...

linux samba winbind

3
推荐指数
1
解决办法
2973
查看次数

Ubuntu + 广告;无法加入域:无法设置机器 spn:违反约束

我正在尝试将 Ubuntu 12.04 服务器加入 Active Directory。我安装了samba,并且kb5-user在 AD 中创建了一个机器帐户,并且做了:

> net ads testjoin
Join is OK
Run Code Online (Sandbox Code Playgroud)

到现在为止还挺好。然后我遇到了一个问题:

> sudo net join -U myuser
Failed to join domain: failed to set machine spn: Constraint violation
Run Code Online (Sandbox Code Playgroud)

由于我不是管理员,因此我无权修改 Active Directory 服务器上的任何内容。有没有办法解决这个错误?

ubuntu active-directory kerberos winbind

2
推荐指数
1
解决办法
3万
查看次数

Samba 4:加入了域,但所有用户都映射到没有人,并且无法从 Windows 客户端访问共享

我有一个 Debian/Jessie Samba 4.2.14 作为 AD 成员运行。ADC是Windows2008R2服务器。加入工作没有问题。

# net ads testjoin
Join is OK
Run Code Online (Sandbox Code Playgroud)

wbinfo -uwbinfo -g完美运行并按预期提供来自 AD 的用户和组列表。wbinfo -i <user>也有效:

# wbinfo -i TESTAD\\testuser
TESTAD\testuser:*:4294967295:4294967295:testuser:/home/TESTAD/testuser:/bin/false
Run Code Online (Sandbox Code Playgroud)

编辑:这里有问题,因为wbinfo -i将所有用户和组映射到 id 4294967295,正如@TheSkunk 所说,2^32 -1。

编辑2: wbinfo --sid-to-uid TESTAD\\testuser失败。当然,我必须明确设置一些idmap参数(默认值显然根本不起作用)但是如何设置?

编辑 3:我已将这两行添加到 smb.conf:

idmap config * : backend = tdb
idmap config * : range = 10000-30000
Run Code Online (Sandbox Code Playgroud)

现在 ?binfo -i TESTDOMAIN\testuser reports a valid id, and a different one for each and …

authentication linux-networking winbind samba4

1
推荐指数
1
解决办法
3万
查看次数