首页 > 系统服务 > 详细

BVS安全检测之检查Linux是否口令生存周期

时间:2017-03-03 11:45:54      阅读:595      评论:0      收藏:0      [点我收藏+]

口令生存周期的配置文件为 /etc/login.defs

vim 打开该文件,命令模式下输入 /PASS_MAX_DAYS 找到该配置信息的位置

我的Linux操作系统默认显示的是99999,说明我当前用户密码的生存周期为99999天

默认配置如图:

技术分享

PASS_MAX_DAYS为密码最长使用时间,多少天后会有提醒

PASS_MIN_DAYS为密码最短使用时间,意思是多少天内不能修改密码

PASS_WARN_AGE密码过期后会提醒多少天,这些天内还没有修改密码的用户,账户会被冻结

 

我们可以输入 cat /etc/shadow 查看当前用户的这些信息

技术分享

0为PASS_MIN_DAYS, 99999为PASS_MAX_DAYS, 7为PASS_WARN_AGE

和配置的信息一样。

 

现在我们的安全检查要求用户的Linux系统的口令生存周期时间应该小于等于标准值90,

请编写一个脚本测试该Linux系统是否满足该安全条件:

 1 #!/usr/bin/env python3
 2 
 3 import re
 4 
 5 def piv(filename):
 6         with open(filename, "r") as f:
 7                 text = f.read()
 8         result = re.search("PASS_MAX_DAYS\s*(\d+)",text).group(1)
 9         if int(result) <= 90:
10                 return True
11         return False
12 
13 if __name__ == "__main__":
14         filename = "/etc/login.defs"
15         print(piv(filename))

打开文件/etc/login.defs并对其内容进行读取,在使用正则表达式匹配文中的PASS_MAX_DAYS 99999,

以此得到后面的数字,再对其进行判断即可。只要它小于等于90,则满足安全的条件。

这里的正则表达式为  "PASS_MAX_DAYS\s*(\d+)",

意思就是PASS_MAX_DAYS后跟0个或多个空白字符,再跟1个或多个数字。将数字子组话(加括号),方便提取。

 

同样PASS_WARN_AGE的要求值>=30的检测方法是相同的。

 1 #!/usr/bin/env python3
 2 
 3 import re
 4 
 5 def pass_warn_age(filename):
 6         with open(filename) as f:
 7                 text = f.read()
 8         result = re.search("PASS_WARN_AGE\s*(\d+)",text).group(1)
 9         if int(result) >= 30:
10                 return True
11         return False
12 
13 if __name__ == "__main__":
14         filename = "/etc/login.defs"
15         print(pass_warn_age(filename))

 

BVS安全检测之检查Linux是否口令生存周期

原文:http://www.cnblogs.com/xautxuqiang/p/6495619.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!