저는 대학에서 여러 서버를 담당하고 있습니다. 이 모든 컴퓨터는 중앙 집중식 사용자 로그인을 허용하기 위해 우리 부서의 LDAP 서버와 통신하도록 구성되었습니다. 이 LDAP 서버에는 다음과 같은 사용자가 있습니다 root
.
# getent passwd | grep root
root:x:0:0:root:/root:/bin/bash
root:x:0:0:Netbios Domain Administrator:/home/root:/bin/false
root
최근에 제가 담당하고 있는 서버 중 하나에서 계정 문제가 발생했습니다. SSH 연결 시도가 root
로컬 사용자에 대해 성공적으로 인증되었지만 홈 디렉터리를 LDAP에서 가져왔습니다 /home/root
. 또한 이 문제는 모든 서버 LDAP에서 작동하는 것으로 나타났습니다. 자격 증명은 루트로 인증됩니다 root
. 즉, 로컬에 대한 인증이 root
실패하면 LDAP가 시도되고 root
비밀번호가 정확하면 사용자는 수퍼유저로 로그인됩니다.
나는 이것이 매우 안전하지 않으며 root
두 계정을 명확하게 구분해야 한다고 생각합니다. 하지만 우리 IT 부서에 따르면 LDAP가 root
필요하다고 합니다.
root
인증 사용을 비활성화하기 위해 LDAP에서 계정을 필터링하려면 어떻게 해야 합니까 ? pam_ldap.so
일부 LDAP 지시어를 사용하고 있습니다 /etc/nsswitch.conf
.
답변1
여러 가지 방법이 있습니다. 다음은 몇 가지 간단한 방법입니다.
/etc/ssh/sshd_config
아니요 로 변경합니다PermitRootLogin
. 일반적으로 이는 좋은 생각이며 이에 의존하여su
관리sudo
합니다. 물론 이것은 SSH에만 영향을 미칩니다.- 다양한 PAM 구성 파일에서 이 모듈을 사용하여
pam_listfile
특정 계정을 명시적으로 허용하거나 거부합니다(각 서비스마다 수행해야 함). - 루트가 로그인할 수 없도록 해당 PAM 구성 파일에서
pam_ldap
모듈을 1(또는 그 이상)으로 구성합니다.pam_min_uid
(서비스별로 수행해야 함) pam_filter
사용자를 제외하도록 PAM LDAP 검색 필터( )를 수정합니다 . 예pam_filter (uidNumber>=1)
를 들어 기본/범위를 수정할 수 있습니다.
마지막 두 가지 중 하나가 가장 적합할 수 있습니다. 로컬 루트 계정이 pam_unix
실패할 경우 pam_ldap
(예: 주문 및 필수/필수/충분) 성공할 수 있도록 로컬 PAM 구성을 일부 조정해야 할 수도 있습니다 .