标签: ldap

通过 PAM 过滤 LDAP 用户,使其看起来根本不存在

很久以前,在我们的公司环境中,一些奇才决定将用户“ mysql”放入 LDAP。

该帐户被禁用:

$ sudo su - mysql
This account is currently not available.
Run Code Online (Sandbox Code Playgroud)

...但它的 id 仍然存在:

$ id mysql
uid=2050913(mysql) gid=867(ENG) groups=867(ENG)
Run Code Online (Sandbox Code Playgroud)

这使得在 CentOS7 上安装 mariadb 失败,因为它/var/run/mariadb是由 tmpfile 规则创建的,该规则试图将目录分配给 mysql。但是 mysql 在 LDAP/网络启动并运行之前不存在,并且 mariadb 安装不会创建mysql用户,因为该用户已存在于 ldap 中。

有没有办法在本地强制 PAM(或其他什么?)忽略 LDAP 中的用户 mysql?或者将 ldapmysql用户重命名为mysql_ldap?

是我手动添加条目的唯一解决方法/etc/passwd吗?(或更改 mariadb 配置以使用不同的用户名。)我宁愿对来自 rpm 的配置和 systemd 文件进行最少的更改。

(而且我对mysql从 LDAP中删除没有寄予厚望,因为这可能会破坏许多遗留基础设施。)

顺便说一句,我将使用 ansible 来实现更改。

额外的:

我已经更改了问题的标题:

我发现,如果我确实添加了本地“ mysql”用户,它就可以正常工作,除非我拥有 LDAP“ mysql” 用户的用户ID 所拥有的文件。如果我是 …

ldap pam sssd ansible centos7

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

为什么在启动世界中使用 ssh 密钥而不是 kerberos 进行身份验证很常见?

我作为 Linux 管理员的前几份工作是在一些非常资深的管理员手下工作的。在所有这些情况下,kerberos 都是为用户设置的,以请求安全令牌并在一定时间内访问公司服务器。

现在我开始在一家初创公司工作,并开始参加围绕 devops 和 sre 类型公司的聚会。我注意到这些公司中的大多数选择使用 ssh 密钥、ldap 和某种形式的配置管理来确定谁可以访问哪些服务器。大多数用户在他们的 macbook 上只有无密码的 ssh 密钥。这是非常不安全的。

是什么让 ssh 密钥设置优于 kerberos 设置?

ssh ldap user-management kerberos authentication

5
推荐指数
0
解决办法
106
查看次数

如何在 Active Directory 中自动化 RFC2307 属性?

既然SFU 和 IdMU 已被 Microsoft 视为已弃用且在 Server 2016 中不可用,您如何以可扩展且可靠的方式自动填充和管理 Active Directory 中的 RFC2307 属性?

我的目标是有uidNumbergidNumberunixHomeDirectoryloginShell创建在Active Directory用户或组时自动设置。

将用户添加到组时,还应将用户添加到该memberUid组的属性中。

我已经考虑过使用自制的 Powershell 或 VB 脚本,但是当由多个管理员在具有高可靠性要求的生产系统中处理数千个用户时使用它时,感觉不是很可扩展。

我觉得这应该是一个普遍的问题,应该有好的解决方案,但我找不到任何解决方案。

automation active-directory ldap

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

如何将 postgresql 与 LDAP 用户连接?

我有一台全新安装 postgresql-9.4 的服务器,我还有另一台安装了 LDAP 的服务器。我想将 postgresql 与已经存在的 LDAP 用户连接。

我应该在 /var/lib/pgsql/9.4/data/pg_hba.conf 中更改的基本配置是什么,我还应该做什么?

postgresql linux openldap database ldap

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

LDAP 不会阻止禁用的用户进行身份验证

我有一个有趣的情况,我们在“开发”环境中运行完全相同的应用程序,而在“测试”环境中运行另一个应用程序,当通过 LDAP 对 AD 进行身份验证时,行为不同。行为是我们希望 LDAP 在用户尝试使用禁用帐户进行身份验证时抛出身份验证异常。在开发中,这完全按预期工作,我们得到如下定义的错误(数据代码 = 533):

