WEBMIN LDAP 인증: passwd가 "인증 토큰 작업 오류"를 반환합니다.

WEBMIN LDAP 인증: passwd가 "인증 토큰 작업 오류"를 반환합니다.

업데이트: 2023년 1월 25일 내 sssd와 nslcd가 제대로 작동한다고 생각하며 webmin에서 pam 모듈도 조정했습니다. nsswitch.conf에도 db를 추가하여 먼저 확인했습니다. 현재로서는 ldapsearch -x -D cn=bindadmin,ou=People,dc=xxx,dc=com -W를 사용하여 사용자로 가득 찬 데이터베이스를 성공적으로 쿼리할 수 있습니다. $USER를 성공적으로 전달하고 su -l $USER를 사용할 수도 있습니다. 새 비밀번호와 관련하여 남은 문제는 사용자가 webmin에 로그인할 수 있도록 허용하는 것입니다. 클라이언트가 작동 중이고 비밀번호 변경이 작동하므로 로그인할 수 있기를 바랐지만 변환된 webmin 로그인을 변경하려고 하면 사용자 acl이 작동하지 않습니다. /var/webmin/miniserv.error에 다음 오류가 표시됩니다. 이 오류 메시지가 표시되는 유일한 로그 오류 메시지인 것 같으며 이로 인해 webmin 사용자가 로그인할 수 없습니다. 어떤 아이디어가 있나요?

/usr/libexec/webmin/acl/save_unix.cgi 라인 80의 숫자 ne(!=)에 있는 매개변수 ""는 숫자가 아닙니다. [2023년 1월 25일:11:01:59 -0500] 구성 다시 로드

Unix 사용자 로그인을 위해 LDAP 인증을 설정하려고 하는데 토큰 오류가 발생합니다. ldap 사용자와 그룹이 작동하고 있고 모든 unix 사용자를 webmin 사용자로 전환했지만 사용자가 passwd를 사용하여 로그인하거나 비밀번호를 변경할 수 없습니다. sssd.conf를 구성하고 활성화했지만 문제가 PAM 파일과 관련이 있을 수 있다고 생각합니다. 제 경험은 제한되어 있습니다. 어떤 도움이라도 주시면 대단히 감사하겠습니다. 아래에 몇 가지 PAM 구성을 추가하겠습니다 sssd.conf. 이 문제를 해결하는 데 도움이 되는 추가 정보가 필요한 경우 알려주시기 바랍니다. 감사합니다.

또한 ldapmodify 또는 ldapsearch와 같은 기능을 사용할 수 없습니다. 잘못 구성된 ldap-client가 서버에 연결되지 않기 때문입니까? nslcd.conf 파일을 사용하여 webmin에서 ldap-client를 구성하고 확인 버튼을 사용하면 다음이 반환되지만 이전처럼 클라이언트를 실행/시작하는 옵션은 제공되지 않고 확인 구성 옵션만 제공되며 둘 다 제공됩니다. ldap-client를 함께 시작하면 올바르게 연결되지 않는 이유가 될 수 있습니까?

LDAP 검색을 시도하면 오류 메시지가 나타납니다.

SASL/GSS-SPNEGO authentication started
ldap_sasl_interactive_bind_s: Local error (-2)
additional info: SASL(-1): generic failure: GSSAPI Error: Unspecified GSS failure. Minor code may provide more information (SPNEGO cannot find mechanisms to negotiate)

Finding LDAP base for users ..
.. found base dc=xxxx,dc=com.
Connecting to LDAP server ..
.. connected to ldap-primary.ue1.-prod.com

Searching for users ..
.. found 507 users.

Checking Unix users service ..
.. service is setup to query LDAP.

Looking for Unix user bjones ..
.. user found successfully.

Your system has been successfully configured as an LDAP client!

예상하다:

  • LDAP 사용자 및 그룹 기능이 실행 중입니다. [전체]
  • 변환된 unix webmin 사용자 로그인 기능이 제대로 작동합니다. [작동하지 않음]

다음 명령은 유효합니다

$ id tuser
uid=6469(tuser) gid=6250(gwtest) groups=6250(gwtest),9003(git),9001(softeng)

$ getent passwd tuser
tuser:*:6469:6250:test user:/home/tuser:/bin/bash

시도하면 메시지가 기록됩니다 passwd tuser.

passwd: pam_unix(passwd:chauthtok): user "tuser" does not exist in /etc/passwd
passwd: pam_sss(passwd:chauthtok): Authentication failed for user tuser: 4 (System error)

변환된 webmin 사용자가 로그인을 시도할 때 기록되는 메시지:

