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 连接:
必须包含
ClientAliveCountMax 0
以防止服务器向 SSH 客户端发送“客户端活动消息”。在 BSD 下,我正在使用由 Michael P. Crider 闲置
从描述中引用
我认为您也可以在 linux 存储库中找到它。
sshd 的 IdleTimeout 设置是否符合您的要求?我还没有对使用 top 的用户进行测试,但它应该适用于 vim 或不发送数据的东西。
这里的正确答案是
出口 TMOUT=900
在 .bash_profile
(调用屏幕不是处理这个问题的直接方法)
http://linux.die.net/man/1/bash