LDAP 및 PAM을 사용하여 계정 로그인 제한


14

일부 PAM / LDAP 전문가가 여기에서 나를 도울 수 있기를 바랍니다. 최근에 Ubuntu Server에서 클라이언트 (웹 기반 시스템에 사용)와 직원 (SSH를 통해 로그인해야하는 직원) 모두의 계정을 보유하도록 LDAP 디렉토리를 설정했습니다.

LDAP 인증이 완벽하게 작동합니다. 직원 계정과 ID를 가질 것이다 : 그러나 나는 작업 계정 제한을받을 수 없습니다 20012999과의 구성원이어야합니다 ssh-users서버에 로그인을 허용하는 그룹.

해당 제한 사항 /etc/ldap.confpam_min_uid, pam_max_uid및에 pam_groupdn있습니다.

pam_groupdnssh-users그룹 의 전체 DN을 포함합니다 . pam_min_uid= 2000pam_max_uid= 2999.

이제 다음을 추가하여 작동하도록했습니다.

account [success=1 default=ignore] pam_ldap.so

위의 pam_unix.so라인 /etc/pam.d/common-account. 그러나 로컬 Unix 계정은 로그인 할 수 없습니다. SSH 서버는 시도하자마자 연결을 끊습니다.

위의 파일에서 pam_ldap.so모듈을 설정 sufficient했지만 유효하지 않은 사용자는 로그인 할 수 없다는 메시지가 표시되지만 어쨌든 로그인합니다.

그렇다면 UNIX 사용자가 로그인 할 수 있도록 LDAP 사용자에 대해 이러한 계정 제한을 어떻게 설정합니까?

"자동으로 홈 디렉토리 만들기"모듈을 작동시킬 수는 있지만 PAM의 초보자 일 것입니다.

많은 감사합니다, 앤디

답변:


11

PAM은 kubanskamac의 답변 (+1)과 같이 그룹을 posix 그룹으로 간주하는 액세스 제어 목록 (적어도 Ubuntu에서)에 따라 액세스를 제한 할 수 있습니다 /etc/group.

/etc/security/access.conf액세스 목록 파일입니다. 내 파일에서 나는 마지막에 넣었다.

-:ALL EXCEPT root sysadmin (ssh-users):ALL

이는 루트, sysadmin 및 그룹 ssh-users (LDAP에 있음)를 제외한 모든 사용자가 로그인 할 때마다 (두 번째 ALL) 거부합니다 .

그런 다음 PAM 계정 파일 (이것은 계정 모듈 임)에서 맨 끝에 추가합니다.

account required pam_access.so

이 파일을 사용하도록 PAM에 지시합니다. 그것은 치료를한다 :-)


PAM 계정 파일의 시작 부분에 pam_access.so를 넣어서 적용해야 할 수도 있습니다.
crb

5

나는 단순히 사용할 것이다

auth required    pam_listfile.so   sense=accept item=group file=/etc/groups.allow onerr=fail

특정 그룹 만 허용 (로컬 및 LDAP 그룹 모두). 이 방법으로에 아무것도 지정하지 않아도됩니다 ldap.conf.

인증을 유지하려면 "계정"패스에서 사용자를 필터링하지 않아야합니다. 나는 당신이 오히려 "auth"패스에서 그것을해야한다고 생각합니다. 두 번째로, pam_unix는 로컬 계정과 LDAP 계정 (적어도 "계정"패스)을 모두 처리하므로 pam_ldap이 전혀 필요하지 않은 것 같습니다.

편집 : 셋째, "계정"패스 (이상한 부작용이있을 수 있다고 생각)에 물건을 가지고 있다고 주장하면 순서는 다음과 같이 끝나야합니다 : ..., "충분한 pam_ldap", "필수 pam_localuser", "필수 pam_unix" . 다른 모듈이 있다면 pam_ldap 전에 옮기십시오. 그렇지 않으면 "충분한"절로 인해 LDAP 계정에서 무시됩니다.


pam_unix가 getent 호출을 사용하여 /etc/nsswitch.conf에서와 같이 LDAP를 사용하는 계정 정보를 검색한다고 생각합니다. libpam-ldap 패키지 설치 프로그램이 해당 행을 PAM 구성 파일에 추가했습니다. pam_groupdn의 기본 동작은 아무것도하지 않았으며, 답변을 검색하는 동안 누군가 "account"단계에서 pam_ldap.so 모듈을 사용하지 않으면 적용되지 않을 것이라고 말했습니다. 가능하면 ldap.conf에 설정을 유지하고 싶습니다. LDAP와 관련이 있기 때문입니다.
Andy Shellam

(1) pam_unix에 대해 옳습니다. (2) pam_localuser 조언으로 답변을 업데이트하고 있습니다.
kubanczyk

PAM에 대해 읽은 모든 내용은 계정이 이에 대한 올바른 섹션임을 나타냅니다. auth-사용자를 식별하고 계정 계정을 인증합니다.-비밀번호 만료, 로그인 시간 제한 및 원격 로그인 제한과 같은 사용자 계정 특성을 확인합니다. 이는 인증 문제가 아닙니다. 사용자 이름 / 암호가 정확하고 사용자가 식별. 일부 계정에 로그인하기를 원하지 않기 때문에 계정 제한입니다.
Andy Shellam

0

@ andy-shellam에 추가하려면 내 common-account파일이 있습니다.

account [success=2 new_authtok_reqd=done default=ignore] pam_unix.so
account [success=1 default=ignore]            pam_ldap.so
account requisite                     pam_deny.so
account required                      pam_access.so
account required                      pam_permit.so
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.