AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题

问题[openldap](server)

Martin Hope
dj423
Asked: 2023-07-07 03:47:06 +0800 CST

可以解析 ldapsearch 输出吗?

  • 7

我有一个 ldapsearch 查询来提取电子邮件系统的一些数据,我试图将数据解析为可以在表/平面文件中分析的内容,并生成帐户报告。

ldapsearch 输出示例:

# scott, people, example3.org
dn: uid=scott,ou=people,dc=example3,dc=org
zimbraCOSId: 3f5exxxf-08eb-439a-8d93-cef26b03b722
zimbraMailDeliveryAddress: [email protected]
zimbraLastLogonTimestamp: 20161019154312Z
zimbraPrefMailForwardingAddress: [email protected]

# info, people, example5.org
dn: uid=info,ou=people,dc=example5,dc=org
zimbraMailDeliveryAddress: [email protected]
zimbraCOSId: e2zzy7e74-e4bf-462d-a4b1-7d7b23c31fbe
zimbraPrefMailForwardingAddress: [email protected]
zimbraLastLogonTimestamp: 20181011075800Z

用于拉取测试数据的搜索命令:

ldapsearch -H $ldap_master_url -w $zimbra_ldap_password -D $zimbra_ldap_userdn -S -LLL -x "(&(objectClass=zimbraAccount)(!(objectclass=zimbraCalendarResource)))" zimbraMailDeliveryAddress zimbraLastLogonTimestamp zimbraPrefMailForwardingAddress | awk '$1=$1' RS= ORS='\n' OFS=';'

这是我尝试过的:

| awk '$1=$1' RS= ORS='\n' OFS=';'

然后我还使用 grep 进一步修剪它,但并非所有记录都具有相同的属性或相同的顺序,因此输出很混乱。

我正在拍摄的输出:

上述属性的值采用按行分隔样式。

IE:

[email protected],20161019154312Z,[email protected] [email protected],20181011075800Z,[email protected]

将研究 sed 是否可以收集信息,因为记录之间的值顺序不同,这看起来很奇怪。我有更多的数据字段要添加,但很难解析输出。

谢谢

openldap
  • 1 个回答
  • 31 Views
Martin Hope
miken32
Asked: 2022-08-27 09:13:50 +0800 CST

OpenLDAP ACL 不合作

  • 0

我的服务器上有一个简单的 ACL,运行良好。我决定设置 SSSD 以通过 LDAP 验证用户登录,因此我需要授予对 SSSD 绑定帐户的更多访问权限。在此过程中,我以某种方式阻止了第一个 ACL 之外的所有访问;尽管breakACL {0} 末尾有语句,但不是根级别用户的每次搜索都会返回错误 32(找不到对象。)

数据库的结构大致如下:

organization: dc=r1,dc=internal
    organizationalUnit: ou=users,dc=r1,dc=internal
        inetOrgPerson: uid=mike,ou=users,dc=r1,dc=internal
    organizationalUnit: ou=groups,dc=r1,dc=internal
        groupOfUniqueNames: cn=root,ou=groups,dc=r1,dc=internal
        posixGroup: cn=mike,ou=groups,dc=r1,dc=internal
    organizationalUnit: ou=system,dc=r1,dc=internal
        inetOrgPerson: uid=sssd,ou=system,dc=r1,dc=internal

这是我的 ACL:

version: 1

dn: olcDatabase={2}mdb,cn=config
changetype: modify
replace: olcAccess
# admin users can write anything in this subtree
# also the root SASL user (eg ldapmodify -QY EXTERNAL -H ldapi:/// ...)
# nobody else has access, but continue searching for matches below
olcAccess: {0}to dn.subtree="dc=r1,dc=internal"
  by anonymous break
  by group/groupOfUniqueNames/uniqueMember="cn=root,ou=groups,dc=r1,dc=internal" write
  by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" write
  by * break
# sssd user can read all user/group attributes
# other users keep looking
olcAccess: {1}to dn.onelevel="ou=users,dc=r1,dc=internal"
  by dn.exact="uid=sssd,ou=system,dc=r1,dc=internal" read
  by * break
olcAccess: {2}to dn.onelevel="ou=groups,dc=r1,dc=internal"
  by dn.exact="uid=sssd,ou=system,dc=r1,dc=internal" read
  by * break
