统信服务器操作系统【PAM 常用配置】介绍

全文导读:本文主要介绍了PAM常见配置的方法

功能概述

PAM 文件所在位置Linux-PAM(即 linux 可插入认证模块)是一套共享库,使本地系统管理员可以随意选择程序的认证方式。
PAM 使用配置/etc/pam.d/下的文件,来管理对程序的认证方式.应用程序 调用相应的配置文件,从而调用本地的认证模块.模块放置在/lib/security 下,以加载动态库的形式进行。

功能介绍

1、PAM 文件所在位置

将 PAM 配置文件放到/etc/pam.d/目录下,其规则内容都是不包含 service 部分的,即不包含服务名称,而/etc/pam.d 目录下文件的名字就是服务名称。如: vsftpd,login 等,只是少了最左边的服务名列。如:/etc/pam.d/sshd
上面的 pam 模块文件内容,四列内容分别为:模块类型、控制标记、模块路径、模块参数

2、PAM 模块类型

Linux-PAM 有四种模块类型,分别代表四种不同的任务,它们是:认证管理(auth),账号管理(account),会话管理(session)和密码(password)管理,一个类型可能有多行,它们按顺序依次由 PAM 模块调用。
inux-PAM 四种模块类型

3、PAM 控制标记

PAM 使用控制标记来处理和判断各个模块的返回值.(在此只说明简单的认证标记)
PAM各模块返回值

4、锁定连续五次登录失败的用户

以【登录失败五次(包括 root),锁定账户 5 分钟(300 秒),5 分钟后自动解除】为例。
分别在/etc/pam.d 下 password-auth、system-auth 文件中最上面添加
auth required pam_faillock.so preauth audit deny=5 even_deny_root unlock_time=300
auth [success=1 default=bad] pam_unix.so
auth [default=die] pam_faillock.so authfail audit deny=5 even_deny_root unlock_time=300
auth sufficient pam_faillock.so authsucc audit deny=5 even_deny_root unlock_time=300
#   vim /etc/pam.d/password-auth
#   vim /etc/pam.d/system-auth
设置锁定连续五次登录失败的用户
测试输入错误密码连续 5 次被锁定
输入错误密码连续 5 次被锁定

5、设置密码复杂度

以【依据操作系统实际情况,配置口令复杂度策略为“口令长度为 8 位后者以上、口令为数字、字母、特殊字符两种或两种以上组合”】为例。
修改/etc/pam.d/passwd
 vim /etc/pam.d/passwd(注意添加位置)
添加:password requisite pam_pwquality.so enforce_for_root minlen=8 minclass=4
修改 /etc/security/pwquality.conf
vim /etc/security/pwquality.conf
添加 dictcheck = 0 参数
验证结果。
修改管理员账号口令为 123456a、qwe123QWE!@#,验证是否修改成功。
效果如下图:
设置密码复杂度

6、口令最长生存期策略

以【设置操作系统的账户口令的最长生存期不长于 90 天】为例。
修改/etc/login.defs 配置文件
vim /etc/login.defs
PASS_MAX_DAYS 90 ##密码设置最长有效期 90 天
PASS_MIN_DAYS 0 ##密码设置最短有效期
PASS_MIN_LEN 5 ##设置密码最小长度
PASS_WARN_AGE 7 ##提前多少天警告用户密码即将过期
示例如下图:
设置口令最长生存期策略

7、ssh 登录密码输入错误锁定

以【设置用户 ssh 登录密码输入错误 2 次锁定 100 秒】为例。
更改配置文件/etc/pam.d/sshd
 vim /etc/pam.d/sshd
auth required pam_faillock.so preauth audit deny=2 even_deny_root unlock_time=100
auth [success=1 default=bad] pam_unix.so
auth [default=die] pam_faillock.so authfail audit deny=2 even_deny_root unlock_time=100
auth sufficient pam_faillock.so authsucc audit deny=2 even_deny_root unlock_time=100
设置ssh 登录密码输入错误锁定
ssh 连接输入两次连接密码在输入正确密码无法登陆等待 100 秒再次输入正确密码登陆成功

8、PAM 登录认证

以【PAM 模块认证】为例。
修改/etc/ssh/sshd_config 文件将 UsePAM 设置为“yes”
# vim /etc/ssh/sshd_config
示例如下图:
设置PAM登录认证

9、禁止空密码用户登录

以【空密码用户是指口令为空的用户,基于安全考虑禁止空密码用户登录系统】为例。
修改/etc/ssh/sshd_config 配置文件将 PermitEmptyPasswords 设置为“no”
# vim /etc/ssh/sshd_config
示例如下图:
设置禁止空密码用户登录

10、重置用户登陆失败次数

以【用户登陆成功后重置登陆失败次数为零】为例。
修改/etc/pam.d 目录下 password-auth,system-auth 添加配置如下:
#   vim /etc/pam.d/password-auth
auth sufficient pam_faillock.so authsucc audit deny=5 even_deny_root unlock_time=300
#   vim /etc/pam.d/system-auth
auth sufficient pam_faillock.so authsucc audit deny=5 even_deny_root unlock_time=300
示例如下图:
设置重置用户登陆失败次数

 ©统信软件技术有限公司。访问者可将本网站提供的内容或服务用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯本网站及相关权利人的合法权利。除此以外,将本网站任何内容或服务进行转载,须备注:该文档出自【faq.uniontech.com】统信软件知识分享平台。否则统信软件将追究相关版权责任。

2023-02-08
4 5