
核心要点(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 是入侵重灾区。三步加固:
- 修改默认端口:编辑
/etc/ssh/sshd_config,设置Port 22222(自定义),重启 sshd。 - 禁用密码登录:设置
PasswordAuthentication no,使用密钥对登录。 - 安装 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 开放敏感端口。