密码策略介绍
密码策略是操作系统针对系统安全提供的一种安全机制,就好像linux操作系统不提供超级用户登录一样,密码策略包括:密码最小长度、密码使用期限、历史密码、密码复杂度等,在企业里面都是要求对操作系统进行密码策略进行配置的,而且要求密码复杂度。企业中做等级保护测评2级以上都是要求有密码策略的,之前我有过一次做等保测评师的经历,在企业里面几乎没有任何一个企业在使用这个密码策略,很郁闷不知道是工程师们不知道还是什么原因,在这里我就为大家简单介绍一下如何设置密码策略
根据相关要求密码需要满足以下几点要求:
- 用户有责任和义务妥善保管其个人帐号和密码,不得在任何场合随意公开自己的帐号和密码,不得泄漏他人。由于密码泄漏造成的不良后果由帐号拥有人承担相关责任
- 密码长度不得少于6位
- 密码由数字、标点、大小写字母和特殊符号组成,并具有必要的组合复杂度,禁止使用连续或相同的数字、字母组合(如123456等)和其他易于破译的组合作为密码。
- 密码不得以任何形式的明文存放在主机电子文档中,不得以明文形式在电子邮件、传真中传播。
- 系统管理人员在建立帐号时,对所分配帐号的初始密码设置为第一次登录强制修改。对于不能强制修改密码的系统,系统管理员创建帐号后立即通知用户修改密码,用户在第一次登录系统并修改密码之后反馈系统管理员,并由系统管理员进行复核。
- 用户应定期(至少每季度一次)进行密码的修改,并且同一密码不能反复使用。
。。。。。。。。。。。。。。等,具体要求可以查看等保2.0密码技术应用分析
windows设置密码策略
windows密码策略有以下这些设置:
- 密码必须符合复杂性要求
- 密码长度最小值
- 密码最短使用期限
- 密码最长使用期限
- 强制密码历史
- 用可还原的加密存储密码
接下来对这些配置进行修改
打开管理工具
打开本地安全策略-账户策略-密码策略
然后就可以根据自己的需求去进行调整,下面是我推荐大家进行设置的,仅供参考
Linux系统设置密码策略
对于linux可能大家都很少知道有密码策略这回事吧,好多人都认为linux安全机制已经很强大了,而且大多数linux采用可插拔密码认证来加强密码的安全策略,下面就来说说linux的密码策略,linux密码策略要比windows密码策略要强大许多
linux密码策略有以下设置:
- 密码的最大有效期
- 密码最长使用时间
- 密码最小长度
- 密码失效前提前多少天进行提醒
- 密码大小写以及数字、特殊字符等限制
- 新旧密码不能相同
- 新旧密码长度不能相同
- 账号锁定时间
- 账号自动解锁时间
密码策略配置文件路径:
- 在centos/redhat等系统中路径:
/etc/pam.d/system-auth
- ubuntu等系统中路径:
/etc/pam.d/common-password
文件内容如下:(版本不同,内容有一些差别)
# /etc/pam.d/common-password - password-related modules common to all services
# This file is included from other service-specific PAM config files,
# and should contain a list of modules that define the services to be
# used to change user passwords. The default is pam_unix.# Explanation of pam_unix options:
# The "sha512" option enables salted SHA512 passwords. Without this option,
# the default is Unix crypt. Prior releases used the option "md5".
# The "obscure" option replaces the old `OBSCURE_CHECKS_ENAB' option in
# login.defs.
# See the pam_unix manpage for other options.# As of pam 1.0.1-6, this file is managed by pam-auth-update by default.
# To take advantage of this, it is recommended that you configure any
# local modules either before or after the default block, and use
# pam-auth-update to manage selection of other modules. See
# pam-auth-update(8) for details.# here are the per-package modules (the "Primary" block)
password [success=1 default=ignore] pam_unix.so obscure sha512
# here's the fallback if no module succeeds
password requisite pam_deny.so
# prime the stack with a positive return value if there isn't one already;
# this avoids us returning an error just because nothing sets a success code
# since the modules above will each just jump around
password required pam_permit.so
# and here are more per-package modules (the "Additional" block)
# end of pam-auth-update config
密码过期时间以及有效期等配置文件:/etc/login.defs,文件部分内容:
PASS_MAX_DAYS
:一个密码可使用的最大天数。
PASS_MIN_DAYS
:两次密码修改之间最小的间隔天数。
PASS_MIN_LEN
:密码最小长度。
PASS_WARN_AGE
:密码过期前给出警告的天数
下面为大家举例说明linux用户密码策略:
- 设置密码最大使用时间(PASS_MAX_DAYS)
这个用来限制密码最大可以使用的天数。时间到了会强制进行密码锁定。如果忘记修改,那么就无法登录系统。需要使用管理员账户进行解锁后才能继续使用。这个可以在 /etc/login.defs
文件中的PASS_MAX_DAYS参数设置。在企业中一般把这个值设置为30天,也就是一个月修改一次密码。
root@test:/etc# vim login.defs
PASS_MAX_DAYS 30 //单位为天数
- 设置密码最小天数(PASS_MIN_DAYS)
这个是限制多长时间无法进行密码修改。当值为15时,表示15天内无法修改密码,也就是两次密码修改中间最少隔15天,这个可以在 /etc/login.defs
文件中PASS_MIN_DAYS参数设置。企业中一般不对此项进行控制,这个根据自己需求进行修改,我这里设置10天。
root@test:/etc# vim login.defs
PASS_MIN_DAYS 10 //单位为天数
- 设置密码过期前警告(
PASS_WARN_AGE
)
这个用来提醒用户该进行密码修改了,也就是在密码即将过期的时候,会给用户一个警告提示,在未到最大密码使用时间,会每天进行提醒,这可以提醒用户在密码过期前修改他们的密码,否则我们就需要联系管理员来解锁密码。这个可以在 /etc/login.defs
文件中PASS_WARN_AGE参数
设置。 这个企业中一般设置为3天,我这里就设置为3天
root@test:/etc# vim login.defs
PASS_WARN_AGE 3 //单位为天数
- 避免重复使用旧密码
这个用来防止更改密码时设置为旧密码,寻找同时包含“password”和"pam_unix.so"的行,然后再这行后面加上“remember=天数”。这将防止N个最近使用过的密码被用来设置为新密码,这个配置文件是在 /ect/pam.d/common-password 文件中(主要,centos/redhat需要修改:/etc/pam.d/system-auth文件
),这个在企业中一般设置为5,我这里就设置5
ubuntu:
root@test/etc# vim pam.d/common-password
password [success=1 default=ignore] pam_unix.so obscure sha512 remember=5
centos/redhat:
root@test/etc# vim pam.d/common-password
password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok remember=5
- 设置密码复杂度
这个用来控制密码的复杂程度的,应安全性要求,企业里面要求大小写、特殊字符、数字等最受三个进行组合并且长度最少为8。寻找同时包含“password”和“pam_cracklib.so”的一行,并在后面加上“ucredit=-1 lcredit=-2 dcredit=-1 ocredit=-1”。这将迫使你在密码中至少包括一个大写字母、两个小写字母、一个数字和一个符号。
ubuntu:
root@test/etc# vim pam.d/common-password
password requisite pam_cracklib.so retry=3 minlen=10 difok=3 ucredit=-1 lcredit=-2 dcredit=-1 ocredit=-1
centos/redhat:
root@test/etc# vim pam.d/system-auth
password requisite pam_cracklib.so retry=3 minlen=10 difok=3 ucredit=-1 lcredit=-2 dcredit=-1 ocredit=-1