Linux如何配置PAM认证_Linux PAM模块与登录控制【安全】-LINUX

PAM配置错误会导致Linux登录安全机制失效,需依次检查基础环境、配置SSH多层控制、启用IP/用户白名单、强制家目录创建与资源限制、部署密码强度策略。

如果您尝试强化Linux系统的登录安全机制,但无法通过标准方式控制用户认证流程,则可能是由于PAM(Pluggable Authentication Modules)配置未正确设置或模块调用顺序不当。以下是解决此问题的步骤:

一、确认PAM基础环境与配置目录结构

PAM依赖于/etc/pam.d/目录下的服务专属配置文件,每个文件对应一个PAM感知应用(如sshd、login、sudo),其内容不包含service字段,而由文件名隐式指定。系统模块默认位于/lib/security/或/lib64/security/,需确保路径下存在所需.so文件且权限为644。

1、检查PAM核心目录是否存在且可读:ls -ld /etc/pam.d/

2、验证关键模块是否就位:ls /lib/security/pam_unix.so /lib/security/pam_tally2.so 2>/dev/null || ls /lib64/security/pam_unix.so /lib64/security/pam_tally2.so 2>/dev/null

3、确认PAM库已加载:ldconfig -p | grep pam

二、配置SSH服务的多层登录控制

该方法通过组合account和auth类型模块,在SSH登录过程中实施账户状态检查与失败计数锁定,避免仅依赖密码验证的单点风险。

1、备份原始配置:cp /etc/pam.d/sshd /etc/pam.d/sshd.bak

2、在/etc/pam.d/sshd文件顶部插入账户限制规则:echo “account required pam_tally2.so deny=5 unlock_time=1800” >> /etc/pam.d/sshd

3、在auth段添加失败计数与认证链:echo “auth [default=die] pam_tally2.so deny=5 unlock_time=1800” >> /etc/pam.d/sshd

4、确保pam_unix.so作为基础认证模块存在且未被覆盖:grep -q “auth.*pam_unix.so” /etc/pam.d/sshd || sed -i ‘/^auth.*required.*pam_deny.so/ i\auth required pam_unix.so’ /etc/pam.d/sshd

三、启用基于访问策略的IP与用户白名单控制

该方法利用pam_access.so模块读取/etc/security/access.conf,实现细粒度的登录来源与用户身份匹配,适用于隔离管理网段或禁止特定系统账户远程登录。

1、启用access模块:echo “account required pam_access.so accessfile=/etc/security/access.conf” >> /etc/pam.d/sshd

2、创建并编辑访问策略文件:touch /etc/security/access.conf && chmod 644 /etc/security/access.conf

3、写入允许规则(示例:仅允许可信网段root登录,拒绝所有其他远程root):echo “+ : root : 192.168.10.0/24” >> /etc/security/access.conf && echo “- : root : ALL” >> /etc/security/access.conf

4、验证语法有效性:pam_access -f /etc/security/access.conf -d

四、强制首次登录自动创建家目录并设限资源使用

该方法结合session类型模块,在用户通过认证后立即初始化运行环境,避免因家目录缺失导致登录失败,同时防止资源耗尽攻击。

1、启用家目录自动创建:echo “session required pam_mkhomedir.so skel=/etc/skel umask=077” >> /etc/pam.d/sshd

2、限制单用户最大进程数与内存占用:echo “session required pam_limits.so” >> /etc/pam.d/sshd

3、配置具体限制值,在/etc/security/limits.conf中追加:echo “username hard nproc 100” >> /etc/security/limits.conf && echo “username hard as 524288” >> /etc/security/limits.conf

4、重启sshd服务使session规则生效:systemctl restart sshd

五、部署密码强度策略与历史复用拦截

该方法通过password类型模块在用户修改密码时强制执行复杂度校验与历史记录比对,阻断弱口令与旧密码重用行为。

1、在/etc/pam.d/system-auth中插入密码策略:echo “password requisite pam_pwquality.so retry=3 minlen=12 difok=5” >> /etc/pam.d/system-auth

2、启用密码历史记录,防止重复使用最近5次密码:echo “password required pam_pwhistory.so remember=5 use_authtok” >> /etc/pam.d/system-auth

3、设置最小更改间隔以防止绕过:echo “password [success=1 default=ignore] pam_succeed_if.so user ingroup nopasswdlogin” >> /etc/pam.d/system-auth

4、验证模块参数兼容性:pam_pwquality -t -f /etc/security/pwquality.conf

夏夕资源网专注于CMS网站模板,主流语言整站网站源码下载,网站建设相关教程分享,好用的软件素材整合下载,提供一站式便捷自助服务。
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,默认解压密码为"zy.lucklyus.top",如遇到无法解压的请联系管理员!
夏夕资源网-网站模板_免费源码_资源素材 » Linux如何配置PAM认证_Linux PAM模块与登录控制【安全】-LINUX
在线时间:12:00 - 22:00
关注微信公众号:微信公众号
站长邮箱:[email protected]
  • 运营天数: 1393+
  • 资源总数: 47989+
  • 用户总数: 1+
  • 今日更新: 0+
  • 访问次数: 4022020+
  • 本周更新: 0+
  • 最后更新: 2026-03-16

本站指数

×
  • 运营天数: 1393+
  • 资源总数: 47989+
  • 用户总数: 1+
  • 今日更新: 0+
  • 访问次数: 4022020+
  • 本周更新: 0+
  • 最后更新: 2026-03-16