# you can update your own password
# anonymous users can authenticate against it
# nobody else sees it
olcAccess: {3}to dn.subtree="dc=r1,dc=internal"
  attrs=userPassword
    by self write
    by anonymous auth
    by * none
# anonymous users can read select user/group attributes
olcAccess: {4}to dn.onelevel="ou=users,dc=r1,dc=internal"
  attrs=entry,cn,uid,sn,givenName,mail,telephoneNumber,mobile,memberOf
    by anonymous read
    by * break
olcAccess: {5}to dn.onelevel="ou=groups,dc=r1,dc=internal"
  attrs=entry,cn,description,uniqueMember,memberUid
    by anonymous read
    by * break
# all users can update their own records
# and see all other users' attributes
# everyone (including anonymous) can search
olcAccess: {6}to dn.onelevel="ou=users,dc=r1,dc=internal"
  by self write
  by users read
  by * search

这是带有额外 ACL 日志记录的日志提取:

Aug 26 13:04:10 lemongrab slapd[3991]: => access_allowed: search access to "ou=users,dc=r1,dc=internal" "entry" requested
Aug 26 13:04:10 lemongrab slapd[3991]: => dn: [1] dc=r1,dc=internal
Aug 26 13:04:10 lemongrab slapd[3991]: => acl_get: [1] matched
Aug 26 13:04:10 lemongrab slapd[3991]: => acl_get: [1] attr entry
Aug 26 13:04:10 lemongrab slapd[3991]: => acl_mask: access to entry "ou=users,dc=r1,dc=internal", attr "entry" requested
Aug 26 13:04:10 lemongrab slapd[3991]: => acl_mask: to all values by "uid=sssd,ou=system,dc=r1,dc=internal", (=0)
Aug 26 13:04:10 lemongrab slapd[3991]: <= check a_dn_pat: anonymous
Aug 26 13:04:10 lemongrab slapd[3991]: <= check a_dn_pat: cn=admin,dc=r1,dc=internal
Aug 26 13:04:10 lemongrab slapd[3991]: <= check a_group_pat: cn=root,ou=groups,dc=r1,dc=internal
Aug 26 13:04:10 lemongrab slapd[3991]: => mdb_entry_get: found entry: "cn=root,ou=groups,dc=r1,dc=internal"
Aug 26 13:04:10 lemongrab slapd[3991]: <= check a_dn_pat: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
Aug 26 13:04:10 lemongrab slapd[3991]: <= check a_dn_pat: *
Aug 26 13:04:10 lemongrab slapd[3991]: <= acl_mask: [5] applying +0 (break)
Aug 26 13:04:10 lemongrab slapd[3991]: <= acl_mask: [5] mask: =0
Aug 26 13:04:10 lemongrab slapd[3991]: => dn: [2] ou=users,dc=r1,dc=internal
Aug 26 13:04:10 lemongrab slapd[3991]: => dn: [3] ou=groups,dc=r1,dc=internal
Aug 26 13:04:10 lemongrab slapd[3991]: => dn: [4] dc=r1,dc=internal
Aug 26 13:04:10 lemongrab slapd[3991]: => acl_get: [4] matched
Aug 26 13:04:10 lemongrab slapd[3991]: => dn: [5] ou=users,dc=r1,dc=internal
Aug 26 13:04:10 lemongrab slapd[3991]: => dn: [6] ou=groups,dc=r1,dc=internal
Aug 26 13:04:10 lemongrab slapd[3991]: => dn: [7] ou=users,dc=r1,dc=internal
Aug 26 13:04:10 lemongrab slapd[3991]: <= acl_get: done.
Aug 26 13:04:10 lemongrab slapd[3991]: => slap_access_allowed: no more rules
Aug 26 13:04:10 lemongrab slapd[3991]: => access_allowed: no more rules

日志条目证实了我的怀疑,即在第一条规则之后没有做任何事情。例如,为什么它会从规则 1 跳到规则 4?根据我的理解,接下来应该考虑规则 2。

