Linux 服务器基线加固清单:账号、权限、日志与内核参数逐项配置 核心要点图解,账号安全:禁用无用账号、设置强密码策略、限制root远程登录。;权限控制:遵循最小权限原则,关键文件设置 immutable 属性。;日志审计:集中管理日志,配置 auditd 监控关键事件。;内核参数:调整网络和内存参数,增强抗攻击能力。
Linux 服务器基线加固清单:账号、权限、日志与内核参数逐项配置 · 核心要点一图读懂(AegisX)

核心要点(TL;DR)

  • 账号安全:禁用无用账号、设置强密码策略、限制root远程登录。
  • 权限控制:遵循最小权限原则,关键文件设置 immutable 属性。
  • 日志审计:集中管理日志,配置 auditd 监控关键事件。
  • 内核参数:调整网络和内存参数,增强抗攻击能力。

痛点引入:你的 Linux 服务器真的安全吗?

许多运维人员认为 Linux 天生安全,但默认配置往往存在诸多隐患:弱口令、多余账号、权限过宽、日志缺失、内核参数未优化……攻击者一旦利用这些漏洞,轻则数据泄露,重则整台服务器沦陷。本文提供一份可落地的基线加固清单,涵盖账号、权限、日志与内核参数四大方面,每个步骤都附带具体命令,帮你快速提升服务器安全水位。

账号安全加固:清理与管控

账号是入侵的第一道门槛。首先,检查并清理无用账号:

# 列出所有可登录账号
awk -F: '( !~ /(nologin|false)$/) {print }' /etc/passwd
# 锁定不使用的账号
usermod -L username

其次,设置强密码策略。编辑 /etc/login.defs,调整 PASS_MAX_DAYS 90、PASS_MIN_LEN 10 等参数,并启用 pam_pwquality 模块:

# 安装 pam_pwquality(如未安装)
yum install libpwquality -y  # Debian/Ubuntu 使用 apt install libpam-pwquality
# 编辑 /etc/pam.d/system-auth 或 /etc/pam.d/common-password,添加:
password requisite pam_pwquality.so try_first_pass retry=3 minlen=10 difok=3

最后,限制 root 远程登录。修改 /etc/ssh/sshd_config:

PermitRootLogin no
AllowUsers deploy admin  # 只允许特定用户登录

重启 sshd 服务生效。同时,建议使用 SSH 密钥认证并禁用密码登录。

权限控制:最小化与锁定

遵循最小权限原则,确保敏感文件仅 root 可读。检查关键文件权限:

chmod 600 /etc/shadow
chmod 644 /etc/passwd
chmod 700 /root

对于不允许修改的文件(如 /etc/passwd、/etc/shadow),可设置 immutable 属性:

chattr +i /etc/passwd /etc/shadow /etc/group /etc/gshadow

注意:修改这些文件前需先移除属性(chattr -i)。此外,使用 sudo 替代直接 root 操作,并精细控制 sudo 权限。

日志审计:记录与监控

完整的日志是溯源的关键。确保 rsyslog 服务运行,并配置远程日志服务器:

# 客户端:/etc/rsyslog.conf 添加
*.* @192.168.1.100:514
# 服务器端:启用 UDP/TCP 接收
module(load="imudp")
input(type="imudp" port="514")

使用 auditd 监控关键事件,例如监控 /etc/passwd 的修改:

auditctl -w /etc/passwd -p wa -k passwd_change

将规则持久化到 /etc/audit/rules.d/audit.rules。同时,配置 logrotate 定期轮转日志,避免磁盘占满。

内核参数调优:增强网络与内存安全

通过 sysctl 调整内核参数,提升抗攻击能力。编辑 /etc/sysctl.conf 并应用:

net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn_backlog = 2048
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.all.send_redirects = 0
kernel.randomize_va_space = 2

执行 sysctl -p 生效。这些参数可防御 SYN Flood、IP 欺骗等攻击,并启用地址空间随机化。

加固检查清单

项目检查命令预期结果
空口令账号awk -F: '( == "") { print }' /etc/shadow无输出
root 远程登录grep ^PermitRootLogin /etc/ssh/sshd_configPermitRootLogin no
关键文件权限ls -l /etc/shadow-rw-------
日志服务状态systemctl status rsyslogactive (running)
内核参数sysctl net.ipv4.tcp_syncookiesnet.ipv4.tcp_syncookies = 1

定期执行上述检查,确保加固措施持续有效。对于需要批量管理的场景,可考虑使用自动化工具如 Ansible 或 AegisX 的基线核查功能,快速发现配置偏差。

行动建议

安全加固不是一次性的任务,而是持续的过程。建议每季度进行一次基线核查,并关注安全公告及时更新。从今天起,按照上述清单逐项落实,你的 Linux 服务器将更加稳固。

常见问题(FAQ)

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

使用命令 `awk -F: '( == "") { print }' /etc/shadow` 可以列出所有空口令账号。如果发现空口令账号,应立即为其设置强密码或锁定账号。

为什么要限制 root 用户远程登录?如何操作?

限制 root 远程登录可以降低暴力破解风险。编辑 /etc/ssh/sshd_config,设置 PermitRootLogin no,然后重启 sshd 服务。建议使用普通用户登录后通过 sudo 提权。

如何监控 Linux 系统中的文件完整性?

可以使用 AIDE 或 Tripwire 等工具。例如,安装 AIDE 后,运行 `aide --init` 生成基线数据库,然后定期运行 `aide --check` 对比变化。关键文件如 /etc/passwd、/etc/shadow 应纳入监控。

哪些内核参数对防御 DDoS 攻击有效?

可以调整 net.ipv4.tcp_syncookies=1 启用 SYN Cookie,增大 net.ipv4.tcp_max_syn_backlog 和 net.core.somaxconn 提高连接队列,设置 net.ipv4.conf.all.rp_filter=1 启用反向路径过滤。

如何配置日志集中管理?

可以使用 rsyslog 将日志发送到远程日志服务器。在客户端配置 *.* @logserver:514,在服务器端启用接收模块。同时建议使用 logrotate 定期轮转日志,避免磁盘占满。