【系统安全】密码规则和登录限制_system-auth-ac-程序员宅基地

技术标签: 密码  安全  系统安全  登录限制  锁定用户  

作者:【吴业亮】云计算开发工程师
博客:http://blog.csdn.net/wylfengyujiancheng

一、设置密码规则
1、密码长度、有效期
/etc/login.defs文件是当创建用户时的一些规划,比如创建用户时,是否需要家目录,UID和GID的范围;用户的期限等等,这个文件是可以通过root来定义的
PASS_MAX_DAYS 90 —-两次改变密码之间相距的最大天数,密码有效最大天数
PASS_MIN_DAYS 6 —-两次改变密码之间相距的最小天数,为零时代表任何时候都可以更改密码
PASS_MIN_LEN 6 —-密码最小长度
PASS_WARN_AGE 30 —-在密码过期之前警告的天数
注意:以上只对之后新增的用户有效,如果要修改已存在的用户密码规则,需要使用chage命令

2、查看用户的密码规则
chage -l test
最近一次密码修改时间 : 6月 08, 2017
密码过期时间 : 9月 06, 2017
密码失效时间 :从不
帐户过期时间 :从不
两次改变密码之间相距的最小天数 :6
两次改变密码之间相距的最大天数 :90
在密码过期之前警告的天数 :30
3、修改方法:

# chage -M 90 -m 6 -W 30 test

注意:不要用该命令给root用户加上有效期,如果密码过期,再加上后文说的/etc/shadow文件加锁禁止修改,会导致root提示修改密码,无法成功修改密码,从而无法登陆。
如果要修改密码过期时间为“从不”

# chage -M 99999 test

4、设置密码最大使用时间

[root@server ~]# vi /etc/login.defs
PASS_MAX_DAYS 60

5、两次改变密码之间相距的最小天数

[root@server ~]# vi /etc/login.defs
PASS_MIN_DAYS 2

6、在密码过期之前警告的天数

[root@server ~]# vi /etc/login.defs
PASS_WARN_AGE 7

7、五次更改密码不能有重复,并且每次修改密码都会将历史密码记录在/etc/security/opasswd文件中

[root@server ~]# vi /etc/pam.d/system-auth
password     sufficient     pam_unix.so sha512 shadow nullok try_first_pass use_authtok remember=5

8、设置最小的密码长度为8

[root@server ~]# authconfig --passminlen=8 --update

查看配置结果

[root@server ~]# grep "^minlen" /etc/security/pwquality.conf 
minlen = 8

9、设置密码必须满足同时有两种特殊字符(大写、小写、数字、特殊字符)

[root@server ~]# authconfig --passminclass=2 --update

查看配置结果

[root@server ~]# grep "^minclass" /etc/security/pwquality.conf 
minclass = 2

10、设置密码中只允许两个连续的字符相同

[root@server ~]# authconfig --passmaxrepeat=2 --update

查看配置结果

[root@server ~]# grep "^maxrepeat" /etc/security/pwquality.conf 
maxrepeat = 2

11、在新密码中设置同一类的允许连续字符的最大数目

[root@server ~]# authconfig --passmaxclassrepeat=4 --update

查看配置结果

[root@server ~]# grep "^maxclassrepeat" /etc/security/pwquality.conf 
maxclassrepeat = 4

12、在新密码中至少需要一个小写字符。

[root@server ~]# authconfig --enablereqlower --update

查看配置结果

[root@server ~]# grep "^lcredit" /etc/security/pwquality.conf 
lcredit = -1

13、在新密码中至少需要一个大写字符

[root@server ~]# authconfig --enablerequpper --update

查看配置结果

[root@server ~]# grep "^ucredit" /etc/security/pwquality.conf 
ucredit = -1

14、在新密码中至少需要一个数字

[root@server ~]# authconfig --enablereqdigit --update

查看配置结果

[root@server ~]# grep "^dcredit" /etc/security/pwquality.conf 
dcredit = -1

15、密码包括至少一个特殊字符
查看配置结果

[root@server ~]# grep "^ocredit" /etc/security/pwquality.conf 
ocredit = -1

16、在新密码中设置单调字符序列的最大长度

[root@server ~]# vi /etc/security/pwquality.conf
#文件末尾新增
maxsequence = 3

17、设置新密码中不能出现在旧密码中的字符数

