服务器防火墙配置的核心原则是“默认拒绝、精准放行、分层防护、持续维护”。实际部署时,需要让云平台安全组与本地防火墙(如ufw、firewalld、iptables)协同工作,并根据操作系统选择合适工具,坚持规则持久化与日志验证,尽量避免远程失联和安全策略失效。

服务器防火墙配置与管理的重点,始终离不开“默认拒绝、精准放行、分层防护、持续维护”。这不是一次性安装后的静态设置,而是一套完整的安全管理闭环:先建立默认防护基线,再按需开放访问端口,随后验证规则是否生效,最后定期复查和优化。
先把防火墙的层级关系理清楚,别把安全组当成全部防线
腾讯云、阿里云等云服务器平台提供的安全组,本质上只是第一层网络访问控制,更像是机房入口的第一道闸门;而服务器本地防火墙,例如ufw、iptables、firewalld,才是真正运行在操作系统内核层面的安全屏障。最常见的场景就是:安全组里已经开放了80端口,但如果ufw没有同步允许,外部依然无法访问网站。归根结底,这两层防护策略必须配合使用——安全组负责控制“谁能到达服务器门口”,本地防火墙决定“谁能真正进入系统”。
按角色选工具,别硬套高级命令
- Ubuntu/Debian 环境,优先用 ufw:语法清晰,配置简单,适合运维经验相对有限的团队。
sudo ufw default deny incoming# 默认拒所有入站 sudo ufw allow OpenSSH# 放行SSH(自动识别22端口) sudo ufw allow 80/tcp # 放行HTTP sudo ufw enable # 启用并开机自启
- CentOS/RHEL 8+,默认用 firewalld:支持区域化管理,规则分类更清楚,维护起来更方便。
sudo firewall-cmd --permanent --add-service=ssh sudo firewall-cmd --permanent --add-port=443/tcp sudo firewall-cmd --reload
- 需要更精细的访问控制(例如限制IP段、封禁扫描源、启用连接状态检测)时,再使用 iptables/nftables:虽然规则灵活、功能强大,但也更容易出错,建议结合脚本或配置管理工具统一维护。
关键配置原则,避开高频踩坑点
- 启用前务必先放行SSH:否则执行
sudo ufw enable后,可能会导致服务器远程连接中断。 - 所有规则都要做好持久化:ufw默认会保存规则,firewalld需要加
--permanent,iptables则需sudo iptables-sa ve > /etc/iptables/rules.v4。 - 拒绝策略优先于直接关闭防火墙:即使服务暂时不可用,也不要为了排查问题随手执行
ufw disable。 - 开放端口时要明确协议类型:
ufw allow 3306不如ufw allow 3306/tcp更准确,像DNS这类UDP服务则必须单独声明。
日志与验证不能省,否则等于没配
- 查看实时拦截日志:
sudo tail -f /var/log/ufw.log(Ubuntu)或sudo journalctl -u firewalld -f(CentOS)。 - 测试防火墙规则是否生效:从另一台机器执行
nc -zv 服务器IP 22,确认SSH端口可连;再测试nc -zv 服务器IP 3306,通常应显示Connection refused或连接超时。 - 定期清理无效和冗余规则:使用
sudo ufw status numbered列出带编号的规则,再通过sudo ufw delete N删除不再使用的条目。
整体并不复杂,但在服务器防火墙配置与日常管理中,这些细节往往最容易被忽视。
