Kerberos를 사용하도록 PAM 인증을 구성했으며 주체의 Kerberos 자격 증명을 사용하여 올바르게 인증합니다.
만료된 비밀번호를 사용하여 보안 주체를 만들려고 할 때 문제가 발생했습니다.
kadmin: addprinc +needchange test_principal
VT 또는 그래픽 인사말에서 로그인을 시도할 때 비밀번호를 올바르게 입력한 후 다음과 같은 예상 메시지가 나타납니다. 비밀번호가 만료되었으며 새 비밀번호를 생성하라는 메시지가 표시됩니다. 이 작업을 수행한 후 다음 오류와 함께 인증이 실패합니다 kdc.log
.
krb5kdc[...](info): TGS_REQ (4 etypes {18 17 16 23}) 192.168.0.200: NO PREAUTH: authtime 0, [email protected] for host/[email protected], Generic error (see e-text)
그리고 다음과 같은 (놀랍지 않은) 오류가 발생합니다 /var/log/auth.log
.
pam_krb5(gdm3:auth): (user test_principal) credential verfication failed: KDC returned error string: NO PREAUTH
몇 가지 메모
- 주체의 속성을 나열하면(
getprinc
에서kadmin.local
) 실패한 로그인 시도가 0번 표시됩니다. - 플래그 없이 계정을 만들면
+needchange
올바르게 인증할 수 있습니다. - 사용자가 한 번 성공적으로 인증된 후
+needchange
( in 을 통해) 플래그를 추가하면modprinc
예상되는 동작이 나타납니다.kadmin.local
즉, 사용자에게 비밀번호를 변경하라는 메시지가 표시되고 인증이 성공합니다. - 이 주체에는 동등한 항목이 없지만
/etc/passwd
LDAP 항목에서 지원됩니다. 다른 곳에서 제안한 대로 다음과 같이 몸을 만들어 보았습니다.
kadmin: addprinc -requires_preauth +needchange test_principal
아무런 차이가 없습니다.
내 사용 사례
이전 NIS 시스템에서 마이그레이션 중이며 사용자에게 연속성을 제공하고 싶습니다. 나는 그들이 이전 비밀번호를 입력하기를 원하지만 Kerberos를 통해 시행하려는 더 엄격한 비밀번호 정책 규칙을 준수하도록 비밀번호를 변경해야 합니다.
저는 Debian Wheezy에서 MIT Kerberos V를 실행하고 있습니다.
답변1
답변을 찾았는데 매우 이상한 답변입니다!
여기에 있는 명령을 사용하여 getprinc
문제 주체의 속성과 해당 주체 없이 생성되고 올바르게 검증된 주체를 가져옵니다 kadmin
.+needchange
차이점은 올바르게 인증된 주체에는 REQUIRES_PRE_AUTH
속성 집합이 있지만 문제가 있는 주체에는 속성 집합이 없다는 점입니다. 따라서 해결 방법은 다음을 통해 주체를 생성하는 것입니다.
kadmin: addprinc +needchange +requires_preauth test_principal