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
- 首先允许 SSH:
sudo ufw allow OpenSSH - 允许您需要的其他服务,例如:
sudo ufw allow 443/tcp - 开启防火墙:
sudo ufw enable - 检查结果:
sudo ufw status verbose
注意事项
- 在通过 SSH 启用 UFW 时如果没有添加 SSH 规则,将会切断您的连接。
- Docker 容器发布的端口可能会绕过 UFW 规则。
相关文章
- SSH 密钥SSH 密钥身份验证的工作原理、如何使用 ssh-keygen 创建密钥、将其安装到服务器上以及如何保护它。
- systemd 单元与 systemctl什么是 systemd 单元、常见的单元类型,以及如何使用 systemctl 启动、停止、启用和检查服务。
- journalctl 与 systemd 日志如何使用 journalctl 读取日志、检查日志占用的空间大小,并通过 --vacuum 选项安全地缩减日志大小。
资料来源
- ufw(8) 手册页 (Ubuntu) manpages.ubuntu.com
- 防火墙 (Ubuntu Server 文档) ubuntu.com
最后审核: