云主机安全加固指南:从账号权限到日志审计落地清单 核心要点图解,先收敛账号与sudo权限,再谈其他加固,最小权限是云主机安全的地基。;SSH禁用密码登录并限制来源IP,可消除绝大多数暴力破解风险。;防火墙默认拒绝入站,只放行必要端口,暴露面越小被攻破概率越低。;开启auditd并集中日志,才能在被入侵后还原时间线与定位入口。
云主机安全加固指南:从账号权限到日志审计落地清单 · 核心要点一图读懂(AegisX)

核心要点(TL;DR)

  • 先收敛账号与sudo权限,再谈其他加固,最小权限是云主机安全的地基。
  • SSH禁用密码登录并限制来源IP,可消除绝大多数暴力破解风险。
  • 防火墙默认拒绝入站,只放行必要端口,暴露面越小被攻破概率越低。
  • 开启auditd并集中日志,才能在被入侵后还原时间线与定位入口。

很多云主机出事,不是因为漏洞多高级,而是基础项没做:root 密码能直接登录、安全组放行 0.0.0.0/0 的 22 端口、sudo 权限一把梭、日志被清空后无从追溯。本文给出一份可直接照做的云主机安全加固清单,覆盖账号权限、SSH、防火墙、补丁与日志审计,每项都带命令和验证方法,适合运维和站长在 1 到 2 小时内完成首轮基线加固。

一、账号与权限:先把人和权限管住

云主机安全加固的第一步不是装软件,而是收敛账号。入侵者拿到 shell 后第一件事往往是加账号、提权、留后门,账号体系混乱会让后续所有防护失效。

先盘点现状:

awk -F: '==0 {print }' /etc/passwd        # 检查UID为0的账号
awk -F: '!~/nologin|false/ {print ,}' /etc/passwd  # 可登录shell的账号
lastlog                                        # 各账号最近登录时间
getent group sudo wheel                        # 提权组成员

处理原则:

  • 除 root 外不应存在 UID 为 0 的账号,发现即锁定:usermod -L 用户名。
  • 为每人建独立运维账号,禁止共用账号,便于审计定位到人。
  • sudo 按最小权限授权,写入 /etc/sudoers.d/ops,用 visudo -c 校验语法,避免改坏锁死。
  • 服务账号一律 /sbin/nologin,如 nginx、mysql 不应具备登录能力。
  • 设置口令策略与锁定:在 /etc/security/pwquality.conf 配置复杂度,/etc/pam.d/system-auth 启用 pam_faillock,连续失败 5 次锁定 15 分钟。
验证:sudo -l -U 用户名 查看授权范围,passwd -S 用户名 确认账号状态为 L(锁定)。

二、SSH 加固:堵住最高频的入侵入口

SSH 是云主机被暴力破解的重灾区。核心思路只有两条:禁密码、限来源。

编辑 /etc/ssh/sshd_config,确认以下配置:

PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
MaxAuthTries 3
LoginGraceTime 20
AllowUsers ops@10.0.0.0/8
ClientAliveInterval 300
ClientAliveCountMax 2

操作顺序很重要:先把公钥放到运维账号的 ~/.ssh/authorized_keys 并 chmod 600,确认密钥能登录后,再关闭密码认证,最后 sshd -t 校验配置并 systemctl reload sshd。切勿在未验证密钥前重启 sshd。

验证:ssh -o PreferredAuthentications=password -o PubkeyAuthentication=no ops@IP 应被拒绝。若确实需要密码兜底,至少改端口并配合 fail2ban,但不要把改端口当成安全措施。

三、防火墙与暴露面:默认拒绝,按需放行

暴露面越小,被攻破的概率越低。云主机要做两层:云安全组 + 系统防火墙。

层级作用配置要点
云安全组边界第一层过滤入站默认拒绝,管理端口仅放行办公 IP
系统防火墙兜底防误配firewalld/ufw 默认 deny,只开业务端口
监听核对发现多余服务ss -tulnp 对比实际监听与放行规则

以 firewalld 为例:

firewall-cmd --set-default-zone=drop
firewall-cmd --permanent --add-service=ssh --add-source=办公IP/32
firewall-cmd --permanent --add-port=443/tcp
firewall-cmd --reload
firewall-cmd --list-all

