云服务器安全加固:防火墙与云主机防护实战 核心要点图解,安全组是云上第一道防火墙,默认拒绝所有入站,仅放行必要端口。;主机防火墙(iptables/ufw)与安全组需协同配置,避免单点失效。;SSH 端口改非标并禁用密码登录,可拦截 90% 暴力破解。;定期用 netstat、lastb、journalctl 排查异常连接与登录。
云服务器安全加固:防火墙与云主机防护实战 · 核心要点一图读懂(AegisX 神盾X)

核心要点(TL;DR)

  • 安全组是云上第一道防火墙,默认拒绝所有入站,仅放行必要端口。
  • 主机防火墙(iptables/ufw)与安全组需协同配置,避免单点失效。
  • SSH 端口改非标并禁用密码登录,可拦截 90% 暴力破解。
  • 定期用 netstat、lastb、journalctl 排查异常连接与登录。

刚买的云服务器,默认安全组往往放行所有端口,SSH 密码登录暴露在公网,几分钟内就会收到暴力破解尝试。很多运维和站长直到服务器被挖矿、数据被加密才意识到防火墙没配好。本文从实战出发,给出云服务器安全加固的具体步骤、操作命令和检查清单,帮你把云主机防护做到位。

一、云服务器安全加固的核心:安全组与主机防火墙协同

云服务器安全加固的第一道防线是云平台的安全组。安全组是一种虚拟防火墙,作用于实例网络层,默认应拒绝所有入站流量,仅放行必要端口。但安全组只控制外层,主机内部仍需 iptables 或 ufw 做细粒度控制。两者协同才能形成纵深防御。

检查当前安全组规则,确保没有 0.0.0.0/0 开放 22、3306、6379 等高危端口。对于 SSH,建议只允许公司固定 IP 访问。

二、主机防火墙实战:iptables 与 ufw 配置步骤

1. 使用 ufw 快速加固(Ubuntu/Debian)

sudo apt update && sudo apt install ufw -y
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
sudo ufw status verbose

注意:启用前务必放行 SSH 端口,否则会断开连接。若修改过 SSH 端口,替换 22 为实际端口。

2. 使用 iptables 精细控制(CentOS/RHEL)

iptables -F
 iptables -P INPUT DROP
 iptables -P FORWARD DROP
 iptables -P OUTPUT ACCEPT
 iptables -A INPUT -i lo -j ACCEPT
 iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
 iptables -A INPUT -p tcp --dport 22 -j ACCEPT
 iptables -A INPUT -p tcp --dport 80 -j ACCEPT
 iptables -A INPUT -p tcp --dport 443 -j ACCEPT
 service iptables save

规则顺序从上到下匹配,匹配即停止。建议将默认策略设为 DROP,再逐条放行。

三、SSH 防暴力破解:改端口、禁密码、上 fail2ban

SSH 是入侵重灾区。三步加固:

  1. 修改默认端口:编辑 /etc/ssh/sshd_config,设置 Port 22222(自定义),重启 sshd。
  2. 禁用密码登录:设置 PasswordAuthentication no,使用密钥对登录。
  3. 安装 fail2ban:apt install fail2ban -y,配置 /etc/fail2ban/jail.local 中 sshd 的 maxretry=5、bantime=3600。

同时安全组限制 SSH 源 IP,只允许运维 IP 访问。

四、云主机防护检查清单与入侵排查命令

检查项命令预期结果
监听端口ss -tunlp仅业务端口
失败登录lastb | head无大量陌生 IP
成功登录last | head仅已知 IP
定时任务crontab -l; ls /etc/cron.*无恶意脚本
异常进程ps aux --sort=-%cpu无挖矿进程

发现异常立即隔离实例,重置密码,检查 /var/log/auth.log 或 /var/log/secure。

五、自动化加固与持续防护建议

将上述步骤写成脚本,新机器初始化时自动执行。例如使用 cloud-init 或 Ansible。定期审计防火墙规则,删除过期条目。对于缺乏专职安全人员的团队,可借助 AegisX(神盾X)的云主机防护能力,实现入侵检测、暴力破解拦截和基线核查的自动化,减少人工巡检成本。

行动建议:今天先检查安全组是否放行了非必要端口,然后按本文步骤配置主机防火墙,最后修改 SSH 端口并启用 fail2ban。三步做完,云服务器安全基线即可显著提升。

常见问题(FAQ)

云服务器安全组和主机防火墙有什么区别?需要同时配置吗?

安全组是云平台提供的虚拟防火墙,作用于实例外层,控制入站和出站流量;主机防火墙(如 iptables、ufw)运行在操作系统内部,控制本机网络栈。两者是互补关系,建议同时配置:安全组做粗粒度端口过滤,主机防火墙做细粒度规则,形成纵深防御。只配其一会留下单点失效风险。

如何用 ufw 快速加固云服务器?

先安装 ufw,然后按顺序执行:ufw default deny incoming、ufw default allow outgoing、ufw allow 22/tcp(或自定义 SSH 端口)、ufw allow 80/tcp、ufw allow 443/tcp,最后 ufw enable。注意启用前务必放行 SSH 端口,否则会锁死自己。启用后用 ufw status verbose 查看规则。

云服务器被暴力破解 SSH 怎么办?

立即修改 SSH 端口为非标端口,在 /etc/ssh/sshd_config 中设置 PasswordAuthentication no 并重启 sshd;同时安装 fail2ban,配置 sshd 监控,默认封禁 10 分钟内失败 5 次的 IP。还可结合安全组限制源 IP,只允许办公 IP 访问 22 端口。

如何检查云服务器是否已被入侵?

运行 lastb 查看失败登录记录,last 查看成功登录;netstat -tunlp 或 ss -tunlp 检查异常监听端口;crontab -l 和 /etc/cron.* 检查恶意定时任务;ps aux 查找可疑进程;检查 /var/log/auth.log 或 /var/log/secure 中的异常 IP。发现异常立即隔离实例并重置密码。

云服务器防火墙规则应该遵循什么原则?

遵循最小权限原则:默认拒绝所有入站流量,仅放行业务必需端口;出站也建议限制,仅允许必要目标。规则顺序很重要,匹配即停止。定期审计规则,删除过期条目。使用注释标记规则用途,便于维护。避免使用 0.0.0.0/0 开放敏感端口。