云服务器防火墙怎么配置,保障服务器安全
云服务器防火墙怎么配置,保障服务器安全
核心原则:云安全组(云厂商侧)+ 系统内防火墙(主机侧)双层防护,默认拒绝、最小开放,管理端口严格绑定可信IP,禁止 0.0.0.0/0 放行 22/3389/3306/6379
一、优先级顺序(非常重要)
前提:先购买云服务器https://act.tag.org.cn
- 云控制台安全组(第一层,推荐优先配置):阿里云/腾讯云/华为云等,属于VPC网络层,在流量进入服务器前拦截,即使主机防火墙没开也生效。轻量服务器一般叫「防火墙」,本质就是安全组。
- 系统主机防火墙(第二层)
- CentOS/RHEL:
firewalld - Debian/Ubuntu:
ufw/ iptables / nftables - Windows:高级安全 Windows 防火墙
- CentOS/RHEL:
- 可选增强:云厂商「云防火墙」(互联网边界防火墙)、WAF
⚠️ 高危提醒:先放行 SSH 再改默认拒绝!否则直接锁机,只能去控制台救机。

二、安全组(云侧)标准配置方案
通用规则思路(白名单模式)
- 入方向:默认拒绝所有,只添加允许条目
- 出方向:一般默认全部允许;高安全场景改为白名单放行出站
- 分层隔离:Web、数据库、缓存、管理机分开安全组,数据库不绑定公网IP,只允许 Web 安全组内网访问数据库端口
常用入方向示例
| 用途 | 协议端口 | 源地址(重点) |
|---|---|---|
| SSH 远程(Linux) | TCP:22 | 你的固定公网IP,不要 0.0.0.0/0 |
| 网站 HTTP | TCP:80 | 0.0.0.0/0(公网网站) |
| 网站 HTTPS | TCP:443 | 0.0.0.0/0 |
| Windows RDP | TCP:3389 | 你的固定公网IP |
| MySQL | TCP:3306 | Web服务器内网IP / Web安全组,禁止公网 |
| Redis | TCP:6379 | 内网可信主机,严禁暴露公网 |
数据库、Redis、Mongo、宝塔面板这类,尽量不要直接放公网;必须远程管理就用跳板机、VPN、端口隧道。
三、Linux 主机防火墙实操
① CentOS / Rocky / AlmaLinux(firewalld)
# 开机自启、启动
systemctl enable --now firewalld
# 查看状态
firewall-cmd --state
firewall-cmd --list-all
# 放行 SSH(先做!防止锁机)
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="你的公网IP/32" port protocol="tcp" port="22" accept'
# 放行网站端口(公网)
firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --permanent --add-port=443/tcp
# 重载生效
firewall-cmd --reload
# 查看永久规则
firewall-cmd --list-all --permanent
② Debian / Ubuntu(ufw,简单好用)
apt install ufw -y
ufw reset
# 默认策略:拒绝入站、允许出站
ufw default deny incoming
ufw default allow outgoing
# 放行你的IP访问22
ufw allow from 你的公网IP to any port 22 proto tcp
# 网站端口
ufw allow 80/tcp
ufw allow 443/tcp
ufw enable
ufw status numbered
③ iptables(通用,适合老系统)
# 备份旧规则
iptables-save > /root/ipt.bak
# 设置默认策略(拒绝所有入)
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
# 放行已建立连接(非常关键,不然上网断)
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
# 放行本地回环 lo
iptables -A INPUT -i lo -j ACCEPT
# 放行你的IP SSH
iptables -A INPUT -s 你的公网IP/32 -p tcp --dport 22 -j ACCEPT
# 网站
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
# 保存规则(不同发行版不一样)
# Debian/Ubuntu
apt install iptables-persistent
netfilter-persistent save
# CentOS
service iptables save

四、Windows 云服务器防火墙
- 远程登录服务器 → Windows 防火墙 → 高级设置
- 入站规则 → 新建规则,类型选端口
- RDP 3389:作用域里,将远程IP限制为你的固定IP,不要任意地址
- 80/443:允许任意地址
- 不需要的端口直接禁用;关闭不需要的服务
五、配套安全加固(防火墙之外,缺一不可)
- SSH 加固:禁用密码登录,只使用密钥登录;修改默认 22 端口只是辅助,不能替代IP白名单
- 封禁恶意IP:fail2ban,自动拦截爆破 SSH、网站后台
# CentOS
yum install fail2ban
# Ubuntu
apt install fail2ban
- 关闭不必要服务:FTP、Telnet、SMB 等高危服务,不用就停
- 日志审计:开启安全组日志、系统登录日志,定期看异常登录
- 不要长期保留默认安全组,默认组很多厂商是全放通,裸奔风险极高
- 不需要公网访问的机器,不要分配公网EIP,内网互通依靠内网安全组授权
六、排查思路(不通/被拦截)
流量顺序:公网 → 云安全组 → 主机防火墙 → 应用本身监听
- 先看安全组有没有放行端口、源IP是否匹配
- 再进服务器看
ss -tulnp确认程序监听在0.0.0.0,而不是127.0.0.1 - 主机防火墙规则是否加载成功
七、最简推荐生产模板(网站服务器)
- ✅ 安全组:入方向只放:固定IP→22;全部→80、443;其余全部拒绝
- ✅ 主机防火墙:同样复刻白名单,二次兜底
- ✅ MySQL/Redis:无公网IP,只允许 Web 内网IP访问
- ✅ SSH:密钥登录 + fail2ban

> 核心原则:**云安全组(云厂商侧)+ 系统内防火墙(主机侧)双层防护,默认拒绝、最小开放,管理端口严格绑定可信IP,禁止 0.0.0.0/0 放行 22/3389/3306/6379**
浙公网安备 33010602011771号