标签: sssd

sssd 和 Active Directory 集成问题

我安装了 Debian Squeeze 和 sssd。当我尝试通过 ssh 用户“alexwinner”登录服务器时,我在日志中看到:

(Fri May 11 18:56:03 2012) [[sssd[krb5_child[26281]]]] [get_and_save_tgt] (1): 523: [-1765328360][Preauthentication failed]
Run Code Online (Sandbox Code Playgroud)

但是当我执行kinit alexwinner一切正常时,我会收到票。这是我的 sssd.conf

[sssd]
config_file_version = 2
reconnection_retries = 3
sbus_timeout = 30
services = nss, pam

domains = MYDOMAIN.COM

[nss]
filter_groups = root
filter_users = root
reconnection_retries = 3

; entry_cache_timeout = 600
; entry_cache_nowait_timeout = 300

[pam]
reconnection_retries = 3


[domain/MYDOMAIN.COM]
description = LDAP domain with AD server
enumerate = true

min_id = 1000
cache_credentials = false

id_provider …
Run Code Online (Sandbox Code Playgroud)

linux active-directory ldap kerberos sssd

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

覆盖先前声明的 Puppet 资源中的参数

我正在尝试重建 nwaller 的sssd puppet 模块,使其完全基于 LDAP 并且更简洁一些。在其中,我们为表单的每个身份验证域定义了一个资源

define sssd::domain ( 
  $domain = $name,
  $domain_description = '',
  $domain_type,
  $ldap_uri = 'ldap://example.com',
  $ldap_search_base = 'dc=example,dc=com',
  $simple_allow_groups,
....
)
Run Code Online (Sandbox Code Playgroud)

然后将此定义作为 a 传递,concat::fragment它填写用于构建最终sssd.conf.

如果我在每个节点中定义 LDAP 服务器,这一切都很好,如下所示:

节点.pp