随后用 ss -tulnp 检查是否有 0.0.0.0 监听的数据库、Redis、管理后台等不该对外暴露的服务,改为绑定 127.0.0.1 或内网地址。

四、补丁、基线与其他加固项

漏洞利用往往发生在补丁滞后的机器上。建议固定节奏:

  1. 每周执行 dnf updateinfo list security 或 apt list --upgradable,安全补丁 72 小时内上线。
  2. 内核升级后安排重启窗口,避免长期运行旧内核。
  3. 开启 SELinux 或 AppArmor,先用 permissive 观察再切 enforcing。
  4. 关闭不用的服务与端口,卸载无用组件,减少攻击面。
  5. 配置 NTP 时间同步,日志与审计时间线才可信。

在防护建议上,可结合 AegisX 的主机入侵检测与基线核查能力,对账号变更、异常登录、关键文件改动做持续监控,弥补人工巡检的间隔空档。

五、日志审计:让入侵可追溯

没有日志的加固是残缺的。目标是最少记录登录、提权、文件变更与进程执行,并把日志送离本机。

# 安装并启用审计
systemctl enable --now auditd
# 监控关键文件
cat >> /etc/audit/rules.d/base.rules <<'EOF'
-w /etc/passwd -p wa -k passwd_change
-w /etc/sudoers -p wa -k sudoers_change
-w /etc/ssh/sshd_config -p wa -k ssh_config
-a always,exit -F arch=b64 -S execve -k exec_cmd
EOF
augenrules --load
auditctl -l

同时配置 rsyslog 将 /var/log/secure、/var/log/audit/audit.log 转发到独立日志服务器,保留 180 天以上。排查时用 ausearch -k passwd_change -ts recent、lastb、journalctl -u sshd --since today 交叉比对。

六、加固检查清单与行动建议

  • □ UID 为 0 的账号仅 root,无共用账号
  • □ sudo 按最小权限授权并通过 visudo 校验
  • □ SSH 禁 root、禁密码、限制来源 IP
  • □ 安全组与系统防火墙双层默认拒绝
  • □ ss 核对无多余对外监听
  • □ 安全补丁 72 小时内上线
  • □ auditd 规则加载成功,日志外送
  • □ 每项加固均有验证命令并纳入周巡检

建议今天先完成账号、SSH、防火墙三项,把验证命令写成脚本加入定时任务;一周内补齐审计与补丁流程。加固不是一次性动作,而是持续复检的机制,先让机器处于可观测、可追溯的状态,再谈更高级的防护。

常见问题(FAQ)

云主机刚买来,最先做哪几项安全加固?

先做账号与远程入口加固:创建普通运维账号并禁用root直接登录,配置SSH密钥登录并关闭密码认证,同时用防火墙只放行必要端口。这三步能消除最常见的暴力破解与弱口令入口,通常半小时内可完成,之后再补日志审计与补丁策略。

禁用root登录后如何执行管理操作?

用普通账号登录后通过sudo提权。在/etc/sudoers.d/下为运维账号配置最小命令集,避免直接给ALL权限;执行sudo -l验证授权范围,并用visudo检查语法防止锁死。需要root shell时用sudo -i,操作留痕且可审计。

云主机防火墙用安全组还是系统防火墙?

两者叠加使用。云厂商安全组做第一层边界过滤,系统层用firewalld或ufw做第二层兜底,防止安全组误配。原则是默认拒绝入站、按需放行,管理端口限制来源IP,并定期用ss -tulnp核对实际监听端口与规则是否一致。

日志审计最少要记录哪些内容?

至少覆盖登录认证、sudo提权、关键文件变更与进程执行。启用auditd监控/etc/passwd、/etc/sudoers等敏感路径,配合rsyslog将日志转发到独立日志服务器,避免本机被入侵后日志被清空,保留周期建议不少于180天。

如何确认加固措施真的生效?

每项加固都要有验证命令:用ssh -o PreferredAuthentications=password测试密码登录是否被拒,用nmap从外网扫描确认端口暴露面,用ausearch -k关键字检查审计规则是否命中。建议把验证步骤写成脚本,纳入每周巡检。