Linux服务器基线加固清单:账号权限、日志审计与服务最小化实操 核心要点图解,账号权限:禁用无用账号、设置强密码策略、限制su权限。;日志审计:启用auditd、配置rsyslog远程日志、定期审查。;服务最小化:关闭非必要服务、使用systemctl管理、定期扫描端口。;基线加固需定期执行并验证,结合自动化工具提升效率。
Linux服务器基线加固清单:账号权限、日志审计与服务最小化实操 · 核心要点一图读懂(AegisX)

核心要点(TL;DR)

  • 账号权限:禁用无用账号、设置强密码策略、限制su权限。
  • 日志审计:启用auditd、配置rsyslog远程日志、定期审查。
  • 服务最小化:关闭非必要服务、使用systemctl管理、定期扫描端口。
  • 基线加固需定期执行并验证,结合自动化工具提升效率。

Linux服务器默认配置往往为了易用性而牺牲安全性,导致账号权限泛滥、日志缺失、服务暴露过多。本文提供一份可落地的基线加固清单,涵盖账号权限、日志审计与服务最小化,每个步骤都附带具体命令,帮助运维人员快速提升服务器安全水位。

账号权限加固:从源头控制访问

账号是入侵的第一道防线。首先,清理无用账号,锁定或删除长期不用的账户。

  • 检查空口令账号:awk -F: '( == "") {print }' /etc/shadow,若有输出,立即设置密码或锁定。
  • 锁定账号:usermod -L ;解锁:usermod -U 。
  • 设置密码策略:编辑 /etc/login.defs,调整 PASS_MAX_DAYS 90、PASS_MIN_LEN 10 等参数。使用 chage -l 查看有效期。
  • 限制su命令:编辑 /etc/pam.d/su,启用 auth required pam_wheel.so use_uid,仅允许wheel组用户使用su。
  • 禁止root直接登录:编辑 /etc/ssh/sshd_config,设置 PermitRootLogin no,重启sshd:systemctl restart sshd。

此外,使用 sudo 替代直接root操作,并通过 visudo 精细控制权限。

日志审计:让入侵行为无处遁形

完整的日志是溯源的关键。Linux默认的syslog可能被攻击者清除,需配置远程日志和审计服务。

  • 启用auditd:安装并启动 auditd,添加关键规则,如监控 /etc/passwd 的修改:auditctl -w /etc/passwd -p wa -k passwd_change。将规则持久化到 /etc/audit/rules.d/audit.rules。
  • 配置rsyslog远程日志:在客户端 /etc/rsyslog.conf 添加 *.* @@日志服务器IP:514,服务器端启用接收模块并重启服务。
  • 日志轮转:确保 /etc/logrotate.conf 配置合理,避免日志被覆盖。
  • 定期审查:使用 aureport 生成审计报告,或通过 journalctl -u sshd 查看登录记录。

建议将日志集中存储,并设置告警规则,如多次失败登录触发通知。

服务最小化:减少攻击面

每开放一个服务就多一个风险点。应关闭非必要服务,仅保留业务所需。

  • 列出所有服务:systemctl list-unit-files --type=service,禁用无用服务:systemctl disable --now 。
  • 检查监听端口:netstat -tulnp 或 ss -tulnp,确认仅开放必要端口。
  • 对于xinetd服务,检查 /etc/xinetd.d/ 下文件,设置 disable = yes。
  • 使用防火墙限制访问:如 firewall-cmd --add-service=http --permanent,仅允许可信IP访问管理端口。
服务默认端口建议
SSH22修改端口、禁用密码登录、使用密钥
HTTP80如无必要,关闭或限制IP
FTP21替换为SFTP

定期使用 nmap 扫描本机端口,确保无额外暴露。

加固后的验证与维护

配置完成后,需验证效果并定期复查。使用 lynis 等工具进行安全审计,或手动检查关键文件权限(如 /etc/passwd 应为644)。建议每月执行一次基线检查,并记录变更。

在防护建议方面,可考虑使用AegisX的基线核查功能,自动化检测配置偏差,提升效率。

行动建议

立即按照上述清单逐项检查你的服务器,优先处理空口令账号、root远程登录和暴露的非必要服务。将加固步骤文档化,并纳入日常运维流程。安全是一个持续过程,定期回顾和更新基线配置。

常见问题(FAQ)

如何检查Linux服务器上是否存在空口令账号?

使用命令 `awk -F: '( == "") {print }' /etc/shadow` 可列出空口令账号。若存在,应立即用 `passwd ` 设置强密码或锁定账号。空口令是严重安全风险,务必确保所有账号都有密码。

日志审计中,auditd规则如何持久化?

将规则写入 `/etc/audit/rules.d/audit.rules` 文件,然后重启auditd服务:`systemctl restart auditd`。使用 `auditctl -l` 可查看当前规则。持久化确保重启后规则依然生效。

如何最小化Linux服务?

首先使用 `systemctl list-unit-files --type=service` 列出所有服务,禁用非必要服务:`systemctl disable --now `。对于xinetd服务,检查 `/etc/xinetd.d/` 并设置 `disable = yes`。定期用 `netstat -tulnp` 查看监听端口,关闭无用端口。

如何限制su命令的使用?

编辑 `/etc/pam.d/su`,取消注释 `auth required pam_wheel.so use_uid`,这样只有wheel组的用户才能使用su。将需要su权限的用户加入wheel组:`usermod -aG wheel `。这能减少权限滥用风险。

如何配置远程日志服务器?

在客户端编辑 `/etc/rsyslog.conf`,添加 `*.* @日志服务器IP:514`(UDP)或 `*.* @@日志服务器IP:514`(TCP)。在服务器端启用接收模块并重启rsyslog。远程日志可防止本地日志被篡改。