Linux
為什麼“AcceptEnv *”被認為是不安全的?
在
/etc/ssh/sshd_config
中,有一個名為AcceptEnv
允許 ssh 客戶端發送環境變數的選項。我需要能夠發送大量環境變數。這些在來自客戶端的每個連接上都會發生變化,因此將它們放在伺服器上的登錄腳本中會更加困難。我讀過這
"AcceptEnv *"
是不安全的。在嘗試獲取所有嘗試設置為放在那裡的環境變數的列表之前,我想了解原因。為什麼它被認為是不安全的?我可以舉個例子嗎?
啟用環境處理可以使使用者使用諸如
LD_PRELOAD
.並非所有版本的手冊頁都
sshd_config
提到這一點。如果您的環境變數預先更改並且使用由此指定的新庫執行某些特權程序,則可能會導致問題。查看http://www.dankalia.com/tutor/01005/0100501004.htm並蒐索“
LD_PRELOAD
Exploit”。抱歉,該頁面沒有錨連結。另請參閱 StackOverflow 問題:什麼是 LD_PRELOAD 技巧?
在連接後設置環境變數是可以的,但是當這些變數被 ssh 守護程序解釋為由 設置時
AcceptEnv
,可能會發生壞事。