Linux
不活動後超時ssh會話?
PCI-DSS 3.0 要求 8.1.8 規定:“如果會話空閒超過 15 分鐘,則要求使用者重新驗證以重新啟動終端或會話。” PCI-DSS 2.0 要求 8.5.15 也是如此。
處理在 bash 提示符下空閒的 ssh 會話的第一種也是最明顯的方法是強制只讀全域
$TMOUT
900。不幸的是,這僅涵蓋坐在 bash 提示符下的會話。PCI 規範的精神還需要終止執行 top/vim/etc 的會話。我考慮過編寫一個 */1 cron 作業來解析“/usr/bin/w”的輸出並殺死相關的 shell,但這似乎是一個生硬的工具。對於實際上可以滿足規範要求並鎖定終端的任何想法?我看過
away
和vlock
; 它們似乎都非常適合自願鎖定您的終端,但我需要一個 cron/daemon 任務來強制鎖定。
你能在 .bash_profile 中加入“exec screen -R”,在 .screenrc 中加入“idle 900 lockscreen”來解決這個問題嗎?如果螢幕仍然存在,它將自動重新附加到他們的螢幕會話,如果不存在則創建一個新會話,但如果螢幕空閒 900 秒則鎖定螢幕。
我相信使用者可以禁用空閒,但……
或者:只是簡單的“執行螢幕”和 .screenrc 中的“自動分離”,這樣如果他們斷開連接,他們的會話就會終止。
以下添加到您的 sshd 配置中,將在 15 分鐘不活動後簡單地關閉 SSH 連接:
ClientAliveInterval 900 ClientAliveCountMax 0
必須包含
ClientAliveCountMax 0
以防止伺服器向 SSH 客戶端發送“客戶端活動消息”。