今天汇总一些常用的安全基线配置,用于加强企业主机安全防护
下面这份清单,可以说是主机安全加固的“基础必修课”。无论团队规模大小,把这些配置做到位,安全防护的大门就算守住了第一道。咱们一项项看。

1. root账户远程登录限制
这几乎是所有安全规范的第一条。直接允许root远程登录,相当于把最高权限的钥匙挂在门外。落实这一步,前提是系统里至少得有一个能正常登录的普通用户账号。
vi /etc/ssh/sshd_config
将PermitRootLogin yes改为PermitRootLogin no
systemctl restart sshd
2. 设置口令生存周期
永远不换的密码,风险是持续累积的。通常要求用户口令的最大有效期不能超过90天,同时也要避免更换过于频繁。
# 修改前备份
cp /etc/login.defs /etc/login.defs.bak
# 修改配置
vim /etc/login.defs
# 修改下面的内容
PASS_MAX_DAYS 90 # 密码最大过期时间,不大于90则合规
PASS_MIN_DAYS 7 # 口令更改最小间隔天数应大于等于7
PASS_WARN_AGE 7 # 口令过期警告提前天数

3. 设置密码复杂度策略
弱密码是攻击者最爱的突破口。一个健壮的密码策略,通常要求包含数字、大小写字母,且长度在八位以上。
# 修改前备份
cp /etc/pam.d/system-auth /etc/pam.d/system-auth.bak
# 修改配置
vim /etc/pam.d/system-auth
# 没有则新增
password requisite pam_cracklib.so try_first_pass retry=3 minlen=8 dcredit=-1 ucredit=-1 ocredit=-1 lcredit=-1
# 配置参数说明:
retry=3 # 在返回失败前允许3次尝试。
minlen=8 # 密码必须是8个字符或更多
dcredit=-1 # 提供至少1位数字
ucredit=-1 # 提供至少一个大写字符
ocredit=-1 # 提供至少一个特殊字符
lcredit=-1 # 提供至少一个小写字符
4. 配置账户认证失败次数限制
防止暴力破解的关键一步。连续多次尝试失败后,账户应该被暂时锁定。
vim /etc/pam.d/system-auth
# 增加如下内容:输入错误5次,锁定180s
auth required pam_tally2.so deny=5 notallow=fail no_magic_root unlock_time=180
account required pam_tally2.so

5. 禁止wheel组之外的用户su为root
特权切换必须严格受控。只允许特定的管理组成员(如wheel组)才能切换至root用户,这是最小权限原则的直接体现。
# 修改前备份
cp /etc/pam.d/su /etc/pam.d/su_bak
vim /etc/pam.d/su
# 添加
auth sufficient pam_rootok.so
auth required pam_wheel.so use_uid
# 将允许su的用户加入wheel组
usermod -G wheel $username

6. 历史命令设置
Shell历史记录可能泄露敏感操作信息。限制其保存数量并加上时间戳,既能满足基础审计需求,又能降低信息泄露风险。
vim /etc/profile
# 修改下面配置,没有则新增
# 设置历史命令时间戳
export HISTTIMEFORMAT="%F %T "
# HISTFILESIZE=5
HISTSIZE=50 # 保留历史命令条数,默认是1000条
7. 重要文件权限配置
系统关键文件的权限必须收紧。比如存放密码哈希的影子文件,就应该严格限制访问。
chmod 644 /etc/passwd
chmod 644 /etc/group
chmod 400 /etc/shadow
chmod 400 /etc/gshadow
8. 日志审计
安全事件事后追溯离不开日志。确保系统日志服务正常启用并运行,是所有安全工作的基础。
systemctl enable rsyslog
systemctl start rsyslog
结语
安全基线的配置项远不止这些,不同的等保级别要求也各有侧重。以上列举的,都是经过实践检验的常用核心配置。在企业实际环境中,尤其是需要过二级或三级等保的系统,还必须依据安全部门提供的详细基线文档进行逐项核查与配置。关于更全面、更细致的基线参考文档,已经整理归档,有兴趣的朋友可以进一步深入查阅。安全工作,始于基线,但绝不止于基线。
