PCI-DSS 3.0 要求 8.1.8 规定:“如果会话空闲时间超过 15 分钟,则要求用户重新进行身份验证以重新激活终端或会话。”PCI-DSS 2.0 要求 8.5.15 中也有同样的规定。
处理在 bash 提示符下处于空闲状态的 ssh 会话的第一个也是最明显的方法是强制执行只读的全局$TMOUT
900。不幸的是,这只涵盖处于 bash 提示符下的会话。PCI 规范的精神还要求终止运行 top/vim/等的会话。
我考虑过编写一个 */1 cron 作业来解析“/usr/bin/w”的输出并终止关联的 shell,但这似乎不太管用。有没有办法真正按照规范的要求锁定终端?我查看了 和away
;vlock
它们似乎都非常适合自动锁定终端,但我需要一个可以强制锁定的 cron/守护进程任务。
答案1
您能否将“exec screen -R”放入 .bash_profile 中,将“idle 900 lockscreen”放入 .screenrc 中以解决这个问题?如果屏幕会话仍在,则会自动重新连接到该会话,如果不在,则创建一个新的会话,但如果屏幕空闲 900 秒,则锁定屏幕。
我相信用户可以禁用空闲功能......
或者:只需在 .screenrc 中使用简单的“exec screen”和“autodetach off”,这样如果它们断开连接,它们的会话就会终止。
答案2
下面的命令添加到你的 sshd 配置中,将在 15 分钟不活动后关闭 SSH 连接:
ClientAliveInterval 900
ClientAliveCountMax 0
必须包含ClientAliveCountMax 0
该信息以防止服务器向 SSH 客户端发送“客户端活动消息”。
答案3
在 BSD 下我使用由 Michael P. Crider 闲置
引自描述
Idled 是运行在机器上的守护进程,用于监视当前用户。如果用户闲置时间过长、登录时间过长或登录次数过多,它会警告用户,并适当注销用户。
我认为您也可以在 Linux 存储库中找到它。