【系统安全】密码规则和登录限制_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

智能推荐

古月居教程之:“robot_marm”包直接编译出错_github guyueju-程序员宅基地

文章浏览阅读418次,点赞4次,收藏2次。使用古月居的“robot_marm”包直接编译出错在ubuntu18,自己建的工作空间里面,将“ros_exploring-master”整个功能包拉进去工作空间编译发生报错,因为只需要用到“robot_marm”这个包(跟着书上做机械臂仿真),但是只用这个包也报错,就找了下解决方法。其中是因为少了两个数据结构的包,git clone到工作空间的src文件夹下就好了。git clone https://github.com/ros-interactive-manipulation/manipulati_github guyueju

5、JSP面试题总结-程序员宅基地

文章浏览阅读2.5k次。文章目录1、静态包含和动态包含的区别2、jsp有哪些内置对象?作用分别是什么?1、静态包含和动态包含的区别语法:静态包含:include指令是静态包含,静态包含的意思就是:把文件的代码内容都包含进来,再编译!<%@ include file=""%>动态包含:include行为是动态包含。其实include行为就是封装了request.getRequestDispatcher(String url).include(request,response) <jsp: include _jsp面试

google vr 入门之制作简易的VR播放器(三),android学生管理系统项目视频_自己的android app中集成vr浏览器-程序员宅基地

文章浏览阅读192次。// 使用google vr 添加的compile ‘com.google.vr:sdk-base:1.40.0’compile ‘com.google.vr:sdk-audio:1.40.0’compile ‘com.google.vr:sdk-videowidget:1.40.0’添加这些依赖包之后google给我们的生成了哪些library库呢?![](https://img-blog.csdn.net/20170427162756208?watermark/2/text/aHR0cDovL_自己的android app中集成vr浏览器

db和dbm_it dbm-程序员宅基地

文章浏览阅读1.8k次。DB :DB是一个纯计数单位:dB = 10logX。dB的意义其实再简单不过了,就是把一个很大(后面跟一长串0的)或者很小(前面有一长串0的)的数比较简短地表示出来。如:X = 1000000000000000(多少个了?)= 10logX = 150 dB X = 0.000000000000001 = 10logX = -150 dB DB在缺省情况下总是定义功率单位,以 1_it dbm

芯片验证从零开始系列(一)——芯片验证概论-程序员宅基地

文章浏览阅读1w次,点赞7次,收藏78次。芯片验证从零开始系列(一)——芯片验证概论芯片开发流程动态验证技术静态验证技术Emulation和FPGA原型开发由于最近一个比赛要用到UVM验证,顺便多一门以后求职的手艺,准备系统地学习一下SV和UVM,也可以为之后的毕业论文和发展方向做一些准备。芯片开发流程1)市场人员和客户沟通确定用户需求2)系统设计人员按照功能划分为各个子系统3)子系统由设计团队开发实现4)验证人员对设计功能展开验证,发现设计缺陷,交由设计人员修正5)验证没有出现漏洞后,交由后端人员进行综合,布局布线6)后端人员将_芯片验证

RabbitMQ详解(一):RabbitMQ相关概念_obpmq-程序员宅基地

文章浏览阅读8.9k次,点赞24次,收藏26次。RabbitMQ是目前非常热门的一款消息中间件,不管是互联网大厂还是中小企业都在大量使用。作为一名合格的开发者,有必要对RabbitMQ有所了解,本系列是RabbitMQ快速入门文章,主要内容包括RabbitMQ是什么、RabbitMQ核心概念、五种消息模型、用Docker安装RabbitMQ等。_obpmq

随便推点

商业智能软件对比评测: FineBI 和 Tableau -程序员宅基地

文章浏览阅读358次。FineBI和Tableau是比较好的自助式商业智能软件,功能都很强大,是企业数据可视化不可或缺的利器,但两款产品还是有非常大的区别的,例如Tableau的功能全面且深入,更适合专业的数据分析人员,而FineBI则是面向普通的业务人员,数据分析过程更人性化,更简单和易用,并为企业提供了全面的数据管理和用户管理策略。下面对这两款商业智能软件做个对比评测。一、产品理念FineBI是帆软公司推出的自助..._centos7安装finebi

JQuery Ajax Maven [A]_ajaxmaven-程序员宅基地

文章浏览阅读190次。2020 JQuery Ajax Maven Spring MyBatis [A]JQuery + JQueryAjaxJQuery + JQueryAjax 1: JQueryJQuery + JQueryAjax 2: JQueryAjaxMavenSpringMVC MyBatisSpringMVC MyBatis 1: SpringMVCSpringMVC MyBatis 2: MyBatisSpringMVC MyBatis 3: MavenSpringMVC MyBatis 4: Spring_ajaxmaven

通信原理与MATLAB(八):2PSK的调制解调_psk解调-程序员宅基地

文章浏览阅读1.9w次,点赞60次,收藏310次。通信原理和MATLAB_psk解调

Halcon 3D定位方法-程序员宅基地

文章浏览阅读1.9k次。Descriptor-based Matchinguncalibrated mathcing return perspective map,calibrated matching return pose.find_calib_descriptor_model()Deformable MatchingFind objects with perspective distort..._halcon 3d定位

用 Hadoop 进行分布式并行编程, 第 3 部分_hdfs dfs -copyfromlocal /home/hadoop/temp/* /tempd-程序员宅基地

文章浏览阅读706次。Hadoop 是一个实现了 MapReduce 计算模型的开源分布式并行编程框架,借助于 Hadoop, 程序员可以轻松地编写分布式并行程序,将其运行于计算机集群上,完成海量数据的计算。在本文中,详细介绍了如何部署 Hadoop 分布式运行环境,如何让程序分布式运行于多台普通的计算机上,如何使用 IBM MapReduce Tools 轻松地将 MapReduce 程序部署到 Hadoop 分_hdfs dfs -copyfromlocal /home/hadoop/temp/* /tempdir

Linux进阶 apache服务器;虚拟主机_虚拟机安装开启httpd服务-程序员宅基地

文章浏览阅读309次。1.关闭防火墙systemctlstopfirewalld(暂时关闭,重启后恢复)修改前------将index.html改为hello.html。2.设置宽容模式setenforce0(暂时性设置)配置同一ip不同端口的虚拟主机访问apache服务器。(1)安装httpd(先挂载,用yum安装)(4)修改配置文件httpd.html。(3)创建文件hello.html。(2)启动httpd服务。(5)重启httpd服务。(5)重启httpd服务。(5)重启httpd服务。..._虚拟机安装开启httpd服务

推荐文章

热门文章

相关标签