我已经尝试了 ACL 中的onelevel和范围,效果相同。children如果我将 ACL 更改为olcAccess: {1}to dn.subtree="dc=r1,dc=internal"它似乎可以工作,但除了用户和组之外还有其他 OU 我不想授予访问权限。我是否误解了范围的工作原理?

openldap
  • 1 个回答
  • 45 Views
Martin Hope
Lars Hanke
Asked: 2022-02-04 17:00:33 +0800 CST

KDC 在向 OpenLDAP 进行身份验证时不支持加密类型

  • 0

我多年来一直在运行 Kerberos / LDAP 身份验证服务器。Kerberos 数据存储在 LDAP 中。现在,我有第二个站点,想将服务器镜像到新站点。这基本上有效,但有一个奇怪的副作用。每个服务器都运行一个 KDC 和一个 LDAP。KDC 使用本地 ldapi:/// 与 LDAP 对话。

如果我使用原始 KDC krb1.example.com,我可以对主 LDAP 和副本进行身份验证。如果我使用复制的 KDC krb2.example.com,我仍然可以向主 LDAP 进行身份验证,但尝试获得的副本

SASL/GSSAPI 身份验证已启动
ldap_sasl_interactive_bind_s:本地错误 (-2)
        附加信息:SASL(-1):一般故障:GSSAPI 错误:未指定的 GSS 故障。次要代码可能提供更多信息(KDC 不支持加密类型)

这很奇怪,因为krb2实际上是 LXC 容器上的克隆,krb1即配置对于复制所需的更改是相同的安全。但更令人费解的是在尝试查询任一 LDAP 服务器后查看票证缓存。带有来自的 TGTkrb1

root@krb2:/# klist -e
票证缓存:FILE:/tmp/krb5_cc_0.tkt
默认主体:[email protected]

有效的启动过期服务主体
04.02.2022 01:05:29 04.02.2022 11:05:29 krbtgt/[email protected]
        续订至 05.02.2022 01:05:26,Etype (skey, tkt): aes256-cts-hmac-sha1-96, aes256-cts-hmac-sha1-96
04.02.2022 01:05:42 04.02.2022 11:05:29 ldap/[email protected]
        续订至 05.02.2022 01:05:26,Etype (skey, tkt): aes256-cts-hmac-sha1-96, aes256-cts-hmac-sha1-96
04.02.2022 01:05:53 04.02.2022 11:05:29 ldap/[email protected]
        续订至 05.02.2022 01:05:26,Etype (skey, tkt): aes256-cts-hmac-sha1-96, aes256-cts-hmac-sha1-96

并从krb2:

root@krb2:/# klist -e
票证缓存:FILE:/tmp/krb5_cc_0.tkt
默认主体:[email protected]

有效的启动过期服务主体
04.02.2022 00:53:45 04.02.2022 10:53:45 krbtgt/[email protected]
        续订至 05.02.2022 00:53:41,Etype (skey, tkt): aes256-cts-hmac-sha1-96, aes256-cts-hmac-sha1-96
04.02.2022 00:53:47 04.02.2022 10:53:45 ldap/[email protected]
        续订至 05.02.2022 00:53:41,Etype (skey, tkt): aes256-cts-hmac-sha1-96, aes256-cts-hmac-sha1-96

ldap/krb2.example.com由于错误,它没有条目。但显然所需的加密类型没有区别。那么,它为什么抱怨呢?

目前,两个 LDAP 服务器均指krb1. 但是由于 LDAP 复制,所有键都应该是相同的,即一个键 fromkrb1应该与 from 相同krb2,不是吗?如果密钥krb1对两个 LDAP 服务器都有效,为什么来自副本服务器的密钥只对主 LDAP 有效?

supported_enctypes因为两者的境界/etc/krb5kdc/kdc.conf都是supported_enctypes = aes256-cts:normal arcfour-hmac:normal des3-hmac-sha1:normal des-cbc-crc:normal des:normal des:v4 des:norealm des:onlyrealm des:afs3。两者中都没有 enctype 指令/etc/krb5.conf。ssf两个 LDAP 中都没有使用配置。的krbPrincipalName条目krb2存在于两个 LDAP 中。

即使我从服务票证中获取 TGT krb2,然后将其切换krb5.conf到krb1,我也可以在 LDAP 上进行身份验证krb2。

