pam_krb5의 kerberos를 통해 비활성화 된 AD 계정에 대한 액세스를 거부하는 방법은 무엇입니까?


10

하나의 작은 문제로 AD / Linux / LDAP / KRB5 디렉토리 및 인증 설정이 작동합니다. 계정이 비활성화 되어도 SSH 공개 키 인증은 여전히 ​​사용자 로그인을 허용합니다.

kinit 및 kpasswd가 더 이상 비밀번호 / 상호 작용없이 "클라이언트 자격 증명이 취소되었습니다"를 반환하므로 kerberos 클라이언트는 비활성화 된 계정을 식별 할 수 있습니다.

공개 키로 인증이 수행되는 비활성화 된 계정에 대한 로그인을 허용하지 않도록 PAM을 구성 할 수 있습니까 (sshd_config에서 "UsePAM yes"로)? 이것은 작동하지 않는 것 같습니다 :

account     [default=bad success=ok user_unknown=ignore] pam_krb5.so

귀하의 답변에 winbind를 도입하지 마십시오-우리는 그것을 사용하지 않습니다.

답변:


4

SSH를 통해 잠긴 계정에 로그인 할 수 없도록 SSH를 "수정"하도록 요청하는 다른 사람들을 읽었습니다. (데비안 버그 219377 참조)이 요청은 "passwd -l 만 암호를 잠그는 데 사용 된 사용자의 일부 기대치를 깨뜨리기"때문에 패치로 거부되었습니다. (데비안 버그 389183 참조) 예를 들어 일부 사람들은 암호 로그인으로 계정을 잠글 수는 있지만 SSH 키 액세스는 허용하기를 원했습니다.

PAM은 방금 잠긴 계정에 대한 SSH 키 인증을 거부하지 않습니다 (예 : 유효하지 않은 비밀번호 시도로 인해 SSH 키 인증은 일반적으로 계정이 잠겨있는 비밀번호 필드에주의를 기울이지 않도록 설계 되었기 때문에).

비밀번호 해시 항목은 pam_acct_mgmt () 시간이 아니라 pam_authenicate () 시간에 암시 적으로 확인됩니다. pam_unix.so pam_sm_acct_mgmt ()는 암호 해시를 전혀 확인하지 않으며 공개 키 인증 중에 pam_authenticate ()가 호출되지 않습니다.

중앙에서 계정 로그인을 비활성화하려는 의도가있는 경우 다음과 같은 다른 해결 방법이 있습니다.

로그인 쉘 변경

authorized_keys 파일을 (재) 이동합니다.

액세스를 거부하는 또 다른 옵션은 sshd_config에서 DenyGroups 또는 AllowGroups를 사용하는 것입니다. 그런 다음 사용자를 "sshdeny"그룹에 추가하거나 "sshlogin"그룹에서 제거하여 로그인 할 수 없게합니다. https://help.ubuntu.com/8.04/serverguide/user-management .html )

에서 http://web.archiveorange.com/archive/v/67CtqEoe5MhDqkDmUMuL 읽었 : "문제는 pam_unix를 검사 그림자 항목의 바로 만료 날짜가 아닌 암호 해시 필드 내용입니다." 이것이 사실이라면 계정을 잠그기보다는 만료 하는 것이 필요한 것입니까?

귀하의 질문에 대한 답변은 " 암호 필드 이외의 다른 곳에서 사용하지 않도록 설정 한 경우 "일 있습니다.


4

숙제를 더하고 내 자신의 질문에 대답하고 있습니다.

RedHat의 pam_krb5 ( pam_krb5-2.3.14-1/src/acct.c)에서 모듈이 인증 단계에 참여하지 않으면 pam_sm_acct_mgmt () 함수는 모듈 구성에 따라 PAM_IGNORE 또는 PAM_USER_UNKNOWN을 반환합니다. 따라서 원하는 작업을 수행하려면 pam_krb5 코드를 변경해야합니다.

JohnGH의 대답은 좋은 해결 방법입니다. 쉘을 깨거나 "disabled-users"그룹에 추가하는 것과 같은 동일한 의미를 전달하기 위해 "proxy"속성 사용

또 다른 해결 방법 (일부 테스트)은 과거에 계정 만료 날짜를 설정하고 pam_unix와 같은 모듈을 사용하여 계정 확인에 실패하는 것입니다. 이것은 KRB5 대신 LDAP를 사용하지만 중앙에서 관리되는 동일한 사용자 디렉토리에 대해 쿼리합니다.


2

SSH 키 기반 인증은 PAM과 무관합니다. 다음과 같은 솔루션이 있습니다.

  • sshd_config에서 키 기반 인증 비활성화
  • sshd를 변경하고 다시 컴파일하고 키 기반 인증자가 계정이 pam을 통해 유효한지 확인하도록 후크를 추가하십시오.

kerberos를 통한 비밀번호없는 로그인을 사용하려면 다음을 확인해야합니다.

  • sshd에 pam을 사용하지 않습니다
  • kerberos가 올바르게 구성되었습니다. 예를 들어 할 수 있습니다kinit -k host/server1.example.com@DOMAIN
  • sshd가 gssapi를 사용하도록 구성되었습니다.

    KerberosAuthentication 예 GSSAPIAuthentication 예 GSSAPICleanupCredentials 예 UsePAM 아니요

  • PuTTY v0.61 이상과 같은 kerberized ssh 클라이언트를 사용합니다.


1
SSH 공개 키 인증이 PAM과 독립적이라는 데 동의하지 않습니다. account optional pam_echo.so file=/etc/redhat-release/etc/pam.d/sshd에 추가 하면 키 기반 인증 로그인을 사용하는 동안 파일 내용이 인쇄됩니다 (시도하십시오).
Phil

pam은 계정에만 사용되며 (예 : 홈 폴더 생성) 인증에는 사용되지 않습니다. 이 사건을 지금 확인 중입니다.
Mircea Vutcovici 2018 년
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.