背景:按要求需要对服务器之类的进行安全加固,一下内容为我在网上找到的资料整理而成,并且在自己的本地测试机上试过的。话不多说,直接放内容了。


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