OpenLDAP 的版本为 2.4.47,两台机器上的 Kerberos 1.17(当前 Debian 稳定版)。

更新:原来复制是不完整的,即krbPrincipalKey没有(可靠地)复制。我检查了slapd调试输出:

2 月 9 日 19:14:52 krb1 slapd[19560]: conn=1300 op=3 BIND authcid="sync/[email protected]" authzid="dn:uid=sync/krb2.example.com, cn=example.com,cn=gssapi,[email protected]"
2 月 9 日 19:14:52 krb1 slapd[19560]: conn=1300 op=3 BIND dn="cn=admin,dc=example,dc=com" mech=GSSAPI sasl_ssf=256 ssf=256

所以,synprov显然绑定为cn=admin,dc=example,dc=com,这是有意的。但是,如果我这样做

root@krb1:~# ldapsearch -b 'cn=KERBEROS,dc=example,dc=com' -D 'cn=admin,dc=example,dc=com' -Wx 'krbPrincipalName=ldap/krb2.example.com@示例.COM'

然后我明白了krbPrincipalKey。那么它为什么不被复制呢?

我使用 options重新slapd启动,我知道它应该同步整个数据库。但由于有些条目有密钥而有些没有,我不相信这是真的。krb2-c rid=1,csn=0

openldap kerberos
  • 1 个回答
  • 253 Views
Martin Hope
Fred
Asked: 2022-01-29 07:49:28 +0800 CST

LDAP 找到用户,但登录时“权限被拒绝”

  • 1

我正在 Red Hat 8 中设置 LDAP 客户端。

设置配置文件后,我做了一个 LDAP 用户测试,它成功返回:

# id myusername
uid=666(myusername) gid=510(active_users) groups=510(active_users)

如果我运行ldapsearch它,它会成功返回预期的结果:

# ldapsearch -x -ZZ -h ldap.example.com -b dc=example,dc=com

但是,如果我尝试ssh从另一台机器访问 Red Hat 8 机器,则会收到以下错误:

# ssh [email protected]
[email protected]'s password:
Permission denied, please try again.

我用不同的用户帐户尝试了几台不同的机器,并得到了相同的结果。

这是我的设置:

/etc/sssd/sssd.conf

[domain/default]
ldap_tls_reqcert = demand
cache_credentials = False
ldap_search_base = dc=example,dc=com
id_provider = ldap
auth_provider = ldap
chpass_provider = ldap
ldap_uri = ldaps://ldap.example.com/
ldap_id_use_start_tls = False
ldap_tls_cacert = /etc/sssd/ca-bundle.crt

[sssd]
config_file_version = 2
services = nss, pam, ssh
domains = default

[nss]
homedir_substring = /home

/etc/openldap/ldap.conf

TLS_CACERT /etc/sssd/ca-bundle.crt

#BASE dc=example,dc=com
#URI ldap://ldap.example.com/
SASL_NOCANON    on
URI ldaps://ldap.example.com/
BASE dc=example,dc=com
TLS_CACERTDIR /etc/sssd

/etc/nsswitch.conf

# Generated by authselect on Thu Jan 27 15:22:08 2022
# Do not modify this file manually.

passwd:     sss files systemd
group:      sss files systemd
netgroup:   sss files
automount:  sss files
services:   sss files

# passwd:    db files
# shadow:    db files
# group:     db files

# In order of likelihood of use to accelerate lookup.
shadow:     files sss
hosts:      files dns myhostname

aliases:    files
ethers:     files
gshadow:    files
# Allow initgroups to default to the setting for group.
# initgroups: files
networks:   files dns
protocols:  files
publickey:  files
rpc:        files

/etc/sysconfig/authconfig

USELDAP=yes
USELDAPAUTH=yes

/etc/pam.d/password-auth

# Generated by authselect on Thu Jan 27 15:22:08 2022
# Do not modify this file manually.

auth        required                                     pam_env.so
auth        required                                     pam_faildelay.so delay=2000000
auth        [default=1 ignore=ignore success=ok]         pam_usertype.so isregular
auth        [default=1 ignore=ignore success=ok]         pam_localuser.so
auth        sufficient                                   pam_unix.so nullok
auth        [default=1 ignore=ignore success=ok]         pam_usertype.so isregular
auth        sufficient                                   pam_sss.so forward_pass
auth        required                                     pam_deny.so

