背景:按要求需要对服务器之类的进行安全加固,一下内容为我在网上找到的资料整理而成,并且在自己的本地测试机上试过的。话不多说,直接放内容了。
1.用户有效期和长度设置
通过修改Linux系统中的/etc/login.defs配置文件来设置系统全局有效期。
vim /etc/login.defs
在编辑器中找到PASS_MAX_DAYS和PASS_MIN_DAYS参数,并分别设置其有效期和密码长度值:
PASS_MAX_DAYS 90
PASS_MIN_LEN 8
保存文件并退出。
2.用户密码复杂度
在大多数 Linux 系统中,我们可以用 PAM(可插拔认证模块pluggable authentication module)来加强密码策略。
在下面的路径可以找到这个文件。
在红帽系列的系统中,路径:/etc/pam.d/system-auth。
Debian 系列的系统中,路径:/etc/pam.d/common-password。
在CentOS 7上实现密码复杂度策略设置,主要是使用PAM pwquality模块完成
设置复杂度策略
vim /etc/pam.d/system-auth
找到包含pam_pwquality.so模块的行,将原有行注释并修改为如下的新配置,密码长度最少12位,至少包含一个大写字母,一个小写字母,一个数字,一个特殊符号。
password requisite pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type= minlen=12 lcredit=-1 ucredit=-1 dcredit=-1 ocredit=-1 enforce_for_root
minlen=12 密码最小长度为8个字符。
lcredit=-1 密码应包含的小写字母的至少一个
ucredit=-1 密码应包含的大写字母至少一个
dcredit=-1 将密码包含的数字至少为一个
ocredit=-1 设置其他符号的最小数量,例如@,#、! $%等,至少要有一个
enforce_for_root 确保即使是root用户设置密码,也应强制执行复杂性策略。
3.登录失败次数限制
在下面的路径可以找到这个文件。
在红帽系列的系统中,路径:/etc/pam.d/system-auth。
Debian 系列的系统中,路径:/etc/pam.d/common-password。
设置复杂度策略
vim /etc/pam.d/system-auth
添加或修改配置以包含pam_tally2.so模块。
# 在文件中添加或修改以下行
auth required pam_tally2.so onerr=fail deny=5 unlock_time=300 even_deny_root root_unlock_time=300
解释:
onerr=fail:出现错误时计数增加。
deny=5:在用户被锁定前允许失败的次数。
unlock_time=300:锁定账户后,在再次尝试登录之前需要等待的秒数。
even_deny_root:是否对root用户应用相同的限制,如果不设置,只有普通用户受此限制。
root_unlock_time:如果even_deny_root被设置,这个选项定义了解锁root账户的时间。
4.设置服务器操作系统日志留存时间最少6个月
4.1.修改/etc/logrotate.conf文件
将全局的weekly下的rotate 4改为rotate 24,表示6个月;
将指定文件的monthly下的rotate 1改为rotate 6,表示6个月。
4.2.重启日志服务
service rsyslog restart