防火墙概念
安全组、ufw;与 linux-essentials 衔接。
25 分钟
防火墙概念
防火墙按规则允许或拒绝流量,是公网服务器的第二道门(第一道是 云安全组)。CodeRoadMap 只放行 22/80/443,禁止 8080/3000/3306 对 0.0.0.0/0 开放。
学习目标
- 理解安全组、系统防火墙、应用绑定的三层防护
- 正确配置 ufw 放行 Web 端口
- 与安全组、宝塔规则对照排查
核心内容
三层防护
Internet
↓
[ 云安全组 ] ← 控制台,按 IP/端口过滤
↓
[ ufw / firewalld ] ← 操作系统(见 linux-firewall)
↓
[ 进程绑定 127.0.0.1 ] ← Spring Boot / MySQL 不监听公网网卡
↓
Nginx :443 / 应用 :8080
任一层漏配都可能造成 8080 裸奔 或 自己锁死 SSH。
推荐规则(CodeRoadMap)
| 端口 | 安全组 | ufw | 说明 |
|---|---|---|---|
| 22 | 允许 | allow | 改端口前务必先放行 |
| 80/443 | 允许 | allow | Nginx 入口 |
| 8080/3000/3306 | 拒绝 | deny 或不写 | 仅回环访问 |
宝塔面板防火墙与 ufw 叠加生效,两处都要检查(linux-firewall)。
ufw 示例
sudo ufw status verbose
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
sudo ufw deny 8080/tcp
# 验证:外网应连不上 8080
curl -m 5 http://公网IP:8080/ # 超时或拒绝
curl -s https://coderoadmap.cn/ # 正常
与 Nginx 的关系
防火墙只管 包能否到达网卡;Nginx 管 443 上 HTTP 如何转发(ngx-ssl)。502 通常是 upstream 挂了,不是防火墙拦 443。
练习
- 列出云安全组入站规则,对照上表
- 确认 ufw 已 enable 且 8080 未对公网开放
- 解释「安全组放行 443 但 curl 仍超时」还可能有哪些原因(DNS?)
小结
防火墙默认拒绝:公网只开 Web 端口,业务端口靠 127.0.0.1 + 规则双保险。 下一课讲负载均衡。
加载本节练习…