account     required                                     pam_unix.so
account     sufficient                                   pam_localuser.so
account     sufficient                                   pam_usertype.so issystem
account     [default=bad success=ok user_unknown=ignore] pam_sss.so
account     required                                     pam_permit.so

password    requisite                                    pam_pwquality.so local_users_only
password    sufficient                                   pam_unix.so sha512 shadow nullok use_authtok
password    sufficient                                   pam_sss.so use_authtok
password    required                                     pam_deny.so

session     optional                                     pam_keyinit.so revoke
session     required                                     pam_limits.so
-session    optional                                     pam_systemd.so
session     [success=1 default=ignore]                   pam_succeed_if.so service in crond quiet use_uid
session     required                                     pam_unix.so
session     optional                                     pam_sss.so

/etc/pam.d/system-auth

# Generated by authselect on Thu Jan 27 15:22:08 2022
# Do not modify this file manually.

auth        required                                     pam_env.so
auth        required                                     pam_faildelay.so delay=2000000
auth        [default=1 ignore=ignore success=ok]         pam_usertype.so isregular
auth        [default=1 ignore=ignore success=ok]         pam_localuser.so
auth        sufficient                                   pam_unix.so nullok
auth        [default=1 ignore=ignore success=ok]         pam_usertype.so isregular
auth        sufficient                                   pam_sss.so forward_pass
auth        required                                     pam_deny.so

account     required                                     pam_unix.so
account     sufficient                                   pam_localuser.so
account     sufficient                                   pam_usertype.so issystem
account     [default=bad success=ok user_unknown=ignore] pam_sss.so
account     required                                     pam_permit.so

password    requisite                                    pam_pwquality.so local_users_only
password    sufficient                                   pam_unix.so sha512 shadow nullok use_authtok
password    sufficient                                   pam_sss.so use_authtok
password    required                                     pam_deny.so

session     optional                                     pam_keyinit.so revoke
session     required                                     pam_limits.so
-session    optional                                     pam_systemd.so
session     [success=1 default=ignore]                   pam_succeed_if.so service in crond quiet use_uid
session     required                                     pam_unix.so
session     optional                                     pam_sss.so

/etc/ssh/sshd_config

# $OpenBSD: sshd_config,v 1.103 2018/04/09 20:41:22 tj Exp $

HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
HostKey /etc/ssh/ssh_host_ed25519_key

# Logging
#SyslogFacility AUTH
SyslogFacility AUTHPRIV
#LogLevel INFO

# Authentication:
PermitRootLogin yes
AuthorizedKeysFile .ssh/authorized_keys

# To disable tunneled clear text passwords, change to no here!
#PasswordAuthentication yes
#PermitEmptyPasswords no
PasswordAuthentication yes

# Change to no to disable s/key passwords
#ChallengeResponseAuthentication yes
ChallengeResponseAuthentication no

# GSSAPI options
GSSAPIAuthentication yes
GSSAPICleanupCredentials no
#GSSAPIStrictAcceptorCheck yes
#GSSAPIKeyExchange no
#GSSAPIEnablek5users no

UsePAM yes

X11Forwarding yes

# It is recommended to use pam_motd in /etc/pam.d/sshd instead of PrintMotd,
# as it is more configurable and versatile than the built-in version.
PrintMotd no

ClientAliveInterval 600
ClientAliveCountMax 0

# Accept locale-related environment variables
AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE
AcceptEnv XMODIFIERS

# override default of no subsystems
Subsystem sftp /usr/libexec/openssh/sftp-server

/var/log/安全

Jan 28 08:35:39 opal sshd[206875]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=xxx.xxx.xxx.xxx  user=myusername
Jan 28 08:35:40 opal sshd[206875]: Failed password for myusername from xxx.xxx.xxx.xxx port 60384 ssh2

尝试

我尝试了以下方法:

  • 在中禁用 selinux/etc/selinux/config
  • 停止 iptables.service
  • 添加PermitRootLogin yes和UsePAM yes到 Red Hat 8/etc/ssh/sshd_conf文件
  • 反复尝试authselect select sssd,然后重启sssd.service
  • 加入FORCELEGACY=yes_/etc/sysconfig/authconfig

