CentOS/RHEL:如何限制 SSH的登录时间
https://onitroad.com 更多教程

解决方案

PAM 资源描述

可以使用 Linux 插件身份验证方法 (PAM) pam_time.so 模块控制登录时间。
pam_time.so 模块强制执行文件 /etc/security/time.conf 中指定的登录限制。
因此,必须在该文件中定义所需的登录窗口。

示例策略
使用示例是解释 pam_time.so 模块功能的最佳方式。
我们希望将用户 john 远程登录系统的时间限制在任何一天的 13:00 到 14:00 之间。
为此,请将以下行添加到 /etc/security/time.conf 文件中:

# vi /etc/security/time.conf
sshd;*;john;Al1300-1400

字段由分号 (;) 字符分隔。
这些字段是:

  • 服务名作为控制器,这里使用sshd。
  • 被控制的 tty 终端。例如,此字段允许我们将限制限制为某个终端。 “*”通配符意味着无论用于登录尝试的终端如何,都应用限制。
  • 此限制适用的用户列表。我们的示例限制仅适用于 john 用户。
  • 限制适用的时间列表。每个时间范围是一个可选的感叹号 (!) 来否定时间范围,后跟一个或者多个两个字母的日期名称,后跟使用 24 小时制的时间范围。 Wk 这个名字意味着任何工作日; Wd 这个名字的意思是周末;而 Al 的意思是任何一天。我们的示例在一周中的任何一天 13:00 到 14:00 之间授予权限。

激活政策

在 /etc/pam.d/sshd 服务文件中添加一行,内容如下:

# vi /etc/pam.d/sshd
account required pam_time.so

该行应与其他科目行分组。
PAM 身份验证文件中的行顺序很重要:按行在文件中出现的顺序应用项目。
添加新行作为最后一个科目行。
这可确保有关基于时间的执行的信息不会泄露给外部人员。
在我们的例子中:

# vim /etc/pam.d/sshd
#%PAM-1.0
...
# Additionally, check for any account-based restrictions using pam_time.so
account required pam_nologin.so
account include password-auth
account required pam_time.so
...

对 PAM 配置文件进行更改时要格外小心。
错误的编辑或者拼写错误可以向任何用户完全打开系统,或者可以将每个用户(包括 root 用户)锁定在系统之外。

问题

如何只允许一天中某个特定时间使用ssh登录服务器?

日期:2020-09-17 00:12:18 来源:oir作者:oir