[root@server ~]# vi /etc/security/pwquality.conf
#文件末尾新增
difok = 5

18、检查来自用户passwd条目的GECOS字段的长度超过3个字符的字是否包含在新密码中。

[root@server ~]# vi /etc/security/pwquality.conf
#文件末尾新增
gecoscheck = 1

19、设置不能包含在密码中的Ssace分隔的单词列表

[root@server ~]# vi /etc/security/pwquality.conf
#文件末尾新增
badwords = denywords1 denywords2 denywords3

20、为新密码设置hash / crypt算法。 (默认为sha512)


[root@server ~]# authconfig --test | grep hashing 
password hashing algorithm is md5
#修改为sha512
[root@server ~]# authconfig --passalgo=sha512 --update
[root@server ~]# authconfig --test | grep hashing 
password hashing algorithm is sha512

二、账户锁定策略实现
策略要求如下:
设定锁定的阈值为5次
锁定时间为5分钟即300秒
必须所有用户都受限,包括root
1、修改配置文件/etc/pam.d/system-auth-ac,写入策略

root@server ~]# vi /etc/pam.d/system-auth-ac
auth        required      pam_env.so
auth        required      pam_tally2.so even_deny_root deny=5 unlock_time=60 
auth        sufficient    pam_unix.so nullok try_first_pass
auth        requisite     pam_succeed_if.so uid >= 1000 quiet_success
auth        required      pam_deny.so

account     required      pam_unix.so
account     required      pam_tally2.so
account     sufficient    pam_localuser.so
account     sufficient    pam_succeed_if.so uid < 1000 quiet
account     required      pam_permit.so

2、修改配置文件/etc/pam.d/password-auth-ac

[root@server ~]# vi /etc/pam.d/password-auth-ac
auth        required      pam_env.so
auth        required      pam_tally2.so deny=5 unlock_time=60
auth        sufficient    pam_unix.so nullok try_first_pass
auth        requisite     pam_succeed_if.so uid >= 1000 quiet_success
auth        required      pam_deny.so

account     required      pam_unix.so
account     required      pam_tally2.so
account     sufficient    pam_localuser.so
account     sufficient    pam_succeed_if.so uid < 1000 quiet
account     required      pam_permit.so

3、查看用户锁定状态

[root@ server pam.d]# pam_tally2 -u wyl
Login           Failures Latest failure     From
wyl                 7    12/20/16 14:02:55  192.168.10.86

4、解锁状态

[root@ server ~]# pam_tally2 -r -u  wyl
Login           Failures Latest failure     From
wyl                 0   

参考:
https://www.server-world.info/en/note?os=CentOS_7&p=password

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/wylfengyujiancheng/article/details/53998633

智能推荐

ITK/VTK对DICOM文件的读取_sitk读取mnc文件-程序员宅基地

文章浏览阅读6.6k次。在ITK中,对dicom的读取使用的是GDCM库,而在VTK库中使用的是直接是DicomFileReader库。在ITK中,读取DICOM文件的程序示例如下:_sitk读取mnc文件

求二维数组a[3][4]中的最大数和最小数_在二维数组中查找最大值和最小值并输出-程序员宅基地

文章浏览阅读2.2k次。求二维数组a[3][4]中的最大数和最小数#include<stdio.h>void main(){ int a[3][4],i,j,max,min; //输入 for(i=0;i<3;i++){ for(j=0;j<4;j++){ scanf("%d",&a[i][j]); } } //找最大数、最小数 min=a[0][0]; max=a[0][0]; for(i=0;i<3;i++){ for(j=0;j<4;j++){_在二维数组中查找最大值和最小值并输出

JUC锁——共享锁和可重入读写锁_共享锁 支持重入吗-程序员宅基地

文章浏览阅读452次。概要  JUC中的共享锁有CountDownLatch、CyclicBarrier、Semaphore、ReentrantReadWriteLock等,本章会以ReentrantReadWriteLock为蓝本对共享锁进行说明。ReadWriteLock 和 ReentrantReadWriteLock介绍  ReadWriteLock,顾名思义,是读写锁。它维护了一对相关的锁——“读取锁”..._共享锁 支持重入吗

Android内核开发:为什么刷机后系统第一次启动会很慢?_手机刷机完后开机慢-程序员宅基地

