Kerberos/NIS 사용자를 사용하여 Debian 7.7에 로그인할 수 없습니다

Kerberos/NIS 사용자를 사용하여 Debian 7.7에 로그인할 수 없습니다

Active Directory 서버에서 제공하는 Kerberos와 NIS를 사용하도록 구성하려는 Debian 7.7 시스템이 있습니다.

kinitAD 서버에서 자격 증명 세트를 얻을 수 있도록 kerberos를 설정했습니다 .

su - $USERAD 사용자에 연결할 수 있도록 NIS를 설정했는데 모든 것이 잘 작동합니다.

사용자로 로그인할 수 없습니다.

콘솔을 통해 로그인하면 auth.log에 다음 로그가 표시됩니다.

Nov  5 10:22:41 debian login[3888]: pam_krb5(login:auth): pam_sm_authenticate: entry
Nov  5 10:22:45 debian login[3888]: pam_krb5(login:auth): (user dmackintosh) attempting authentication as dmackintosh@AD.$ZONE
Nov  5 10:22:45 debian login[3888]: pam_krb5(login:auth): user dmackintosh authenticated as dmackintosh@AD.$ZONE
Nov  5 10:22:45 debian login[3888]: pam_krb5(login:auth): (user dmackintosh) temporarily storing credentials in /tmp/krb5cc_pam_54ruC8
Nov  5 10:22:45 debian login[3888]: pam_krb5(login:auth): pam_sm_authenticate: exit (success)
Nov  5 10:22:45 debian login[3888]: Authentication failure

SSH를 통해 로그인하면 다음을 얻습니다.

Nov  5 10:24:00 debian sshd[7641]: pam_krb5(sshd:auth): pam_sm_authenticate: entry (nonull)
Nov  5 10:24:00 debian sshd[7641]: pam_krb5(sshd:auth): (user dmackintosh) attempting authentication as dmackintosh@AD.$ZONE
Nov  5 10:24:00 debian sshd[7641]: pam_krb5(sshd:auth): user dmackintosh authenticated as dmackintosh@AD.$ZONE
Nov  5 10:24:00 debian sshd[7641]: pam_krb5(sshd:auth): (user dmackintosh) temporarily storing credentials in /tmp/krb5cc_pam_NQ9vhz
Nov  5 10:24:00 debian sshd[7641]: pam_krb5(sshd:auth): pam_sm_authenticate: exit (success)
Nov  5 10:24:00 debian sshd[7641]: Failed password for dmackintosh from 10.8.0.21 port 47234 ssh2
Nov  5 10:24:00 debian sshd[7641]: fatal: Access denied for user dmackintosh by PAM account configuration [preauth]

두 경우 모두 로그인 시도가 즉시 차단됩니다. A) kinit 테스트를 통과하고 B) 고의로 잘못된 비밀번호를 입력한 경우 다시 입력하라는 메시지가 표시되기 전에 "사용자의 비밀번호가 잘못되었습니다"라는 메시지가 나타날 때까지 기다리기 때문에 비밀번호가 정확하다는 것을 알고 있습니다.

PAM 구성은 /usr/share/doc/libpam-krb5/README.Debian과 거의 동일합니다. PAM 디버깅 문만 추가되었습니다.

GSSAPIAuthentication 및 GSSAPICleanupCredentials 옵션을 활성화하도록 SSH가 변경되었지만 이는 차이가 없는 것 같습니다.

저는 CentOS 5와 6에서 작업 중이므로 이는 데비안 시스템 어딘가의 구성 문제임에 틀림없습니다.

나는 인터넷이 이 작업을 수행하기 위해 NIS 대신 LDAP를 사용하기를 원한다는 것을 알고 있지만 "이유" 때문에 NIS를 유지해야 합니다.

고쳐 쓰다: /etc/shadow에 해당 사용자에 대한 항목이 있으면 작동하는 것으로 확인되었습니다. 이는 NIS를 사용하는 목적을 완전히 무너뜨리는 것입니다. 이로 인해 다음과 같은 /etc/nsswitch.conf 파일에 문제가 있다고 생각됩니다.

passwd:         files nis
group:          files nis
shadow:         files nis

hosts:          files dns
networks:       files

protocols:      db files
services:       db files
ethers:         db files
rpc:            db files

netgroup:       nis

automount:      nis

업데이트 2:/etc/shadow에 추가 정보가 없으면 getent shadow에서 반환되지 않는 것으로 나타 ypcat shadow났습니다. 또한 Gentoo와 Ubuntu가 비슷한 영향을 받는 것으로 나타났습니다. .NET 매핑 콘텐츠를 통한 NIS getent.

답변1

대답은 broken_shadowpam_unix 기능을 활성화하는 것입니다.

에서 /etc/pam.d/common-accountpam_unix 줄을 찾아 broken_shadow끝에 다음을 추가합니다.

account [success=1 new_authtok_reqd=done default=ignore]        pam_unix.so  broken_shadow

설명하다:

일부 네트워크 설정에는 암호화된 비밀번호 필드에 "x"가 포함되어 있지만 섀도우 정보는 없습니다. 이런 일이 발생하면 pam_unix는 이 정보를 읽을 수 없기 때문에 계정 관리에 실패하게 됩니다. "brokenshadow" 옵션은 정보를 읽는 중 오류가 발생하면 해당 정보가 존재하지 않는다는 의미로 가정하고 사용자가 로그인할 수 있도록 합니다.

관련 정보