https://web.archive.org/web/20190811215552/http://www-01.ibm.com/support/docview.wss?uid=swg21290631

但是,当我们在测试环境中运行此代码时,它可以让禁用的用户正常登录。很明显,在每个环境中使用 LDAP/AD 配置了不同的东西,对吗?如果是这样,什么设置控制这种行为?

active-directory ldap

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

ldap 查询空白属性值?

如何查询空值的 ldap 属性?相当于str1==null在编程?

我尝试了以下但没有奏效:

(&(objectCategory=computer)(whenCreated>=20160101000000.0Z)(description=))
(&(objectCategory=computer)(whenCreated>=20160101000000.0Z)(description=''))
Run Code Online (Sandbox Code Playgroud)

ldap

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

ldap_result: 无法联系 LDAP 服务器 (-1)

G'day,我配置了在端口 636 上运行的 openldap-server 机器。我也可以从另一台 openldap-client 机器 telnet 到这个端口。为了保护连接,我使用此链接在服务器上创建了一个自签名证书,在此处输入链接描述 ,然后将证书文件复制到客户端。

我已经确保在两台机器上都禁用了 SELinux,并且客户端 /etc/openldap/ldap.conf 文件具有选项 TLS_REQCERT allow

客户端机器的详细配置为:

# cat ldap.conf
URI ldap://ad.dfsi.dev:636
BASE dc=dfsi,dc=dev
TLS_CACERTDIR /etc/openldap/cacerts
TLS_REQCERT allow
Run Code Online (Sandbox Code Playgroud)

和 nslcd 文件:

# cat /etc/nslcd.conf
tls_reqcert allow
ssl start_tls
tls_cacertdir /etc/openldap/cacerts
tls_reqcert allow
Run Code Online (Sandbox Code Playgroud)

如果我不使用 SSL,则 ldap 客户端可以访问所有 ldap 用户。但是,当我通过 authconfig-tui、ldaps://ad.xx.dev:636 更改配置以使用 TLS 时,它会失败。

日志说客户端成功连接到服务器,但随后服务器断开连接,如下所示:

ldapsearch -x -d 1
ldap_create
ldap_sasl_bind
ldap_send_initial_request
ldap_new_connection 1 1 0
ldap_int_open_connection
ldap_connect_to_host: TCP ad.dfsi.dev:636
ldap_new_socket: 3
ldap_prepare_socket: 3
ldap_connect_to_host: Trying xx.xx.xx.xx:636
ldap_pvt_connect: fd: 3 tm: …
Run Code Online (Sandbox Code Playgroud)

ssl openldap ldap ssl-certificate

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

openldap 大小限制。不能接收超过 500 个条目

当我查询我的 openldap-server 时,我无法收到超过 500 个条目。

虽然我做了以下更改:

配置文件

    # This is the main slapd configuration file. See slapd.conf(5) for more
    # info on the configuration options.

    #######################################################################
    # Global Directives:       
    .....

     # The maximum number of entries that is returned for a search operation
    sizelimit 10000
Run Code Online (Sandbox Code Playgroud)

配置文件

#
# LDAP Defaults
#

# See ldap.conf(5) for details
# This file should be world readable but not world writable.

#BASE   dc=example,dc=com
#URI    ldap://ldap.example.com ldap://ldap-master.example.com:666

SIZELIMIT       10000
#TIMELIMIT      15
#DEREF          never

# TLS …
Run Code Online (Sandbox Code Playgroud)

openldap ldap query

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

将 Windows Server 2016 提升为 Server 2008 R2 Active Directory 中的域控制器

我现在花了五个多小时来解决将新安装的Windows Server 2016 Standard-Server提升到我们的Server 2008 R2级别网络中的域控制器过程中的故障。

问题是:如果我尝试将 2016 Server 添加为域控制器并选择从 DC2(具有所有 FSMO 角色)复制,则在
我选择 DC2时会提示以下失败消息:

