Security
ssh 中 PermitUserEnvironment 的安全風險
為了將環境變數傳遞給 ssh shell,我已經閱讀了很多關於使用
PermitUserEnvironment
和文件的文章。~/.ssh/environment
官方sshd 文件和其他一些資源暗示了這樣做的一些安全風險。啟用環境處理可能使使用者能夠使用 LD_PRELOAD 等機制繞過某些配置中的訪問限制。
啟動的可能安全問題是
PermitUserEnvironment
什麼?我希望在這些環境變數中保存數據庫連接詳細資訊,這是否可取?
首先,如果你不想對使用者訪問限製做任何花哨的事情——也就是說,如果你提供互動式 shell 訪問——在允許使用該文件時可能存在零額外
.ssh/environment
的安全風險,因為任何使用者可以使用該文件完成他們也可以在他們的 shell 中以互動方式完成。啟用環境處理可能使使用者能夠使用 LD_PRELOAD 等機制繞過某些配置中的訪問限制。
如果您使用 SSH 強制命令來限制人們可以通過 ssh 執行的操作(例如,如果您限制人們只能使用
sftp
orscp
),則允許某人設置環境變數LD_PRELOAD
(甚至可能PATH
)將允許他們劫持您的通過用自己的程式碼替換基本庫呼叫來限制。另一方面,如果您.ssh/environment
代表您的使用者創建並且他們無法管理它,那麼您的風險相對較小。在不了解您的特定案例的情況下,很難提供明確的答案。