LDAP 인증 사용자에 대한 로컬 로그인 거부

LDAP 인증 사용자에 대한 로컬 로그인 거부

1000명이 넘는 사용자가 사용하는 RedHat Linux 서버가 있습니다.

사용자 이름은 LDAP 프로토콜을 통해 서버에 도달하므로 로그인 인증은 LDAP에서 옵니다.

내 질문: 사용자 이름이 LDAP에서 오는 경우 사용자가 로컬 컴퓨터에 로그인하는 것을 방지할 수 있습니까?

답변1

오늘날 인증 논리는 일반적으로 PAM에 의해 처리됩니다. 내 생각엔 PAM의 구성 파일(내 경우에는 )에서 이를 설정할 수 있어야 할 것 같습니다 /etc/pam.d.

일반적인 인증 로직은 에 저장되어 있습니다 common-auth. 귀하의 경우 다음과 같은 것이 있어야 할 것 같습니다.

auth    [success=2 default=ignore]   pam_unix.so nullok_secure
auth    [success=1 default=ignore]   pam_ldap.so use_first_pass
auth    requisite                    pam_deny.so
auth    required                     pam_permit.so

...또는 다음과 같이 더 간단한 것일 수도 있습니다.

auth    sufficient                   pam_unix.so nullok_secure
auth    sufficient                   pam_ldap.so use_first_pass

...표준 UNIX 인증과 비교하여 LDAP가 첫 번째 소스인지 두 번째 소스인지에 따라 달라집니다(그것도 포함된다는 점을 고려).

이제 컴퓨터에서 LDAP 인증을 비활성화하려는 경우 또는부정적인LDAP 인증 사용자에 액세스하려면 PAM 구성에서 소스를 제거하고 UNIX 인증에만 의존하도록 하기만 하면 됩니다.

auth    [success=1 default=ignore]   pam_unix.so nullok_secure
auth    requisite                    pam_deny.so
auth    required                     pam_permit.so
  • 성공하면 나머지 체인에서 pam_unix.so1개 요소( )를 건너뛰고 다음 요소( )를 평가합니다. 이는 UNIX 인증이 실패하면 사용자가 갇히게 되어 인증이 실패함을 의미합니다. 성공하면 도착 하고 시스템에 대한 액세스 권한이 부여됩니다.pam_deny.sopam_permit.sopam_deny.sopam_permit.so
  • 여기에는 LDAP가 포함되어 있지 않습니다. 즉, 저장되지 않은 사용자는 /etc/passwd시스템에 액세스할 수 없습니다.

이제 LDAP 사용자를 구체적으로 차단하려면...

auth    [success=die]                pam_ldap.so
auth    sufficient                   pam_unix.so
  • 성공하면 pam_ldap.so실패 코드가 반환되고 체인이 종료됩니다. 실패하면 pam_unix.so시스템에 액세스하는 것으로 충분합니다.
  • 그러면 LDAP 자격 증명이 일치하는 한 모든 PAM 인증이 중단됩니다. UNIX 사용자는 계속해서 시스템에 액세스할 수 있습니다.

물론 PAM을 구성하는 다른 방법도 많이 있으며 그 중 일부는 방금 설명한 것보다 더 좋고/더 효율적일 수 있습니다. 이에 대한 자세한 내용은 다음을 확인하세요.이 페이지.그러나 주의할 점은 PAM 구성을 시작하기 전에 root어딘가에 보안 터미널이 실행되고 있는지 확인하십시오. 인증 논리가 엉망인 경우 기꺼이 /etc/pam.d다시 방문하여 변경 사항을 되돌릴 수 있습니다.:)

또 다른 참고 사항: PAM이 인증(및 기타 몇 가지 사항)을 처리하는 동안 이름 확인은 NSS(이름 서비스 스위치), 해당 구성은 에서 찾을 수 있습니다 /etc/nsswitch.conf. 이 파일에 LDAP를 남겨두면 시스템은 이러한 LDAP 사용자에 대해 계속 알 수 있지만 해당 사용자는 허용되지 않습니다. 기본적으로 이를 통해 시스템은 UID를 이름과 일치시킬 수 있습니다. 예를 들어 디렉토리( ls -l)에 있는 파일의 내용을 나열하고 파일의 소유자를 가져올 때입니다.

NSS 구성을 편집하여 이 LDAP 이름 소스를 삭제할 수도 있지만 사용자가 실제로 자신의 컴퓨터에서 사용할 수 있는 파일을 소유하고 있는 경우에는 이 방법을 권장하지 않습니다.

관련 정보