pam_unix(webmin:auth): authentication failure; logname= uid=0 euid=0 tty=10000 ruser= rhost=xxx user=xxx
webmin[8072]: Invalid login as xxxx from xxxx

비밀번호 확인:

#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth required pam_env.so
auth required pam_faildelay.so delay=2000000
auth [default=1 ignore=ignore success=ok] pam_succeed_if.so uid >= 1000 quiet
auth [default=1 ignore=ignore success=ok] pam_localuser.so
auth sufficient pam_unix.so nullok try_first_pass
auth requisite pam_succeed_if.so uid >= 1000 quiet_success
auth sufficient pam_sss.so forward_pass
auth required pam_deny.so

account required pam_unix.so broken_shadow
account sufficient pam_localuser.so
account sufficient pam_succeed_if.so uid < 1000 quiet
account [default=bad success=ok user_unknown=ignore] pam_sss.so
account required pam_permit.so

password requisite pam_pwquality.so try_first_pass local_users_only retry=3
password sufficient pam_unix.so sha512 shadow nullok try_first_pass
password sufficient pam_sss.so


password required pam_deny.so

session optional pam_keyinit.so revoke
session required pam_limits.so
-session optional pam_systemd.so
session optional pam_mkhomedir.so umask=0077
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

passwd
#%PAM-1.0
auth include system-auth
account include system-auth
password substack system-auth
-password optional pam_gnome_keyring.so
password substack postlogin

webmin
#%PAM-1.0
auth sufficient pam_ldap.so
auth required pam_unix.so nullok
account sufficient pam_ldap.so
account required pam_unix.so
session sufficient pam_ldap.so
session required pam_unix.so

system-auth
#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth required pam_env.so
auth required pam_faildelay.so delay=2000000
auth [default=1 ignore=ignore success=ok] pam_succeed_if.so uid >= 1000 quiet
auth [default=1 ignore=ignore success=ok] pam_localuser.so
auth sufficient pam_unix.so nullok try_first_pass
auth requisite pam_succeed_if.so uid >= 1000 quiet_success
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_succeed_if.so uid < 1000 quiet
account [default=bad success=ok user_unknown=ignore] pam_sss.so
account required pam_permit.so

password requisite pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type=
password sufficient pam_unix.so sha512 shadow nullok try_first_pass 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 optional pam_mkhomedir.so umask=0077
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

SSD 구성 파일

[sssd]
config_file_version = 2
services = nss, pam, ssh
reconnection_retries = 3
domains = xxxx

[nss]
filter_groups = root
filter_users = root,named,nscd

[

[domain/xxx]
access_provider = ldap
auth_provider = ldap
cache_credentials = true
chpass_provider = none
debug_level = 3
entry_cache_timeout = 300
enum_cache_timeout = 300
enumerate = true
id_provider = ldap
ldap_access_order = expire
ldap_account_expire_policy = shadow
ldap_default_authtok_type = password
ldap_default_authtok = xxxx

ldap_default_bind_dn = cn=bindadmin-sssd,ou=People,dc=xxxx,dc=com
ldap_enumeration_refresh_timeout = 300
ldap_group_member = memberUid
ldap_group_name = cn
ldap_group_object_class = posixGroup
ldap_group_search_base = ou=Groups,dc=xxxx,dc=com
ldap_id_use_start_tls = false
ldap_network_timeout = 3
ldap_pwd_policy = shadow
ldap_schema = rfc2307
ldap_search_base = dc=xxx,dc=com
ldap_tls_cacertdir = /etc/openldap/cacerts
ldap_tls_reqcert = never
ldap_uri = ldaps://ldap-01.ue1-prod.com
ldap_user_name = uid
ldap_user_object_class = posixAccount
ldap_user_search_base = ou=People,dc=xxxx,dc=com
ldap_user_shadow_expire = shadowExpire
shell_fallback = /bin/bash

답변1

설치해서 문제를 해결했어요Perl-Authen-PAM-module ( yum install perl-Authen-PAM) 및 webmin pam 구성 업데이트:

auth       required     pam_env.so
auth       sufficient   pam_unix.so likeauth nullok
auth       sufficient   pam_ldap.so use_first_pass
auth       required     pam_deny.so

account    sufficient   pam_unix.so
account    sufficient   pam_ldap.so
account    required     pam_ldap.so

password   required     pam_cracklib.so difok=2 minlen=8 dcredit=2 ocredit=2 retry=3
password   sufficient   pam_unix.so nullok md5 shadow use_authtok
password   sufficient   pam_ldap.so use_first_pass
password   required     pam_deny.so

관련 정보