Rhel

在 RHEL6 中為 LDAP 使用者設置 chroot

  • January 5, 2015

我已經為此工作了 2 天,並且即將放棄,所以請有人幫忙。

我有一台 Red Hat 6 伺服器加入了我的活動目錄域。在正常情況下,登錄工作正常。通過在文件/etc/security/pam_winbind.conf 中使用require_membership_of=,我將SSH 登錄限制為特定的活動目錄組。它工作得很好。

現在我需要鎖定這些使用者,使其只能訪問他們的主目錄(chroot)並且只允許 sftp 登錄。

我已經嘗試了大約十億種編輯 /etc/ssh/sshd_config 文件的組合,但最終導致使用者不受限於他們的主文件夾或無法登錄。當我使用本地時,以下配置工作得很好使用者/組來限制 chroot 和 sftp 登錄。(顯然我將其更改Match group為本地使用者組)

認為我遇到的問題是 LDAP 使用者不是本地使用者並且他們沒有本地組。這是我的 sshd_config 文件的相關部分

 Match group 'Domain Users'
   ChrootDirectory %h
   X11Forwarding no
   AllowTcpForwarding no
   ForceCommand internal-sftp

當我重新啟動 sshd 時會出現錯誤/etc/ssh/sshd_config line 135: Bad Match condition當我更改'Domain Users'為時Domain\040Users我沒有收到錯誤但 LDAP 使用者不限於他們的主目錄(chroot 不工作)。我還嘗試將其更改ChrootDirectory %h為新的 /chroot 文件夾以及 /home/%u ,但兩者都不起作用。

我想到的可能的解決方案是

  • 更改預設組 LDAP 使用者所屬的組(我在任何地方都沒有找到這個,設置是 /etc/default/useradd 不適用)
  • Match group將 sshd_config 文件中的內容更改為適用於域使用者的內容。我嘗試了域使用者組的 LDAP 中的'Domain Users'Domain\ UsersDomain\040Users和 SID。重新啟動 sshd 時所有這些都不起作用或出錯
  • 首次登錄時讓系統創建一個本地使用者/組(但這可能會破壞密碼同步到 AD
  • 還有一些我完全錯過的東西。

有沒有人有使用 LDAP 登錄設置 chroot 限制的經驗?我很茫然,不認為我可以在瀏覽器中打開更多標籤。

感謝#centos 頻道中的 TrevorH1,我能夠讓它工作。

您可以將組與空格(在我的情況下為域使用者)匹配的方式是使用?來表示空格(標準的 shell glob 模式)。這將匹配任何也有任何字元而不是空格的組,但它可以滿足我的需要。

例如我的新sshd_config外觀是這樣的

Match Group domain?users
 ChrootDirectory %h
 X11Forwarding no
 AllowTcpForwarding no
 ForceCommand internal-sftp

對我來說,使用小寫字元而不是 Domain?Users 也很重要。即使 LDAP 中的組是大寫的。找出需要過濾的組的方法是使用id <username>這將為您提供使用者所屬的所有組的列表。如果我有多個組是 LDAP(例如域使用者、域!使用者、域使用者),這將匹配所有可能或可能不需要的情況。

引用自:https://unix.stackexchange.com/questions/69148