确定目标环境是否需要 adprep 时
出错:验证错误验证错误:无法建立到服务器 DC2.company.lan 的 LDAP 连接
异常:指定的服务器无法执行请求的操作
详细信息:Test.VerifyForestUpgradeStatus.ADPrep.Win32Exception.-2147467259

屏幕截图失败消息 DC2

如果我选择 DC1

确定目标环境是否需要 adprep 时
出错:验证错误验证错误:无法检查服务器 DC1.company.lan 的林升级状态
异常:指定的服务器无法执行请求的操作
详细信息:Test.VerifyForestUpgradeStatus.ADPrep.Win32Exception.-2147467259

屏幕截图失败消息 DC1

在我对网络的研究期间 - 我必须承认我是 Windows 网络管理的高级初学者,可能会错过一些基本知识 - 我在 serverfault 上发现了一个类似的主题: 修复错误确定目标环境是否需要 Windows Server 2012 中的 adprep,期间域控制器升级 但我已经检查过,DC2 是方案主机。

我的第二种方法是我缺少管理员权限,因为我只是一个域管理员。所以我写了我们的主要管理员,将我的帐户设置为方案管理员。他做到了。但我仍然收到这些失败信息……它们是一样的。我什至尝试重新启动,但没有任何改变。不幸的是,我们的主要管理员甚至没有进一步的想法......

你有什么想法?我是否缺少一些重要的东西,比如计划管理权限?

顺便说一下,令人困惑的是 DC2 故障消息是关于 ldap,但我们并没有故意在我们的网络中使用 LDAP……或者它是 Active Directory 的一部分?(我认为它有 Kerberos 或类似的东西用于身份验证......)

FSOM (netdom query fsom) …

active-directory ldap windows-server-2008-r2 windows-server-2016

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

Active Directory LDAP_MATCHING_RULE_IN_CHAIN 在 OU 移动后不返回任何记录

我们发现 Active Directory LDAP 查询存在一个奇怪的问题。

情况是:我们在给定的 OU 中有一个安全组。该安全组需要移动到一个完全不同的OU。

我们有一个使用 LDAP 对 AD 进行身份验证的应用程序,它使用 Active Directory LDAP_MATCHING_RULE_IN_CHAIN 进行查询,以便它支持嵌入式组:

(memberOf:1.2.840.113556.1.4.1941:=CN=SystemAdministrators,OU=SA Users,OU=System Administrators,OU=Departments,DC=ds,DC=example,DC=com)
Run Code Online (Sandbox Code Playgroud)

一个示例查询是:

ldapsearch -LLL -x -W -H 'ldap://ny-dc02.ds.example.com:389' -D '[binding account details]' -b 'OU=Departments,DC=ds,DC=example,DC=com' '(memberOf:1.2.840.113556.1.4.1941:=CN=SystemAdministrators,OU=SA Users,OU=System Administrators,OU=Departments,DC=ds,DC=example,DC=com)' dn
Run Code Online (Sandbox Code Playgroud)

它返回属于所请求 OU 的完整用户列表 - 正如预期的那样。

但是,如果我们将该组移出Departments\System Administrators和移入Security Groups\System Administration(并适当地更新查询):

(memberOf:1.2.840.113556.1.4.1941:=CN=SystemAdministrators,OU=System Administration,OU=Security Groups,DC=ds,DC=example,DC=com)
Run Code Online (Sandbox Code Playgroud)

例如:

ldapsearch -LLL -x -W -H 'ldap://ny-dc02.ds.example.com:389' -D '[binding account details]' -b 'OU=Security Groups,DC=ds,DC=example,DC=com' '(memberOf:1.2.840.113556.1.4.1941:=CN=SystemAdministrators,OU=System Administration,OU=Security Groups,DC=ds,DC=example,DC=com)' dn
Run Code Online (Sandbox Code Playgroud)

我们根本没有从 LDAP 搜索中得到任何结果。

我们的第一个想法是“哦,它可能正在缓存某些东西”。但是我们将安全组留在其新 OU 中几个小时,我们仍然看到相同的结果。 …

active-directory ldap

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