저는 대학에서 두 대의 서버를 담당하고 있습니다. 이 모든 컴퓨터는 중앙 집중식 사용자 로그인을 허용하기 위해 부서의 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
필요하다고 합니다.
LDAP에서 계정 을 필터링하여 root
인증을 허용하지 않으려면 어떻게 해야 합니까? 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 LDAP 검색 필터(
pam_filter
)를 수정하여 사용자를 제외하거나(예pam_filter (uidNumber>=1)
: 또는 기본/범위를 수정할 수 있음)
마지막 두 가지 중 하나가 귀하에게 가장 적합할 수 있습니다. 또한 실패할 경우 로컬 루트 계정이 pam_unix
성공할 수 있도록 로컬 PAM 구성을 일부 조정해야 할 수도 있습니다 pam_ldap
(예: 주문 및 필수/필수/충분).