如何在甲骨文 Ubuntu 实例上配置 UFW 防火墙增强安全性?

文章导读
在甲骨文 Ubuntu 实例上配置 UFW 防火墙,必须先放行 SSH 端口(默认 22)再启用防火墙,否则会导致无法远程连接。适用场景为需要操作系统层面过滤入站流量的实例,风险边界在于误操作可能阻断管理通道。
📋 目录
  1. A 命令速用版
  2. B 为什么会这样
  3. C 分步处理
  4. D 怎么验证是否生效
  5. E 常见坑
  6. F 常见问题
  7. G 参考来源
A A

在甲骨文 Ubuntu 实例上配置 UFW 防火墙,必须先放行 SSH 端口(默认 22)再启用防火墙,否则会导致无法远程连接。适用场景为需要操作系统层面过滤入站流量的实例,风险边界在于误操作可能阻断管理通道。

先说结论:配置 UFW 的核心是防止锁定 SSH 连接,建议在启用防火墙前明确放行管理端口。

  • 先判断:确认当前 SSH 端口号及甲骨文控制台安全列表规则
  • 优先做:执行允许 SSH 命令后再开启 UFW 服务
  • 再验证:通过状态查询和外部连通性测试确认规则生效

命令速用版

sudo ufw default deny incoming
sudo ufw allow 22/tcp
sudo ufw enable
sudo ufw status verbose

为什么会这样

UFW 是 Ubuntu 默认的防火墙配置工具,底层基于 iptables 或 nftables 管理网络规则。甲骨文云实例同时具备云平台层面的安全列表(Security Lists)和操作系统层面的防火墙,两者均会拦截流量。

分步处理

第一步:检查默认策略
设置默认拒绝入站流量,确保未明确允许的端口无法访问。

sudo ufw default deny incoming

第二步:放行 SSH 端口
在启用防火墙前必须执行此操作,默认 SSH 端口为 22,若修改过端口请替换对应数字。

如何在甲骨文 Ubuntu 实例上配置 UFW 防火墙增强安全性?
sudo ufw allow 22/tcp

第三步:启用防火墙
系统会提示可能中断 SSH 连接,确认已执行第二步后输入 y 确认。

sudo ufw enable

怎么验证是否生效

使用 status 命令查看规则列表,确认 22/tcp 状态为 ALLOW。

sudo ufw status verbose

检查监听端口,确认服务正常运行。

ss -tuln | grep 22

常见坑

1. 甲骨文控制台安全列表未放行:即使 UFW 允许,若云平台安全列表未开放 22 端口,外部仍无法连接。
2. IPv6 配置问题:部分实例默认启用 IPv6,若需限制需单独配置 ufw IPv6 规则。
3. 重置后未重新允许 SSH:执行 ufw reset 后会清空规则,再次 enable 前必须重新 allow 22。

常见问题

UFW 启用后无法 SSH 连接怎么办?

通过甲骨文控制台 VNC 登录实例,检查 ufw status 确认是否允许 22 端口,或暂时禁用防火墙排查。

如何在甲骨文 Ubuntu 实例上配置 UFW 防火墙增强安全性?

如何查看 UFW 拦截日志?

默认日志位于 /var/log/ufw.log,可使用 cat 或 tail 命令查看具体拦截记录。

UFW 和甲骨文安全列表优先级哪个高?

两者是串联关系,流量需同时通过云平台安全列表和操作系统防火墙才能到达服务,任一拦截均会导致不通。

参考来源

Ubuntu Official Documentation - Security firewall
URL: https://ubuntu.com/server/docs/security-firewall

Oracle Cloud Infrastructure Documentation - Security Lists
URL: https://docs.oracle.com/en-us/iaas/Content/Network/Concepts/securitylists.htm