"passwd"가 로컬 비밀번호를 묻지 않도록 방지

"passwd"가 로컬 비밀번호를 묻지 않도록 방지

인증을 위해 LDAP만 사용하도록 서버를 설정했습니다 authconfig-tui. 모든 것이 잘 작동하지만 을 실행하면 passwd두 개의 비밀번호 프롬프트가 나타납니다.

[beamin@rhel6-test-server1 ~]$ passwd
Changing password for user beamin.
Changing password for beamin.
(current) UNIX password:
Enter login(LDAP) password:

왜 둘 다 필요합니까? 이런 일이 발생하지 않도록 할 수 있나요?

내용은 다음과 같습니다 /etc/pam.d/passwd.

$ cat /etc/pam.d/passwd
#%PAM-1.0
auth       include      system-auth
account    include      system-auth
password   substack     system-auth
-password   optional    pam_gnome_keyring.so

include()의 내용은 다음과 같습니다 /etc/pam.d/system.auth.

$ cat /etc/pam.d/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        sufficient    pam_unix.so nullok try_first_pass
auth        requisite     pam_succeed_if.so uid >= 500 quiet
auth        sufficient    pam_ldap.so use_first_pass
auth        required      pam_deny.so

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

password    requisite     pam_cracklib.so try_first_pass retry=3 type=
password    sufficient    pam_unix.so nullok try_first_pass use_authtok
password    sufficient    pam_ldap.so use_authtok
password    required      pam_deny.so

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

nsswitch.conf@Nikhil이 질문한 내용:

$ egrep 'passwd|shadow' /etc/nsswitch.conf
#passwd:    db files nisplus nis
#shadow:    db files nisplus nis
passwd:     files
shadow:     files 

답변1

이는 /etc/nsswitch.conf사용자, 그룹이 비밀번호, 그룹 및 섀도우 맵에 저장된 위치를 찾도록 시스템에 지시합니다. 로컬 파일이든, nis/yp이든, ldap이든 nsswitch.conf입니다. 이 변경 사항을 지원하는 구성은 나중에 pam 구성 또는 nss 라이브러리에 나타납니다. Linux의 pam은 tcp_wrappers와 Unix 인증을 사용자 정의하는 다양한 방법도 지원하므로 매우 단순화되었습니다.

실행하고 /usr/bin/authconfigldap을 사용하도록 변경하면,

Authconfig는 PAM 파일(특히), 특히 /etc/pam.d/system-auth 파일을 변경합니다. 인증을 위해 LDAP를 사용하도록 구성된 Red Hat 시스템에서 일반적인 system-auth 파일은 다음과 같습니다:

다음으로 "pam_unix" 모듈이 호출되어 사용자에게 비밀번호를 묻는 작업을 수행합니다. "nullok" 및 "likeauth" 매개변수는 null 비밀번호가 계정을 잠그는 것으로 간주되지 않으며 모듈이 a라고 불리는 경우에도 동일한 값("auth" 값과 "유사한" 값)을 반환한다는 것을 의미합니다. 자격 증명 설정 모듈. 이 모듈은 "필수"가 아니라 "충분"입니다. "pam_ldap" 모듈이 호출되고 "use_first_pass"라는 메시지가 표시됩니다. 즉, 사용자에게 다른 비밀번호를 묻는 대신 pam_unix 모듈에서 수집한 비밀번호를 사용하라는 메시지가 표시됩니다. 이 모듈은 "sufficient"로 표시되어 있고 pam_unix 뒤에 위치합니다. 즉, pam_unix가 로컬에서 비밀번호를 성공적으로 확인하면 pam_ldap이 전혀 호출되지 않습니다.

#%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        sufficient    pam_unix.so nullok try_first_pass
 auth        requisite     pam_succeed_if.so uid >= 500 quiet
 auth        sufficient    pam_ldap.so use_first_pass
 auth        required      pam_deny.so

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

 password    requisite     pam_cracklib.so try_first_pass retry=3
 password    sufficient    pam_unix.so md5 shadow nullok try_first_pass use_authtok
 password    sufficient    pam_ldap.so use_authtok
 password    required      pam_deny.so

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

/etc/ldap.conf에는 다음이 있어야 합니다.

pam_lookup_policy yes
pam_password exop

/etc/ssh/sshd_config가 있어야 하며 구성 변경 후 다시 시작해야 합니다.

UsePAM yes

관련 정보