问题

谁能帮我弄清楚为什么用户不能使用 SSH 登录到这个服务器?

redhat openldap pam sssd
  • 1 个回答
  • 353 Views
Martin Hope
user161458
Asked: 2022-01-26 08:29:02 +0800 CST

openldap 主/从复制配置从从属返回 TLS 错误

  • 0

我正在尝试在主从 ldap 服务器之间添加 TLS 安全复制。没有 TLS 的复制运行良好。

我从奴隶遇到这个错误:slapd_client_connect: URI=ldap://master.domain.com Error, ldap_start_tls failed (-11)

这是我的配置:

----- Master -----
/etc/ldap/ldap.conf
  URI            ldap://master.domain.com/
  TLS_CACERT     /etc/ssl/cacert.pem
  TLS_REQCERT    demand

/etc/ldap/slapd.d/cn=config.ldif
  olcTLSCertificateKeyFile: /etc/ssl/master-key.pem
  olcTLSCertificateFile: /etc/ssl/master-cert.pem
----- Slave -----
/etc/ldap/ldap.conf
  URI            ldap://slave.domain.com/
  TLS_CACERT     /etc/ssl/cacert.pem
  TLS_REQCERT    demand

/etc/ldap/slapd.d/cn=config.ldif
  olcTLSCertificateKeyFile: /etc/ssl/slave-key.pem
  olcTLSCertificateFile: /etc/ssl/slave-cert.pem

/etc/ldap/slapd.d/cn=config/olcDatabase{1}mdb.ldif
  olcSyncrepl: rid=001, provider=ldap://master.domain.com binddn="cn=readonly,ou=users,dc=master,dc=domain,dc=com" bindmethod=simple credentials="mypass" searchbase="dc=master,dc=domain,dc=com" type=refreshAndPersist timeout=0 network-timeout=0 retry="60 +" starttls=critical tls_reqcert=demand

这是我已经检查/尝试过的:

  • 两台服务器上的证书都归用户所有openldap
  • 两台服务器上 cacert.pem 的指纹相同
  • 证书的有效期是好的
  • cacert.pem中的cn等于主服务器的cn
  • 从站可以使用以下命令在主站上搜索:ldapsearch -ZZ -x -H master.domain.com -b "ou=groups,dc=master,dc=domain,dc=com"
  • 更改从olcTLS值以使用主证书
  • 使用ldaps://而不是ldap:// + starttls(ldapsearch -ZZ -H ldaps://正在工作)

经过网上的一些研究,它经常谈论CA证书(其中的cn,文件的所有者,......)但我已经检查了这些案例。

你知道问题出在哪里吗?

replication ssl openldap
  • 1 个回答
  • 184 Views
Martin Hope
user161458
Asked: 2022-01-19 07:04:28 +0800 CST

freeradius 和 openldap:vlan 归属与 radtest 一起使用,但不适用于 wpa_supplicant

  • 0

我的服务 freeradius 和 openldap 都在同一台服务器上。模式 Freeradius 被加载到 openldap 中。

我将radiusProfileDN用户配置为链接到组。在这个组中,我已经radiusReplyAttribute设置了vlan的信息。

  • radtest当我在本地(或从远程且已通过身份验证的客户端)使用该命令时,我收到一个包含 vlan 信息的 Access-Accept 数据包(半径协议)。Wireshark 捕获显示数据包中的 vlan 信息。
  LDAP + Radius                      LDAP + Radius ----- Switch ----- Client
    <--------                              <-----------------------------
    -------->              or              ----------------------------->
   *vlan info*                                       *vlan info*
  • 当我使用该工具wpa_supplicant(peap-gtc 协议)时,我成功进行了身份验证,但客户端端口未添加到 vlan 组。Wireshark 捕获显示交换机和 Radius 服务器之间交换的 Access-Accept 数据包中没有 vlan 信息。
LDAP + Radius ----- Switch ----- Client
  <------------------    <----------
  ------------------>    ---------->
    *no vlan info*      wpa_supplicant

