总体评价
在 Debian 上,防火墙不仅好用,而且配置门槛低、功能完备。系统自 Debian 10(Buster) 起默认采用 nftables 作为内核防火墙框架,配合用户友好的前端如 UFW 或 firewalld,可以满足从桌面到服务器的多数场景需求,日常可用性高、社区资料丰富。
常用工具对比
| 工具 |
易用性 |
适用场景 |
核心特点 |
典型命令 |
| UFW |
高 |
个人/服务器快速上手 |
默认策略为拒绝入站、允许出站;支持端口、协议、IP、速率限制、日志 |
sudo ufw allow 22/tcp; sudo ufw enable |
| firewalld |
中 |
需要“区域/服务”动态管理的服务器 |
基于区域(zones)与服务(services),便于复杂网络环境 |
sudo systemctl start firewalld |
| nftables |
低-中 |
高级用户、需要精细规则与高性能 |
新一代内核规则集,语法更现代,性能与可扩展性好 |
sudo nft list ruleset |
| iptables |
低-中 |
维护旧规则或兼容性需求 |
经典工具,规则表达灵活 |
sudo iptables -L -n -v |
| 上述工具在 Debian 上均有良好兼容性,可按熟悉程度与场景选择;UFW 适合新手,nftables/firewalld 适合进阶与复杂网络。 |
|
|
|
|
快速上手 UFW 示例
- 安装与启用
- sudo apt update && sudo apt install ufw
- sudo ufw default deny incoming
- sudo ufw default allow outgoing
- sudo ufw allow ssh(或 sudo ufw allow 22/tcp)
- sudo ufw enable
- 常用管理
- 查看状态:sudo ufw status(详细:sudo ufw status verbose)
- 放行端口/范围:sudo ufw allow 80/tcp;sudo ufw allow 1000:2000/tcp
- 按来源限制:sudo ufw allow from 203.0.113.10 to any port 22/tcp
- 速率限制防暴力:sudo ufw limit ssh
- 日志:sudo ufw logging on/medium;查看:/var/log/ufw.log
以上流程简单、可快速落地,适合大多数 Debian 服务器与桌面环境。
安全性与最佳实践
- 采用“默认拒绝入站、允许出站”的基线策略,仅对必要端口放行(如 22/80/443)。
- 启用日志并定期审计,关注被拒绝的连接尝试,必要时上调日志级别。
- 对关键服务(如 SSH)使用基于 IP 的白名单或限制连接速率,降低暴力破解风险。
- 保持系统与防火墙工具更新(apt update/upgrade),并配合最小权限与密钥登录等加固措施。
如何选择
- 追求简单与快速落地:选 UFW。
- 需要“区域/服务”与动态管理:选 firewalld。
- 追求更高可定制性与性能:选 nftables(或保留 iptables 兼容)。
- 无论选哪种,遵循“最小暴露面 + 默认拒绝 + 持续审计”的原则即可。