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