从 openldap 的日志中,使用 radtest 或 wpa_supplicant 进行身份验证的步骤相同:

  1. 'mygroup' 上的 radiusReplyAttribute 允许读取访问权限
  2. 结果在缓存中(radiusReplyAttribute)
  3. send_search_entry 退出
  4. send_ldap_result & send_ldap_response

在 ldap 服务器中,我尝试将 vlan 信息直接放在用户中,或者放在已经为 vlan 信息制作的“变量”中,但我得到了相同的结果。

你知道我的问题来自哪里吗?它似乎与 wpa_supplicant 使用不同的协议有关,而不是 radtest 命令和 freeradius (也许我错过了配置中的一行)?

vlan openldap freeradius
  • 1 个回答
  • 205 Views
Martin Hope
Giorgio Mossa
Asked: 2022-01-03 09:40:03 +0800 CST

无法为 openldap 服务构建工作的 docker 映像

  • 1

我是 docker 新手,我正在做一些试验。

我试图为 openldap 服务创建一个 docker 映像。我尝试从官方 docker repos 提供的 debian:latest 图像开始创建图像。

这是我的 Dockerfile 的内容

FROM debian
RUN DEBIAN_FRONTEND="noninteractive" apt-get update
RUN DEBIAN_FRONTEND="noninteractive" apt-get install --yes --no-install-recommends slapd ldap-utils
RUN apt-get clean

我试图创建一个基于此图像的容器

docker container run --interactive --tty --name=prova image

这image是从上面的 Dockerfile 构建的映像的名称。当我尝试运行 slapd 时,service slapd start出现以下错误:

[614.896012] Out of memory: Killed process 4005 (slapd) total-vm: 795276KB, anon-rss:334664KB, file-rss:8KB, shmem-rss:0kB, UID:101, pgtables:1108kB, oom_score_adj:0 

所以这似乎是一个内核错误,由于内存中的进程爆炸,虽然我不明白是什么原因造成的,但相同的 ldap 服务在主机系统或我创建的 kvm 虚拟机中运行良好。
我还尝试在从debian:latest图像创建的实时容器中安装 openldap,我得到了同样的错误。

所以这是我的问题:谁能解释这里发生了什么以及导致错误的原因?谢谢你的帮助。

openldap docker
  • 2 个回答
  • 345 Views
Martin Hope
Iggy
Asked: 2021-12-21 02:36:23 +0800 CST

每个 LDAP 用户使用 LDAP 和 sssd (Centos7) 给出“权限被拒绝”

  • 1

我正在尝试将 LDAP 登录限制为“admin”组。

这是我的 /etc/sssd/sssd.conf 文件:

[domain/default]
autofs_provider = ldap
ldap_tls_reqcert = allow
auth_provider = ldap
ldap_id_use_start_tls = False
chpass_provider = ldap
cache_credentials = True
debug_timestamps = True
ldap_default_authtok_type = password
ldap_search_base = dc=example,dc=com
id_provider = ldap
ldap_default_bind_dn = cn=moderator,ou=moderators,ou=test,o=organization,dc=example,DC=COM
min_id = 100
ldap_uri = ldaps://example.com:636/
ldap_default_authtok = Pa$$word
ldap_tls_cacertdir = /etc/openldap/cacerts/
ldap_tls_cert = /etc/openldap/cacerts/certificate.pem
access_provider = ldap
ldap_access_filter = memberOf=cn=admin,ou=group,o=organization,dc=example,dc=com

[sssd]
services = nss, pam, autofs
domains = default
[nss]
homedir_substring = /home

[pam]

[sudo]

[autofs]

[ssh]

[pac]

[ifp]

[secrets]

[session_recording]

我已经尝试过id username,它提出了:

id user uid=90514(user) gid=20000(users) groups=20000(users),2480(admin)

当尝试通过这样做来更改用户时,输入密码后su user会出错su: Permission denied。从 sssd.conf 中删除组限制条目时,它按预期工作并允许用户登录。

有什么想法我搞砸了吗?

编辑:现在我将使用/etc/security 和 PAM进行设置,这样就可以了。但是我仍然对使用 sssd 进行操作感到好奇。

ldap openldap centos7 sssd
  • 3 个回答
  • 1229 Views
Martin Hope
user161458
Asked: 2021-12-15 01:22:10 +0800 CST

