云主机安全防御需构建“边界 + 主机”双重体系。优先用云厂商的安全组做端口收敛,Linux 防火墙作为主机内部的第二道防线,两者配合时以安全组为主,避免规则冲突导致业务中断。
核心结论:安全组负责网络边界访问控制,Linux 防火墙负责主机内部进程级防护,生产环境建议优先依赖安全组,主机防火墙做补充。
- 先判断:确认业务必须开放的端口和源 IP 范围
- 优先做:在云控制台配置安全组规则,默认拒绝所有入站
- 再验证:使用外部网络测试端口连通性,确保业务正常且无关端口关闭
主流云厂商安全组配置路径
安全组规则通常在云控制台图形化配置,不同厂商入口略有差异:
- 阿里云:登录 ECS 控制台 -> 左侧导航栏“网络与安全” -> “安全组” -> 找到实例关联的安全组 -> “配置规则” -> “入方向”。
- 腾讯云:登录 CVM 控制台 -> 左侧导航栏“安全” -> “安全组” -> 点击实例关联的安全组 ID -> “修改规则” -> “入站规则”。
- AWS:登录 EC2 Dashboard -> 左侧"Network & Security" -> "Security Groups" -> 选中安全组 -> 下方"Inbound rules" -> "Edit inbound rules"。
配置原则:默认策略设为“拒绝所有入站”,仅添加业务必需的允许规则(如 Web 的 80/443,管理的 22)。
Linux 防火墙配置命令
主机防火墙可根据发行版选择以下常用命令。注意:配置前请确保已通过安全组放行 SSH 端口,并保留云控制台 VNC 权限以防失联。
Ubuntu (UFW):
ufw allow 22/tcp
ufw allow 80/tcp
ufw enableCentOS 7+ (Firewalld):
firewall-cmd `--permanent` `--add-port`=22/tcp
firewall-cmd `--permanent` `--add-port`=80/tcp
firewall-cmd `--reload`通用 (iptables):
警告:执行 DROP 策略前必须先放行 SSH,否则会导致立即失联。
iptables -A INPUT -p tcp `--dport` 22 -j ACCEPT
iptables -A INPUT -p tcp `--dport` 80 -j ACCEPT
iptables -P INPUT DROP配置验证方法
从外部网络(非白名单 IP)测试端口连通性:
nmap -p 22,80,3306 你的公网 IP预期结果:仅允许的端口显示 open,其他端口显示 filtered 或 closed。
在主机内部检查监听状态:
ss -tlnp确认业务进程确实在监听对应端口,排除因服务未启动导致的误判。
失联紧急恢复方案
若因防火墙规则错误导致 SSH 无法连接,请按以下步骤恢复:
- 登录云厂商控制台,找到对应实例。
- 点击“远程连接”或