Authentication
如何禁止使用 LDAP 根帳戶
我負責我大學的幾台伺服器。所有這些機器都配置為與我部門的 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
. 此外,我發現可以root
在任何伺服器上使用 LDAP 憑據以 root 身份進行身份驗證,即,如果針對本地的身份驗證root
失敗,root
則嘗試使用 LDAP,並且在密碼正確的情況下,使用者以超級使用者身份登錄。我認為這不是很安全,
root
應該消除兩個帳戶的歧義。但是,根據我們的 IT 部門的說法,LDAProot
是必要的。如何
root
從 LDAP 中過濾掉帳戶以禁止對其進行身份驗證?我正在使用pam_ldap.so
和一些 ldap 指令/etc/nsswitch.conf
。
有很多方法,這裡有幾個簡單的:
/etc/ssh/sshd_config
改為no(這通常是PermitRootLogin
個好主意,然後依靠su
/sudo
進行管理)。這當然只影響 SSH。- 在各種 PAM 配置文件中使用
pam_listfile
模組來明確允許或拒絕某些帳戶(需要為每個服務完成)- 在各種 PAM 配置文件中將
pam_ldap
模組配置pam_min_uid
為 1(或更高),以便 root 無法登錄(每個服務都需要這樣做)- 修改 PAM LDAP 搜尋過濾器 (
pam_filter
) 以排除使用者(例如pam_filter (uidNumber>=1)
,或者您可以修改基礎/範圍最後兩個中的任何一個都可能最適合您。您可能還需要對本地 PAM 配置進行一些調整,以便本地 root 帳戶
pam_unix
在失敗時可以成功pam_ldap
(例如排序和必需/必要/足夠)。