openldap / slapd 返回错误:“守护进程:listen(ldap://my.server1.org, 5) failed errno=98 (Address already in use)”

  • 0

我正在尝试在两个 openldap 服务器之间设置主复制。为此,第一步让我配置这两个文件:

  • /etc/hosts,需要包含服务器(本身和第二台服务器)的baseDN的DNS:
192.168.150.1 my.server1.org
192.168.150.2 my.server2.org
  • /etc/default/slapd,需要包含服务器自己的 FQDN 以将未来的 serverID 与 URI 匹配:
SLAPD_SERVICES="ldap:/// ldapi:/// ldap://my.server1.org"

配置 SLAPD_SERVICES 变量并重新启动 slapd 服务后,我收到以下错误:daemon: listen(ldap://my.server1.org, 5) failed errno=98 (address already un use)。注意:服务处于活动状态(未处于失败状态)

所有 LDAP 命令(例如“ldapsearch -x”)都返回相同的错误:ldap_sasl_bind(SIMPLE): Can't contact LDAP server (-1)

我尝试通过列出正在使用该地址的服务器上运行的所有进程来查找原因my.server1.org:

lsof -i |grep my.server1.org
nmdb  377 root  25u IPv4 17535    0t0 UDP my.server1.org:netbios-ns
nmdb  377 root  27u IPv4 17537    0t0 UDP my.server1.org:netbios-dgm

注意:杀死netbios的PID并没有解决问题

如您所见,没有第二个 slapd/openldap 服务已经在运行。

我自己或在互联网上找不到解决方案,所以我在这里发布我的问题。

编辑1:在@naxto asenjo 的请求之后,这里是命令的结果ss --listening --processes --numeric |egrep "389|636":

Netid  State  Recv-Q  Send-Q    Local Address:Port                            Peer Address:Port
u_str  LISTEN 0       128       /run/containerd/containerd.sock.ttrpc 14758   users:(("containerd",pid=389, fd=6)) *O
u_str  LISTEN 0       128       /run/containerd/containerd.sock.ttrpc 14758   users:(("containerd",pid=389, fd=7)) *O

编辑 2:我尝试将 SLAPD_SERVICES 和 /etc/hosts 中的值更改为我从未使用过的新 FQDN(ldap 数据库仍然是 my.server1.org)。重新启动 slapd 后,我收到相同的错误,“地址已在使用中”(对于新的 FQDN)。/etc/hosts 和 SLAPD_SERVICES 似乎遇到了冲突?如果我不编辑 /etc/hosts 文件,我会收到错误“名称解析暂时失败”。

ldap openldap slapd
  • 1 个回答
  • 395 Views
Martin Hope
László Stahorszki
Asked: 2021-12-06 03:30:08 +0800 CST

Dovecot 无法通过 ldaps 连接到 ldap 服务器

  • 0

我有一个 LDAP 服务器,它通过端口 636 上的 ldaps 接受请求。我已经将它用于我的许多应用程序,并且我希望我的 dovecot 服务器也使用它进行身份验证。

dovecot ldap 配置:

uris = ldaps://<<ldap-url>>:636
auth_bind = yes
dn = <<dn>>
dnpass = <<pw>>
ldap_version = 3
base = <<base>>
deref = never
scope = subtree
default_pass_scheme = SSHA
blocking=yes # apparently this sometimes helps, but not in this case

# user filter
#user_attrs = mailHomeDirectory=mail,mailStorageDirectory=mail,mailQuota=quota_rule=*:bytes=%$
user_attrs = 
user_filter = (&(objectClass=mailUser)(maildrop=%u))

# password filter
#pass_attrs  = maildrop=user,userPassword=password
pass_attrs = userPassword=password
pass_filter = (&(objectClass=mailUser)(maildrop=%u))

#iterate_attrs = mail=user
#iterate_filter = (objectClass=mailUser)

LDAP 服务器已启动并正在运行,我可以使用 JXplorer 配置的 pass 和 base 绑定到配置的 dn,但不能使用 dovecot。

相关日志部分:

dovecot: auth-worker(15177): Error: LDAP: Can't connect to server: ldaps://ldap.ropi.dev:636
ldap openldap dovecot
  • 1 个回答
  • 346 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve