Linux

不活動後超時ssh會話?

  • March 16, 2021

PCI-DSS 3.0 要求 8.1.8 規定:“如果會話空閒超過 15 分鐘,則要求使用者重新驗證以重新啟動終端或會話。” PCI-DSS 2.0 要求 8.5.15 也是如此。

處理在 bash 提示符下空閒的 ssh 會話的第一種也是最明顯的方法是強制只讀全域$TMOUT900。不幸的是,這僅涵蓋坐在 bash 提示符下的會話。PCI 規範的精神還需要終止執行 top/vim/etc 的會話。

我考慮過編寫一個 */1 cron 作業來解析“/usr/bin/w”的輸出並殺死相關的 shell,但這似乎是一個生硬的工具。對於實際上可以滿足規範要求並鎖定終端的任何想法?我看過awayvlock; 它們似乎都非常適合自願鎖定您的終端,但我需要一個 cron/daemon 任務來強制鎖定。

你能在 .bash_profile 中加入“exec screen -R”,在 .screenrc 中加入“idle 900 lockscreen”來解決這個問題嗎?如果螢幕仍然存在,它將自動重新附加到他們的螢幕會話,如果不存在則創建一個新會話,但如果螢幕空閒 900 秒則鎖定螢幕。

我相信使用者可以禁用空閒,但……

或者:只是簡單的“執行螢幕”和 .screenrc 中的“自動分離”,這樣如果他們斷開連接,他們的會話就會終止。

以下添加到您的 sshd 配置中,將在 15 分鐘不活動後簡單地關閉 SSH 連接:

ClientAliveInterval 900
ClientAliveCountMax 0

必須包含ClientAliveCountMax 0以防止伺服器向 SSH 客戶端發送“客戶端活動消息”。

引用自:https://serverfault.com/questions/36681