node "node1.systems.private" {
  include "puppet::client"
  class {
    'sssd':
      domains => [ 'LDAP' ],
      make_home_dir => true;
  }
  sssd::domain { 'LDAP':
    domain_type            => 'ldap',
    ldap_uri               => 'ldaps://ldap.site.com:636',
    ldap_search_base       => 'DC=site,DC=com',
    ldap_user_search_base  => 'OU=People,DC=site,DC=com',
    ldap_group_search_base => 'OU=Groups,DC=site,DC=com',
    ldap_default_bind_dn   => 'CN=bindaccount,OU=Service Accounts,OU=People,DC=site,DC=com', …
Run Code Online (Sandbox Code Playgroud)

authentication puppet sssd

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

通过 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
查看次数

如何为 FreeIPA 服务器和客户端重置 Keytab

我按照标准文档分别在主机“SRV”和“CLT”上安装了 FreeIPA 服务器和客户端。然后我使用 Web UI 向 FreeIPA 添加了一个用户“X”。现在,当我尝试通过 SSH 作为 X 到 CLT 时,出现'Permission denied, please try again.'错误。我在客户端检查了“/var/log/messages”,看到了这个 - '[sssd[krb5_child[3277]]]: Decrypt integrity check failed'

我多次重置密码,但这并没有解决问题。然后我遇到了这些——

听起来像从 SRV 和 CLT 中删除“/etc/krb5.keytab”文件,然后重新创建它们将解决问题。

  1. 我应该如何进行此密钥表重置?
  2. 我应该先从 FreeIPA 库存中取消配置/删除 CLT 吗?

kerberos sssd freeipa

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

追求真正的 Active Directory 集成

在你嘲笑我说“如果你想要 Active Directory,使用 Windows”或告诉我使用 Google 之前,先听我说。

我的公司非常依赖 AD。不,我们在这一点上与之结婚,作为财富 10 强公司,这并没有改变。然而,我们的环境中有很多 *nix 系统(主要是 RHEL 和 SLES),而且我还没有找到一个很好的机制来与作为身份源的 Active Directory 集成。至少,我需要一些东西来提供以下内容:

  1. 通过 AD 凭据进行身份验证(让用户进门)
  2. 授权一旦通过身份验证(授予用户访问系统区域的权限)
  3. 审计(能够将用户操作与其 AD 凭据联系起来)
  4. 支持 AD 组(不仅仅是普通 LDAP 并且必须在系统上添加/删除个人用户)
  5. 不是基于 AD 信任的重复/镜像身份源(我不需要两个庞大的系统)

我发现的最佳解决方案如下:

  1. 集中
  2. PowerBroker Open(PBIS Open,以前的 Likely-Open)
  3. SSSD+SELinux

集中。. . 只是丑陋。我从来都不是真正的粉丝。另外,为了我公司的需要,我们不能使用 Centrify-Express,所以它不是免费的,也没有无限制的许可证。然而,这是我们找到的最好的解决方案,我很想找到别的东西。

PBIS Open 是我所倾向的。这是 VMware 在 vShield 后端使用的,并且运行良好。它只需要几个命令就可以设置,它支持 AD 组,并且没有辅助身份管理系统 - 它直接与 AD 对话。我不走这条路的唯一原因是我喜欢本机解决方案,如果有更好的方法来做到这一点并且已经包含在现代发行版中,我完全赞成。

SSSD+SELinux 听起来不错。设置起来很麻烦,但它是灵活的、原生的,并且受到大多数现代发行版的支持。它唯一缺乏的(据我所知)是对 AD 组的支持。许多文章建议利用 FreeIPA 或类似的东西来添加此功能,但进一步阅读后,这违反了要求 5,并且基本上创建了一个中间人身份服务。我对基本上复制 AD 或建立对辅助身份服务的信任不感兴趣。

我扔掉的其他 kludge 选项包括使用 Puppet(我们使用的)将 /etc/password、shadow、group 文件推送到端点,但这需要开发,这是非常间接的,我可以看到一些事情很糟糕。更好的选择是将 SSSD+SELinux 添加到 Puppet 的想法中。虽然它会简化灾难,但它仍然是一场灾难。

我错过了什么,你在用什么,还有什么是我没有考虑到的解决 Linux AD 集成头痛的“新热点”?

linux active-directory likewise-open sssd

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

将更改应用于 PAM 更改

是否需要重新启动服务器或特定服务才能使 pam 文件 ( /etc/pam.d/system-auth) 的更改生效?

更长的版本 - 我正在配置 SSSD 以与 LDAP 连接以进行身份​​验证。该系统基于 RHEL6,并且 SSSD 已配置为在此环境中的多个其他 RHEL6 服务器中以这种方式工作。在这些其他服务器上,每当用户访问系统时,它都会显示/var/log/secure类似于下面的成功或失败尝试的信息。

sshd[1489]: pam_sss(sshd:auth): authentication success; logname= uid=0 euid=0 tty=ssh ruser= rhost=ipaddress user=user

sshd[1664]: pam_sss(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=server user=user
Run Code Online (Sandbox Code Playgroud)

这些日志消息不会显示/var/log/secure,用户无法登录服务器。尽管如此,getent passwdandgetent group确实返回了预期的 LDAP 用户和组。证书目录的权限一切看起来都很好,/etc/pam.d/system-auth并且/etc/sssd/sssd.conf.

login ldap sssd slapd

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

防止 sssd 使用 ldap 为厨师验证或识别特定用户

我正在尝试使用 Chef 添加/修改一些本地用户帐户。无论出于何种原因,LDAP 中都有重复的帐户。由于系统使用 sssd/pam/ldap,它会将用户视为存在,但无法修改它们,因为它们不在 /etc/passwd 中。

有没有办法完全绕过 ldap 帐户,这样它们就不会被识别?然后 Chef 将正确创建它们。

ldap chef sssd

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

Linux:服务器重新启动时未清除 sssd 缓存,可能是什么原因以及如何更改?

我使用它sssd是为了在我们的 Linux 环境中使用 LDAP 用户和组。

我不得不重命名我的一个 Linux 用户的 LDAP 组,我注意到在我完成编辑组后,当我运行时: id username在 Linux 机器上它一直显示以前的名称(重命名之前)。

我试过重新启动服务器,但没有清除缓存并一直向我显示以前的组名。

我搜索了谷歌并在redhat的官方网站上找到了下一个命令:

sss_cache -E
Run Code Online (Sandbox Code Playgroud)

这解决了我的问题并清除了 sssd 缓存,并且在我下次运行时: id user显示了正确的组名。

但我的问题是:

1. How come a full server reboot didn't clear the cache?
2. How can I make sure the cache gets deleted when the server is rebooted?
Run Code Online (Sandbox Code Playgroud)

提前致谢

ldap centos6 sssd

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

Kerberos“在 kerberos 数据库中找不到服务器”,使用 SSH 和 -K 标志将 Linux 机器加入 AD

我有一种情况,我试图利用 GS​​SAPI (Kerberos) 转发连接到另一个 Linux 服务器,该服务器也加入了 Windows AD 并使用 SSSD。

Linux 计算机使用不同于服务器实际 FQDN 的计算机名称加入域。当我使用我的域凭据登录第一台机器时,PAM 成功并且我获得了一个有效的令牌。它显示为klist. 但是,即使在另一台也加入域的 Linux 主机上的 SSH 上启用 GSSAPI 和 Kerberos 登录后,我仍然收到“在 kerberos 数据库中找不到服务器”客户端错误,并且它回退到使用密码身份验证。我正在传递-K以启用 Kerberos 令牌转发。

如果我的记忆正确,这可能是由于 AD(在本例中为 Kerberos 服务器)中的 SPN 问题,Linux 机器加入的机器名称与我连接到(或来自?)的实际机器的 FQDN 不同,但是我不确定,需要一些帮助来指出我正确的方向。

linux active-directory kerberos sssd

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

带有 Active Directory 的 SSSD 站点

我是一名 Windows 管理员,负责管理我们的 AD 基础架构。我们的 Linux 团队一直在构建一些 CentOS 7 虚拟机并将它们配置为使用 SSSD 加入域。

初始配置是在不同站点(不是之前编写的域)中查询 DC,因此我要求他们研究将 AD 站点与 SSSD 一起使用。

服务器现在从 DNS 返回 3 个 _ldap DC 记录。它尝试的第一个站点来自不同的站点,因此无法访问它。第二个工作,它检索正确的站点名称。在一段时间内(不确定确切多长时间),它将使用响应的 DC,在那段时间过后,它将重新开始从 DNS 获取 3 _ldap 记录。

这会导致我们被要求解决的登录延迟。如果我们在配置中设置站点名称,那么它始终有效,但我们必须考虑将这些 VM 从备份还原到另一个站点,而此时设置的站点名称将是错误的。

我不太了解 CentOS 中的很多配置,但是有没有办法让它正常工作,或者它已经在做什么?

active-directory sssd centos7

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