Rain WikiWindows · Linux · Android

UFW (Uncomplicated Firewall)

内置工具Ubuntu, Debian

UFW (Uncomplicated Firewall) 是 Ubuntu 上的默认防火墙前端。它通过诸如 ufw allow 22/tcp 之类的简短命令来管理内核的数据包过滤器。它默认已安装但处于未激活状态,默认策略是拒绝入站连接并允许出站连接。

1规则

ufw allow 443/tcp 用于打开端口,ufw deny 用于阻止端口,ufw limit ssh 则允许 SSH 但会阻止频繁连接的地址。ufw allow from 203.0.113.5 to any port 22 仅允许特定的单个地址。应用程序配置文件(例如 'OpenSSH')可通过 ufw app list 列出。

2状态与删除

ufw status verbose 显示策略和规则;ufw status numbered 会为规则进行编号,以便通过 ufw delete <number> 删除某条规则。

3Docker 与 UFW

Docker 会为发布的容器端口写入自己的 iptables 规则,这些规则的处理优先级高于 UFW 的规则。因此,使用 docker run -p 发布的端口即使在 UFW 未允许的情况下也可能是可访问的。

如何在不把自己锁定的情况下开启 UFW

  1. 首先允许 SSH:sudo ufw allow OpenSSH
  2. 允许您需要的其他服务,例如:sudo ufw allow 443/tcp
  3. 开启防火墙:sudo ufw enable
  4. 检查结果:sudo ufw status verbose

注意事项

  • 在通过 SSH 启用 UFW 时如果没有添加 SSH 规则,将会切断您的连接。
  • Docker 容器发布的端口可能会绕过 UFW 规则。

资料来源

  1. ufw(8) 手册页 (Ubuntu) manpages.ubuntu.com
  2. 防火墙 (Ubuntu Server 文档) ubuntu.com

最后审核: