不活动后 ssh 会话超时吗?

不活动后 ssh 会话超时吗?

PCI-DSS 3.0 要求 8.1.8 规定:“如果会话空闲时间超过 15 分钟,则要求用户重新进行身份验证以重新激活终端或会话。”PCI-DSS 2.0 要求 8.5.15 中也有同样的规定。

处理在 bash 提示符下处于空闲状态的 ssh 会话的第一个也是最明显的方法是强制执行只读的全局$TMOUT900。不幸的是,这只涵盖处于 bash 提示符下的会话。PCI 规范的精神还要求终止运行 top/vim/等的会话。

我考虑过编写一个 */1 cron 作业来解析“/usr/bin/w”的输出并终止关联的 shell,但这似乎不太管用。有没有办法真正按照规范的要求锁定终端?我查看了 和awayvlock它们似乎都非常适合自动锁定终端,但我需要一个可以强制锁定的 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 存储库中找到它。

答案4

正确答案是

出口TMOUT = 900

在 .bash_profile 中

(调用屏幕不是解决此问题的直接方法)

http://linux.die.net/man/1/bash

相关内容