在 RHEL6 中為 LDAP 使用者設置 chroot
我已經為此工作了 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\ Users
、Domain\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(例如域使用者、域!使用者、域使用者),這將匹配所有可能或可能不需要的情況。