云主机安全防护配置清单:开局必做的12项基线加固 核心要点图解,云主机开局先改SSH端口并禁用密码登录,是性价比最高的加固动作。;防火墙默认拒绝入站,只放行必要端口,能消除大部分暴露面。;开启auditd与集中日志,是事后入侵溯源的前提。;基线加固要可验证:每条配置都应附带检查命令与回滚方式。
云主机安全防护配置清单:开局必做的12项基线加固 · 核心要点一图读懂(AegisX)

核心要点(TL;DR)

  • 云主机开局先改SSH端口并禁用密码登录,是性价比最高的加固动作。
  • 防火墙默认拒绝入站,只放行必要端口,能消除大部分暴露面。
  • 开启auditd与集中日志,是事后入侵溯源的前提。
  • 基线加固要可验证:每条配置都应附带检查命令与回滚方式。

很多云主机开通后直接沿用镜像默认配置:SSH 跑在 22 端口、允许 root 密码登录、安全组放行 0.0.0.0/0、没有任何审计日志。这类机器上线几小时内就会遭遇暴力破解扫描,一旦口令薄弱,后续的挖矿、横向渗透、数据窃取几乎是必然。本文给出一份可直接照做的云主机安全防护配置清单,12 项基线加固按优先级排列,每项都配检查命令与验证方法,适合运维和站长在业务上线前逐项打勾。

一、账号与登录:先收紧人这一侧

入侵者拿到的第一个立足点通常是账号。加固顺序是:清理无用账号、建立个人运维账号、禁用 root 远程登录。

# 查看可登录账号与空口令账号
awk -F: '(>=1000){print }' /etc/passwd
awk -F: '(==""){print }' /etc/shadow

# 新建运维账号并赋予 sudo
useradd -m -s /bin/bash ops
passwd ops
usermod -aG wheel ops   # Debian/Ubuntu 用 sudo 组

# 锁定长期不用的账号
usermod -L olduser

随后编辑 /etc/ssh/sshd_config:PermitRootLogin no、PasswordAuthentication no、MaxAuthTries 3,并配合 AllowUsers ops 限定可登录用户。改完先 sshd -t 校验语法,再 systemctl reload sshd,并保留一个已登录会话用于回滚。

二、SSH 与远程入口:换端口、上密钥、限来源

把 SSH 端口从 22 改为高位端口(如 22022),能过滤掉绝大多数自动化扫描。密钥登录用 ssh-keygen -t ed25519 生成,公钥写入 ~/.ssh/authorized_keys 后设 chmod 600、chmod 700 ~/.ssh。若条件允许,在安全组层把 SSH 来源限制为固定办公 IP 或跳板机地址,比任何主机层策略都直接。

验证方式:从另一台机器执行 ssh -p 22022 ops@ip 能登录,ssh root@ip 被拒绝,才算完成。

三、防火墙与端口收敛:默认拒绝入站

先用 ss -tunlp 列出所有监听端口,逐个确认业务必要性,其余全部关闭。以 firewalld 为例:

firewall-cmd --permanent --add-port=22022/tcp
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --set-default-zone=drop
firewall-cmd --reload
firewall-cmd --list-all

Ubuntu 可用 ufw:ufw default deny incoming 后逐条 ufw allow。云厂商安全组与主机防火墙要形成双层,安全组管南北向,主机防火墙管东西向横向访问。

四、补丁、内核参数与服务最小化

关闭不需要的服务是减少漏洞面的直接手段:systemctl disable --now 停用 telnet、ftp、rpcbind 等。补丁按发行版执行 apt update && apt upgrade 或 dnf update,内核更新后安排重启窗口。内核参数在 /etc/sysctl.d/99-hardening.conf 中加固:

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

执行 sysctl --system 生效。若业务无需转发,关闭 ip_forward 可降低被当作跳板的风险。

五、日志审计与文件权限

没有日志就没有溯源。开启 auditd 并配置关键目录监控:

auditctl -w /etc/passwd -p wa -k passwd_change
auditctl -w /etc/ssh/sshd_config -p wa -k ssh_config
systemctl enable --now auditd

同时把 /var/log/secure 或 /var/log/auth.log 接入集中日志或云日志服务,避免攻击者清空本地日志。敏感文件权限检查:find / -perm -4000 -type f 2>/dev/null 列出 SUID 文件,与基线比对,出现陌生条目要立即排查。

六、恶意进程与持久化排查

加固完成后做一轮自检,重点看持久化位置:crontab -l、ls /etc/cron.*、systemctl list-unit-files --state=enabled、cat /etc/rc.local。再用 ps aux --sort=-%cpu | head 和 ss -tunlp 比对异常外联。发现可疑进程先 cp /proc/PID/exe 留证,记录 PID、启动时间与网络连接,再决定处置方式。

加固项检查命令通过标准
SSH 配置sshd -T | grep -E 'permitrootlogin|passwordauth'均为 no
防火墙firewall-cmd --list-all仅业务端口放行
账号awk -F: '(>=1000){print }' /etc/passwd仅已知运维账号
审计systemctl is-active auditdactive

在防护建议层面,AegisX 的主机安全能力可覆盖入侵检测、异常登录告警与基线核查,把上述手工检查转为持续监控,适合机器数量上来后替代人工巡检。

行动建议:把 12 项加固写成一份带勾选框的清单,每项附检查命令,业务上线前逐条执行并留存输出;变更后回归验证 SSH 与防火墙配置,每月复核账号与端口清单。基线加固的价值不在一次做完,而在持续可验证。

常见问题(FAQ)

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

优先做三件事:修改SSH端口并禁用root密码登录、配置防火墙默认拒绝入站、创建普通运维账号并配置密钥。这三项能在十分钟内消除暴力破解与端口暴露两类最高频风险,其余加固可在业务上线前逐步补齐,但不要跳过日志审计。

禁用了密码登录,万一密钥丢失怎么办?

提前保留一条后路:通过云控制台的VNC或救援模式登录,或在加固前保留一个带密钥的备用账号。操作时先新开一个SSH会话验证密钥可登录,再修改配置并重载sshd,切勿在唯一会话中直接重启服务,避免把自己锁在门外。

防火墙用云厂商安全组还是系统iptables?

两者都要用,职责不同。安全组在云网络层做第一道过滤,成本低、生效快;系统防火墙在主机层做第二道,防止同网段横向访问。建议安全组只放行业务端口与运维源IP,主机侧再配置默认拒绝策略,形成双层收敛。

如何判断云主机是否已经被入侵?

重点看四类信号:异常登录记录与新增账号、陌生监听端口与进程、计划任务与启动项被篡改、CPU或外联流量异常。可用last、ss -tunlp、crontab -l、ps aux配合比对基线,发现可疑进程先留证再处置,不要急着重装丢失证据。

基线加固做完还需要定期做什么?

加固不是一次性动作。建议每月复核账号与端口清单、每周检查安全更新与日志告警、每次变更后回归验证防火墙与SSH配置。把检查命令写成脚本定时执行,输出差异报告,才能避免配置被后续运维操作悄悄改回去。