文章浏览阅读218次。转载自http://blog.51cto.com/ticktick/1677216 在做Android内核开发的过程中,我们会发现,每次编译完系统源码,烧录到设备/手机中后,第一次启动都会很慢很慢,要好几分钟甚至十几分钟,为什么会出现这样的现象呢?系统刷机后第一次启动与后面再次启动有什么不同呢?要解答这个问题,首先我们需要了解一下Android Dalvik虚拟机,以及Dalvik-cache。..._手机刷机完后开机慢

数据验证技术的应用场景:如何实现区块链网络的可扩展性-程序员宅基地

文章浏览阅读995次,点赞23次,收藏24次。1.背景介绍区块链技术作为一种去中心化的分布式账本,具有很高的潜力。然而,随着区块链网络的扩展和应用,一些挑战也随之而来。其中,可扩展性是一个非常重要的问题。数据验证技术在这方面发挥着关键作用。本文将从以下几个方面进行探讨:背景介绍核心概念与联系核心算法原理和具体操作步骤以及数学模型公式详细讲解具体代码实例和详细解释说明未来发展趋势与挑战附录常见问题与解答1.背景介绍..._区块链可扩展性问题

迁移学习在图像生成与修复中的应用-程序员宅基地

文章浏览阅读873次,点赞11次,收藏5次。1.背景介绍图像生成和修复是计算机视觉领域的重要研究方向,它们在人工智能、计算机视觉和图像处理等领域具有广泛的应用。图像生成涉及到通过某种算法或模型生成新的图像,而图像修复则涉及到通过某种方法修复损坏或缺失的图像。迁移学习是一种深度学习技术,它可以帮助我们在有限的数据集上训练更好的模型,并在新的任务上获得更好的性能。在这篇文章中,我们将讨论迁移学习在图像生成和修复中的应用,以及其核心概念、算法...

随便推点

Visual Studio 2022 从下载安装到如何使用的全面讲解 (图文详解)_vs2022-程序员宅基地

文章浏览阅读1.7k次,点赞44次,收藏49次。Visual Studio 2022做为一款集成开发软件是一款非常好用的代码开发软件,而且可调试让我们快速找到错误!和理解代码出了那些问题!可以说是初学者的必备利器!_vs2022

如何复制word的图文到TinyMCE中自动上传_tinymce复制上传word文档-程序员宅基地

文章浏览阅读203次。这种方法是servlet,编写好在web.xml里配置servlet-class和servlet-mapping即可使用后台(服务端)java服务代码:(上传至ROOT/lqxcPics文件夹下)<%@pagelanguage="java"import="java.util.*"pageEncoding="utf-8"%><%@pagecontentType="text/html;charset=utf-8"%><%@pageim..._tinymce复制上传word文档

jBPM4.2 安装到tomcat 和 mysql上的步骤。并且创建一个最简单的应用-程序员宅基地

文章浏览阅读2.4k次。1.前提条件已经安装好 jdk1.6,并且配置好已经下载好jbpm4.2,并且解压。已经安装好tomcat6已经安装好 mysql5.1已经安装好 ant1.7已经安装好 eclipse-jee-galileo-win32 2.设置ant的环境变量 ANT_HOME=D:/Program Files/Apa_jbpm4.2

keepalived简易安装及配置文件详解_dynamic_interfaces allow_if_changes-程序员宅基地

文章浏览阅读2k次。设置主机名称[root@localhost keepalived]# hostnamectl set-hostname node1[root@localhost keepalived]# hostnamenode1[root@localhost data]# hostnamectl set-hostname node2[root@localhost data]# hostnamenode2keepalived源码版本[root@node2 ~]# ll /data/keepalive._dynamic_interfaces allow_if_changes

高速电机的特性及工作原理(深度总结)_高速电机原理图-程序员宅基地

文章浏览阅读1.4w次,点赞3次,收藏18次。高速电机的命名定义:高速电机,也称主轴电机,广义范围来讲,高速电机又可以被称为电主轴,高速电主轴等等,通常是指转速超过10000r/min的电机,目前最高转速可达300000r/min高速电机又分为:AC交流异步电机 、DC同步永磁电机、BLDC无刷电机、bldc变频电机等高速电机优点:一、由于转速高,所以电机功率密度高,而体积远小于同等功率的普通电机,可以有效的节约材料;二、..._高速电机原理图

C语言的编程机制-程序员宅基地

文章浏览阅读48次。V。_c语言的编程机制

推荐文章

热门文章

相关标签