导读:本期聚焦于小伙伴创作的《如何在Linux中配置防火墙?新手必备的iptables与firewalld实操指南》,敬请观看详情。服务器上线后遭遇不明端口扫描,多半是防火墙没配好。Linux系统自带两类主流防护机制:iptables基于内核netfilter做规则过滤,firewalld用区域化管理降低操作门槛。直接关掉防火墙看似省事,实则把SSH和数据库端口暴露在外网。本文从屏蔽危险端口、放行业务流量两个角度,对比命令行与配置文件两种做法,并给出防止锁死远程连接的恢复方案,帮助运维人员用最小成本建立第一道网络防线。

在Linux系统里配置防火墙,核心目标是控制哪些网络流量可以进入、转发或发出本机。目前最常见的两套方案分别是传统的iptables和较新的firewalld,它们最终都依赖内核的netfilter框架来处理数据包。理解二者差异并掌握基础命令,是服务器安全运维的第一步。

如何在Linux中配置防火墙?新手必备的iptables与firewalld实操指南

一、iptables基础配置

iptables是一套直接操作netfilter规则表的命令行工具,它将规则分为filter、nat、mangle等表,其中filter表最常用,包含INPUT、OUTPUT、FORWARD三条链。管理员通过向链中追加规则,决定数据包是被接受(ACCEPT)、丢弃(DROP)还是拒绝(REJECT)。

例如,要放行SSH默认端口22并拒绝其他所有入站连接,可以先设置默认策略为DROP,再允许回环和已建立连接。下面的脚本展示了最小可用配置:

#!/bin/bash
# 清除已有规则
iptables -F
iptables -X

# 设置默认策略:入站丢弃,转发丢弃,出站允许
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

# 允许回环流量
iptables -A INPUT -i lo -j ACCEPT

# 允许已建立或相关的连接,避免阻断响应包
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# 放行SSH端口
iptables -A INPUT -p tcp --dport 22 -j ACCEPT

# 保存规则(CentOS示例)
service iptables save

这种方式的优点是所有规则一目了然,适合需要精细控制转发或做NAT的场景。缺点是规则为临时生效,重启后需依赖保存机制恢复,且命令顺序敏感,写错容易把自己锁在服务器外面。

为了防止配置失误导致无法远程登录,建议在修改前通过云厂商控制台或本地终端预留一个定时恢复任务,比如五分钟后自动清空INPUT链,确认无误后再取消。

二、firewalld区域化配置

firewalld在iptables之上做了一层抽象,引入“区域(zone)”概念。每个网卡可绑定一个区域,区域里预定义了服务、端口和富规则的信任级别。相比直接写链,firewalld支持动态修改且无需重启守护进程即可生效。

在CentOS 7及以后版本中,firewalld通常默认启用。使用firewall-cmd命令可以查看当前活跃区域并放行HTTP服务:

# 查看默认区域
firewall-cmd --get-default-zone

# 临时放行80端口(重启后失效)
firewall-cmd --add-port=80/tcp

# 永久放行并立即生效
firewall-cmd --permanent --add-service=http
firewall-cmd --reload

# 查看已开放服务
firewall-cmd --list-all

firewalld的配置文件位于/etc/firewalld/目录下,用户也可以直接编辑xml文件来定义自定义服务。它的优势是对新手友好,不容易因规则顺序出现隐蔽错误;但在极复杂的网络拓扑中,其抽象层有时反而让调试变得不直接。

若系统同时安装了iptables与firewalld,二者会冲突,必须停用其中一个。生产环境推荐统一标准,避免多人维护时工具混用引发规则覆盖。

三、常见配置误区与恢复手段

一个典型误区是直接将INPUT链默认策略设为ACCEPT后又写少量DROP规则,以为这样更宽松安全,实际上遗漏的端口都可能暴露。正确做法是以最小权限为原则,默认拒绝再逐条放开。

当远程配置失误锁死连接时,可借助带外管理或单用户模式登录,执行iptables -P INPUT ACCEPTiptables -F清空规则。firewalld则可用systemctl stop firewalld临时关闭。下表对比了两种工具的关键差异:

对比项iptablesfirewalld
配置方式命令直写规则链区域与服务抽象
生效特点需保存防重启丢失支持永久与临时分离
学习曲线较陡平缓
适用场景复杂路由/NAT常规主机防护

综合来看,单机业务防护用firewalld能更快落地,而有定制转发需求的网关设备仍离不开iptables。无论选哪种,都应在测试环境验证后再上生产,并保留应急恢复通道。

Linux防火墙iptablesfirewalld修改时间:2026-08-07 22:21:29

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。