如何仅允许在特定时间访问 SSH?

如何仅允许在特定时间访问 SSH?

基于 Ubuntu 18.04,

我只想允许用户在上午 9 点到下午 5 点之间访问(工作时间) 在 SSH 服务器上。(使用OpenSSH-server包)

我查找了所有我认为可以帮助您的资料,从用户管理到 Google 上的 PAM 设置,但我认为没有任何信息可以通过 SSH 时区限制访问。

(但是,我没有使用类似的防火墙相关的服务ufw。)

如果你能帮助我,请告诉我。谢谢。

(由于我的英语不好,请理解我的英语可能不自然。)

答案1

pam_time模块就是为此而设计的。

  1. 添加pam_time为 ssh pam 配置中的第一个语句。此命令将在该行上方account插入语句。account required pam_time.so@include common-account
sed -i -e '/^.include common-account/i account required pam_time.so' /etc/pam.d/sshd
  1. 根据需要进行配置/etc/security/time.conf。此命令将添加配置sshd;*;*;Wk0900-1700。这会将所有用户的 ssh 连接限制在工作日上午 9 点到下午 5 点之间。
echo 'sshd;*;*;Wk0900-1700' >> /etc/security/time.conf

也可以看看

答案2

使用 cron 任务在特定时间停止和启动 ssh 服务器。例如,创建一个/etc/cron.d/start-stop-ssh包含以下内容的文件:

0 9 * * * root /usr/sbin/service ssh start
0 17 * * * root /usr/sbin/service ssh stop

这将在每天 9:00 启动 ssh 服务并在每天 17:00 停止它。

请注意,当服务停止时,没有人(甚至管理员)将能够通过 ssh 登录。

相关内容