云主机安全是什么?与传统服务器加固的区别与实战 核心要点图解,云主机安全的核心是身份与边界,传统加固的核心是单机配置基线。;安全组默认拒绝入站,只放行必要端口,比主机防火墙更先生效。;SSH 加固三件事:禁 root 登录、改端口、只允许密钥认证。;加固要可验证:每条配置都要有检查命令和回滚方案。
云主机安全是什么?与传统服务器加固的区别与实战 · 核心要点一图读懂(AegisX)

核心要点(TL;DR)

  • 云主机安全的核心是身份与边界,传统加固的核心是单机配置基线。
  • 安全组默认拒绝入站,只放行必要端口,比主机防火墙更先生效。
  • SSH 加固三件事:禁 root 登录、改端口、只允许密钥认证。
  • 加固要可验证:每条配置都要有检查命令和回滚方案。

很多运维把云主机当成“机房里的服务器”来加固:跑一遍基线脚本、关几个端口、改改 SSH,就以为安全了。结果安全组对 0.0.0.0/0 开放 22 和 3306,密钥写在镜像里,快照权限全团队可见。云主机安全的重点,恰恰不在单机配置,而在边界、身份与镜像。本文按“先收敛边界、再加固主机、最后可验证”的顺序,给出可直接执行的命令与检查清单。

一、云主机安全与传统服务器加固的本质区别

传统服务器加固面向一台物理机或虚机,核心是操作系统配置基线:账号、权限、服务、内核参数、日志。云主机安全在此基础上多了三层云原生要素:网络边界(安全组/网络 ACL)、身份与权限(云账号、RAM、密钥、元数据)、镜像与自动化(快照、模板、IaC)。

维度传统服务器加固云主机安全
第一道防线主机防火墙安全组/网络 ACL(云网络层)
身份入口系统账号密码云账号、RAM 子账号、SSH 密钥、实例元数据
配置载体手工或脚本镜像、快照、IaC 模板
失效模式单机被攻破一台失陷可横向到同 VPC 其他实例

结论很直接:只做主机加固,等于把大门敞开却给卧室上锁。

二、第一步:先收敛安全组,再谈主机加固

安全组在流量到达主机前生效,优先级高于 iptables。先把入站规则改成默认拒绝、按需放行。

  1. 导出当前规则核对:aws ec2 describe-security-groups 或云控制台导出,重点找 0.0.0.0/0。
  2. 删除对公网开放的 22、3389、3306、6379、9200 等管理/数据库端口。
  3. 管理端口只允许固定跳板机或办公出口 IP,例如 203.0.113.10/32。
  4. 业务端口只对负载均衡或指定网段开放,不直接对公网。

主机侧再补一层兜底:

# 查看监听端口,确认没有多余服务暴露
ss -lntp
# firewalld 默认拒绝入站,只放行必要端口
firewall-cmd --set-default-zone=drop
firewall-cmd --permanent --add-service=ssh
firewall-cmd --reload

三、第二步:SSH 与身份加固(最容易被攻破的入口)

云主机被爆破,九成从 SSH 开始。三件事必须做:禁 root 直登、禁密码认证、只允许密钥。

# 修改 /etc/ssh/sshd_config
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
MaxAuthTries 3
# 校验配置语法并重载
sshd -t && systemctl reload sshd
# 查看实际生效值
sshd -T | grep -E 'permitrootlogin|passwordauthentication'

同时检查云侧身份:不要用主账号 AK 跑业务;为每台实例绑定最小权限角色;关闭实例元数据 v1,强制 IMDSv2,防止 SSRF 窃取临时凭证。检查清单:

  • 是否存在 UID 为 0 的非 root 账号:awk -F: '==0{print }' /etc/passwd
  • 是否有无密码可登录账号:awk -F: '==""{print }' /etc/shadow
  • authorized_keys 是否有陌生公钥:cat /root/.ssh/authorized_keys

四、第三步:基线核查与入侵排查命令

加固不是改完就完,要能验证。建议把下面命令做成脚本定期跑,结果存档对比。

# 异常外联与监听
ss -antp | grep ESTAB
# 高占用可疑进程
ps aux --sort=-%cpu | head -15
# 定时任务与自启动
crontab -l; ls -l /etc/cron.*
systemctl list-unit-files --state=enabled
# 最近登录与失败记录
last -n 20; grep 'Failed password' /var/log/auth.log | tail

发现异常先隔离:把安全组入站全关、保留出站取证,再决定是否重装。切忌未取证直接重装,丢失溯源线索。

五、行动建议:把加固变成可持续流程

按“边界—身份—基线—验证”四步走:先用安全组把攻击面收到最小,再落实 SSH 密钥与最小权限,随后用基线脚本核查并留存报告,最后把配置固化进镜像与 IaC 模板,新实例天然合规。需要统一管理多台云主机时,可借助 AegisX 的资产清点、基线核查与入侵检测能力,把上述检查项自动化、持续化,减少人工漏检。今天先做一件事:导出安全组规则,把 0.0.0.0/0 的 22 端口删掉。

常见问题(FAQ)

云主机安全是不是装个杀毒软件就够了?

不够。云主机的首要风险来自暴露的入站端口和过大的身份权限,而不是本地病毒。应先收敛安全组、禁用密码登录、落实最小权限,再谈主机层检测。杀毒或 HIDS 只是最后一层,前面边界没管好,装什么都会被绕过。

安全组和主机防火墙到底用哪个?

两者都要,但优先级不同。安全组在云网络层生效,流量到主机前就被丢弃,是第—道防线;主机防火墙(iptables/firewalld)用于实例内部细分和兜底。建议安全组只放行必要端口与来源 IP,主机防火墙默认拒绝入站,形成双层防护。

传统服务器加固脚本能直接跑在云主机上吗?

要谨慎。很多加固脚本会改 SSH 配置、关服务、调内核参数,云主机上可能影响云监控、元数据访问或控制台登录。正确做法是先快照、逐条执行、每条验证,保留回滚命令,不要一次性批量跑完整脚本。

怎么快速判断云主机是否已被入侵?

先看异常外联和异常进程:ss -antp 查可疑连接,ps aux 找高 CPU 陌生进程,检查 /etc/passwd 新增账户、crontab 定时任务和 ~/.ssh/authorized_keys 是否被写入公钥。发现异常先隔离(改安全组断外网),再取证,不要急着重装。

云主机加固做完怎么证明有效?

用可复现的检查命令逐项验证,例如 sshd -T 看生效配置、ss -lntp 看监听端口、安全组规则导出核对。把检查结果存档形成基线报告,定期复跑对比差异,才能证明加固持续有效而非一次性动作。