ufw 的默认策略才是关键
ufw 是 Debian/Ubuntu 上对 nftables 或 iptables 的易用封装,规则写法简单,但真正决定暴露面的是默认策略:入站默认接受时,只有被显式拒绝的端口是关的;入站默认拒绝时,只有被显式放行的是开的。后者是基线要求的姿态。核查时除了看启用状态,还要看默认策略与规则编号,规则编号也是后续删除操作的依据。
基本信息
| 加固项 | 防火墙启用与默认策略收敛 |
|---|---|
| 适用平台 | Linux(Ubuntu、Debian 及其衍生版) |
| 权限要求 | root 或 sudo |
| 达标判据 | 状态为 active,默认入站 deny(或 reject) |
| 配置文件 | /etc/ufw/ 下的 before.rules、user.rules 等 |
典型使用场景
- 新装云主机快速建立最小暴露面
- 从“全部放行”改为“逐项放行”的收敛过程
- 临时排障放行后核对是否已回收
- 巡检确认防火墙没有被误关或链路规则被清空
- 与云安全组配合做双层控制
状态与默认策略
状态与默认策略
sudo ufw status verbose # 状态、默认策略、日志级别、规则列表
sudo ufw status numbered # 带编号,便于精确删除
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow from 10.0.0.0/8 to any port 22 proto tcp # 先放行管理来源
sudo ufw enable # 顺序很重要:先放行再加严默认策略组合
| 入站 | 出站 | 含义与适用 |
|---|---|---|
| deny | allow | 基线推荐:只放行必要入站,出站不受限 |
| reject | allow | 回绝而非静默丢弃,便于对端快速感知 |
| allow | allow | 默认全开,不达标 |
| deny | deny | 出站也收严,需逐项放行更新源与 DNS,维护成本高 |
ufw enable 会立即套用默认策略:远程操作前必须先放行当前管理端口与来源,再启用,否则会把自己关在门外。已有的 SSH 会话可能不会立刻断开,但重连就会失败,最稳妥的做法是同时保留云控制台等带外通道。
ufw 的规则最终落到 /etc/ufw/user.rules,用 ufw 命令管理比手改文件可靠。若机器上同时装了 firewalld 或手工 nftables 规则,两套体系会互相覆盖,应先统一管理入口,避免出现“规则写了不生效”的假象。
云主机上还有一层安全组:主机防火墙与安全组是两套独立控制,任一放行都可能导致端口可达。核查要做双层确认,既要看 ufw 的规则列表,也要看云控制台的安全组入方向规则,两边都收敛才能真正减少暴露面。