Linux登录访问控制

本文详细介绍了如何在Linux系统中通过login.defs文件管理和设置用户密码的有效期,包括PASS_MAX_DAYS等参数的修改。此外,还讲述了如何通过pam.d/system-auth和pam_tally2模块实现密码复杂度规则、登录失败锁定策略等安全措施。
摘要由CSDN通过智能技术生成

Linux系统下的用户密码的有效期

可以修改密码可以通过login.defs文件控制。设置密码过期期限(默认情况下,用户的密码永不过期。)
编辑 /etc/login.defs 文件,可以设置当前密码的有效期限,具体变量如下所示:

# 查看默认配置
[root@iZm5e7avacv1htxtp7qbdyZ etc]# cat login.defs | grep PASS*
#       PASS_MAX_DAYS   Maximum number of days a password may be used.
#       PASS_MIN_DAYS   Minimum number of days allowed between password changes.
#       PASS_MIN_LEN    Minimum acceptable password length.
#       PASS_WARN_AGE   Number of days warning given before a password expires.
PASS_MAX_DAYS   99999
PASS_MIN_DAYS   0
PASS_MIN_LEN    5
PASS_WARN_AGE   7

# 修改参数
[root@iZm5e7avacv1htxtp7qbdyZ etc]# sed -i -r 's/(PASS_MAX_DAYS)\s+[0-9]+/\1 90/' login.defs
[root@iZm5e7avacv1htxtp7qbdyZ etc]# sed -i -r 's/(PASS_MIN_LEN)\s+[0-9]+/\1 8/' login.defs

# 检查修改后的结果
[root@iZm5e7avacv1htxtp7qbdyZ etc]# cat login.defs | grep PASS*

参数说明:

  • PASS_MAX_DAYS:密码可以使用的最多天数
  • PASS_MIN_DAYS:密码更改之间允许的最小天数
  • PASS_MIN_LEN:可接受的最小密码长度
  • PASS_WARN_AGE:密码过期前发出警告的天数

在这里插入图片描述

linux 用户密码复杂度

用户密码复杂度规则设定,需要通过/etc/pam.d/system-auth文件去控制(针对的是普通用户修改密码会生效,root用户无效),centos6中默认是通过pam_cracklib.so模块控制,(在CentOS 7上实现密码复杂度策略设置,主要是使用PAM pwquality模块完成):

在这里插入图片描述

相关参数说明:

  • retry=3 定义登录/修改密码失败时,可以重试的次数;
  • type=xxx 当添加/修改密码时,系统给出的缺省提示符是什么,用来修改缺省的密码提示文本。默认是不修改的,如上例。
  • minlen=8 定义用户密码的最小长度为8位
  • ucredit=-1 定义用户密码中最少有2个大写字母 (数字为负数,表示至少有多少个大写字母;数字为正数,表示至多有多少个大写字母;下面同理)
  • lcredit=-1 定义用户密码中最少有4个小写字母
  • dcredit=-1 定义用户密码中最少有1个数字
  • ocredit=-1 定义用户密码中最少有1个特殊字符(除数字、字母之外)
  • remember=3 修改用户密码时最近5次用过的旧密码就不能重用了
  • difok=n 此选项用来规定新密码中必需有n个字符与旧密码不同。
  • minclass=n 此选项用来规定新密码中的字符类别的最小数目,字符一般有四种类别:数字、大写字母、小写字母,以及特殊字符。

linux 设置登录失败5次,锁定时间为5分钟

限制登录通常由/etc/pam.d/login文件限制的,可直接在#%PAM-1.0下,直接添加一行

# 不限制root用户
auth required pam_tally2.so deny=3 unlock_time=5
# 限制root用户
auth required pam_tally2.so deny=3 unlock_time=5 even_deny_root root_unlock_time=10
  1. 本文使用的是 pam_tally2 模块,如果不支持 pam_tally2 模块可以使用 pam_tally 模块,不同的模块设置不同,请参考模块使用方法进行设置

  2. 也可以直接在/etc/pam.d/system-auth中设

    auth     required  pam_tally2.so   onerr=fail  unlock_time=1800  no_magic_root
    account  required  pam_tally2.so   deny=5  unlock_time=1800 no_magic_root  even_deny_root_account  per_user  reset
    

    参数说明:

    • auth: 表示这是认证阶段的规则。
    • required: 表示此模块是必需的,如果它失败,则认证失败。
    • pam_tally.so: 是PAM模块,用于跟踪用户登录失败的次数。
    • onerr=fail: 如果pam_tally.so模块遇到错误,则认证失败。
    • Unlock_time=1800: 指定用户账户在被锁定后多长时间(以秒为单位)自动解锁。这里是1800秒,即30分钟-
    • no_magic_root: 禁止root用户使用特殊权限来绕过登录失败次数的限制。
    • account: 表示这是账户管理阶段的规则。
    • deny=5: 指定在连续登录失败5次后,用户账户将被锁定。
    • even_deny_root_account: 即使对root用户也执行账户锁定策略。
    • per_user: 锁定策略是基于每个用户的,而不是全局的。
    • reset: 当用户成功登录后,重置登录失败计数器。
  3. 建议不要限制root用户,因为pam_tally没有解锁功能,哪怕配置了unlock_time也是不生效的

    1. 使用pam_tally2 -r -u username 手动解锁用户
    2. 使用pam_tally2 –u username查看用户错误登录次数
  4. 更多相关参数请参考 https://www.linux.org/docs/man8/pam_tally2.html

在这里插入图片描述

参考文档

  1. https://www.linux.org/docs/man8/pam_tally2.html

问题反馈

若对文中有任何的疑问,或者需要帮助可以通过以下方式进行反馈

  • 直接进行评论或者单独私聊

  • 发送邮件到:mr_xuansu@163.com

更多内容请关注微信公众号:萱蘇的运维日常

  • 22
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux SSH访问控制是指通过配置SSH服务器,限制哪些用户可以通过SSH协议远程登录服务器,并且可以进一步限制用户的权限和操作。下面是一些常见的Linux SSH访问控制方法: 1. 使用防火墙:可以使用iptables或者firewalld等防火墙工具,限制SSH服务只能从特定的IP地址或者IP地址段进行访问。 2. 修改SSH配置文件:可以通过修改SSH服务器的配置文件(通常是/etc/ssh/sshd_config),来限制SSH登录的用户和权限。以下是一些常见的配置选项: - AllowUsers:指定允许登录的用户列表,其他用户将被拒绝访问。 - DenyUsers:指定禁止登录的用户列表,其他用户将被允许访问。 - AllowGroups:指定允许登录的用户组列表,属于其他用户组的用户将被拒绝访问。 - DenyGroups:指定禁止登录的用户组列表,属于其他用户组的用户将被允许访问。 - PermitRootLogin:设置是否允许root用户通过SSH登录,建议禁止root登录以增加安全性。 3. 使用密钥认证:可以使用SSH密钥对进行认证,而不是使用密码。这种方式更加安全,可以通过配置文件(通常是~/.ssh/authorized_keys)来指定允许使用哪些密钥进行登录。 4. 使用限制登录shell:可以通过修改用户的登录shell,限制用户只能执行特定的命令或者脚本。例如,可以将用户的登录shell设置为/bin/false或者/sbin/nologin,这样用户只能通过SSH登录,但无法执行其他操作。 5. 使用PAM模块:可以使用PAM(Pluggable Authentication Modules)模块来对SSH登录进行更加细粒度的控制。通过配置PAM模块,可以实现诸如限制登录时间、限制登录次数、强制使用二次认证等功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值