在 Ubuntu Server 上选择防火墙时,可以根据需求从以下几个主流方案中选择,各有优缺点:
1. UFW (Uncomplicated Firewall)
- 特点:Ubuntu 官方推荐的简易防火墙,基于
iptables/nftables封装,配置简单。 - 适用场景:适合新手或需要快速配置的场景。
- 常用命令:
sudo ufw enable # 启用 sudo ufw allow 22/tcp # 开放端口(如SSH) sudo ufw status # 查看规则 - 优点:语法直观,无需深入理解底层规则。
- 缺点:复杂功能(如端口转发)仍需手动编辑配置文件。
2. iptables
- 特点:Linux 传统防火墙工具,直接操作内核 Netfilter 模块,功能强大。
- 适用场景:需要精细控制规则(如 NAT、流量标记)。
- 示例规则(允许 SSH):
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT sudo iptables -A INPUT -j DROP # 默认拒绝其他流量 - 优点:灵活性高,适合复杂需求。
- 缺点:规则语法复杂,需手动持久化(需安装
iptables-persistent)。
3. nftables
- 特点:
iptables的替代品,更高效的规则集管理,Ubuntu 22.04+ 默认后端。 - 适用场景:新系统或需要未来兼容性的场景。
- 配置示例:
sudo nft add table inet my_table sudo nft add chain inet my_table my_chain { type filter hook input priority 0 ; } sudo nft add rule inet my_table my_chain tcp dport 22 accept - 优点:性能更好,规则更简洁。
- 缺点:学习曲线略陡,社区资源较
iptables少。
4. firewalld
- 特点:动态防火墙管理工具,支持 zones 和服务预设(常见于 RHEL/CentOS,但 Ubuntu 也可用)。
- 适用场景:需要动态规则(如频繁变更网络环境)。
- 安装与使用:
sudo apt install firewalld sudo firewall-cmd --add-service=ssh --permanent sudo firewall-cmd --reload - 优点:支持运行时动态更新,适合云环境。
- 缺点:在 Ubuntu 上不如 UFW 集成度高。
5. 商业/高级方案
- Fail2Ban:配合防火墙自动封禁恶意 IP(如防暴力破解)。
- Cloudflare WAF:云环境下的 Web 应用防火墙。
- Cisco/ Palo Alto:企业级硬件防火墙(非 Ubuntu 原生)。
推荐选择
- 新手/简单需求:UFW(默认工具,易用性最佳)。
- 高级用户/复杂规则:直接使用
nftables或iptables。 - 动态环境:
firewalld(尤其熟悉 RHEL 的情况)。
注意事项
- 持久化规则:
iptables/nftables需手动保存规则(如netfilter-persistent)。 - 多工具冲突:避免同时启用多个防火墙服务(如 UFW 和
firewalld)。 - 云平台:AWS/Azure 等云服务商的安全组需单独配置。
根据你的具体场景选择最合适的工具即可!
云服务器