防火墙
防火墙功能提供基于规则的网络流量过滤,可以控制进出流量的访问权限,是保护 NetPanel 及内网服务的第一道防线。
技术原理
防火墙工作机制
防火墙通过在网络层对数据包进行检查和过滤,依据预设规则决定是否允许流量通过。NetPanel 防火墙工作在应用层,对进出的网络连接进行规则匹配:
外部请求
│
▼
┌─────────────────────────────────┐
│ 规则匹配引擎 │
│ │
│ 规则1(优先级1)→ 匹配? → 允许/拒绝
│ 规则2(优先级2)→ 匹配? → 允许/拒绝
│ 规则3(优先级3)→ 匹配? → 允许/拒绝
│ ... │
│ 默认规则 → 允许/拒绝 │
└─────────────────────────────────┘
│
▼
转发到目标服务 / 丢弃连接规则匹配流程
- 接收请求:捕获入站或出站的网络连接请求
- 提取特征:获取源 IP、目标端口、协议类型等信息
- 按优先级匹配:从优先级最高(数字最小)的规则开始逐条匹配
- 执行动作:命中第一条匹配规则后,执行对应的允许或拒绝动作
- 默认策略:若无规则匹配,执行默认策略(默认允许)
IP 过滤原理
IP 过滤基于 CIDR(无类别域间路由)表示法,支持精确匹配和网段匹配:
| 表示法 | 示例 | 匹配范围 |
|---|---|---|
| 单个 IP | 1.2.3.4 | 仅匹配该 IP |
| /24 网段 | 192.168.1.0/24 | 192.168.1.0 ~ 192.168.1.255(256个IP) |
| /16 网段 | 10.0.0.0/16 | 10.0.0.0 ~ 10.0.255.255(65536个IP) |
| /8 网段 | 10.0.0.0/8 | 10.0.0.0 ~ 10.255.255.255(约1600万个IP) |
功能概述
- 基于规则的入站/出站流量过滤
- 支持按 IP、端口、协议过滤
- 规则优先级管理
- 支持 CIDR 网段匹配
- 支持 IPv4 和 IPv6
配置说明
进入 防火墙 页面,点击 新建规则 按钮:
| 字段 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
| 名称 | 字符串 | ✅ | — | 规则名称,便于识别 |
| 启用 | 布尔 | ✅ | true | 是否启用此规则 |
| 方向 | 枚举 | ✅ | 入站 | 入站 或 出站 |
| 动作 | 枚举 | ✅ | 允许 | 允许 或 拒绝 |
| 源 IP | 字符串 | ❌ | 任意 | 源 IP 或 CIDR,留空表示任意 |
| 目标端口 | 整数/范围 | ❌ | 任意 | 目标端口或端口范围,如 80 或 8000-9000 |
| 协议 | 枚举 | ❌ | TCP+UDP | TCP、UDP 或 TCP+UDP |
| 优先级 | 整数 | ❌ | 100 | 数字越小优先级越高 |
配置示例
示例 1:允许局域网访问所有端口
| 字段 | 值 |
|---|---|
| 名称 | 允许局域网 |
| 方向 | 入站 |
| 动作 | 允许 |
| 源 IP | 192.168.0.0/16 |
| 优先级 | 10 |
示例 2:拒绝特定 IP 访问
| 字段 | 值 |
|---|---|
| 名称 | 拒绝恶意 IP |
| 方向 | 入站 |
| 动作 | 拒绝 |
| 源 IP | 1.2.3.4 |
| 优先级 | 5 |
示例 3:只开放特定端口
仅允许 80 和 443 端口的外部访问,拒绝其他所有端口:
规则一(优先级 10):允许 HTTP
| 字段 | 值 |
|---|---|
| 名称 | 允许 HTTP |
| 方向 | 入站 |
| 动作 | 允许 |
| 目标端口 | 80 |
| 协议 | TCP |
规则二(优先级 10):允许 HTTPS
| 字段 | 值 |
|---|---|
| 名称 | 允许 HTTPS |
| 方向 | 入站 |
| 动作 | 允许 |
| 目标端口 | 443 |
| 协议 | TCP |
规则三(优先级 100):拒绝其他所有入站
| 字段 | 值 |
|---|---|
| 名称 | 默认拒绝 |
| 方向 | 入站 |
| 动作 | 拒绝 |
| 源 IP | (留空,匹配所有) |
| 优先级 | 100 |
示例 4:UDP 协议过滤
拒绝来自外网的 UDP 流量(保留内网 UDP):
| 字段 | 值 |
|---|---|
| 名称 | 允许内网 UDP |
| 方向 | 入站 |
| 动作 | 允许 |
| 源 IP | 192.168.0.0/16 |
| 协议 | UDP |
| 优先级 | 10 |
| 字段 | 值 |
|---|---|
| 名称 | 拒绝外网 UDP |
| 方向 | 入站 |
| 动作 | 拒绝 |
| 协议 | UDP |
| 优先级 | 50 |
DDoS 应急响应
当遭受 DDoS(分布式拒绝服务)攻击时,可按以下步骤快速响应:
第一步:识别攻击来源
查看系统日志,找出高频访问的 IP 或 IP 段:
# 查看连接数最多的 IP(Linux)
netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -rn | head -20第二步:快速封锁攻击 IP
在防火墙中添加高优先级拒绝规则:
| 字段 | 值 |
|---|---|
| 名称 | 封锁攻击 IP |
| 方向 | 入站 |
| 动作 | 拒绝 |
| 源 IP | 攻击者IP或网段 |
| 优先级 | 1(最高优先级) |
第三步:启用速率限制
配合 WAF 的速率限制功能,限制单 IP 的请求频率。
第四步:联系上游服务商
若攻击流量超过服务器带宽,需联系 IDC 或云服务商在上游进行流量清洗。
安全最佳实践
最小权限原则
默认拒绝所有入站流量,仅开放必要的端口和 IP。避免使用"允许所有"规则。
定期审查规则
定期检查防火墙规则列表,删除不再需要的规则,避免规则积累导致安全漏洞。
日志监控
定期查看系统日志,关注异常的连接尝试,及时发现潜在的攻击行为。
规则顺序
防火墙规则按优先级从小到大依次匹配,第一条匹配的规则生效。请确保规则顺序正确,避免意外拦截正常流量。
白名单前确认自身 IP
在添加"默认拒绝所有"规则前,务必先添加允许自己当前 IP 的规则,否则将被锁定在外。
常见问题
Q:添加规则后无法访问服务?
检查是否有高优先级的拒绝规则覆盖了允许规则。规则优先级数字越小越先匹配。
Q:如何临时禁用某条规则?
点击规则列表中的启用开关,可随时启停单条规则,无需删除。
Q:防火墙规则对 NetPanel 自身管理界面是否生效?
是的,防火墙规则同样作用于 NetPanel 管理界面的访问。请确保管理员 IP 在允许列表中。