Linux有防火墙吗?如何配置和使用Linux系统防火墙

来源:建站技术作者:北京SEO公司头衔:草根站长
导读:本期聚焦于小伙伴创作的《Linux有防火墙吗?如何配置和使用Linux系统防火墙》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《Linux有防火墙吗?如何配置和使用Linux系统防火墙》有用,将其分享出去将是对创作者最好的鼓励。

Linux系统本身自带了防火墙功能,用于管控进出系统的网络流量,过滤不符合规则的数据包,从而提升系统的网络安全性。常见的Linux防火墙实现方案包括iptables和nftables,大部分主流Linux发行版都会默认集成其中一种,或者提供对应的管理工具供用户使用。

Linux有防火墙吗?如何配置和使用Linux系统防火墙

Linux常见的防火墙实现

iptables

iptables是Linux系统中历史悠久的防火墙工具,基于内核的netfilter框架实现,通过定义规则链和规则表来管控网络流量。它支持对数据包的源地址、目标地址、端口、协议等多个维度进行过滤,是很多老版本Linux发行版的默认防火墙方案。

nftables

nftables是iptables的继任者,同样基于netfilter框架,但是提供了更简洁的语法和更高的性能,解决了iptables规则管理复杂、扩展性不足的问题。目前很多新的Linux发行版已经默认使用nftables作为防火墙底层实现,部分发行版还提供了兼容iptables语法的适配层。

不同发行版的防火墙管理工具

为了方便用户配置防火墙,不同Linux发行版提供了对应的上层管理工具,不需要用户直接操作底层的iptables或nftables命令:

  • firewalld:主要用于RedHat系列发行版,比如CentOS、Rocky Linux、Fedora等,支持动态更新规则,不需要重启服务就能生效。
  • ufw:全称为Uncomplicated Firewall,主要用于Debian系列发行版,比如Ubuntu、Debian等,语法简单,适合新手快速配置。
  • 直接操作底层工具:如果用户使用的是精简版Linux系统,也可以直接使用iptables或nftables命令来配置规则。

基础配置示例

使用ufw配置防火墙(Ubuntu为例)

ufw的语法非常简洁,以下是常用的配置操作:

# 查看ufw状态
sudo ufw status

# 启用ufw防火墙,启用后会默认拒绝所有入站流量,允许所有出站流量
sudo ufw enable

# 允许SSH端口(默认22)的入站流量,避免启用防火墙后无法远程连接
sudo ufw allow 22/tcp

# 允许80端口(HTTP)的入站流量
sudo ufw allow 80/tcp

# 允许443端口(HTTPS)的入站流量
sudo ufw allow 443/tcp

# 拒绝3306端口(MySQL)的入站流量
sudo ufw deny 3306/tcp

# 删除允许22端口的规则
sudo ufw delete allow 22/tcp

使用firewalld配置防火墙(CentOS为例)

firewalld使用区域(zone)的概念来管理规则,默认区域是public,以下是常用操作:

# 查看firewalld状态
sudo systemctl status firewalld

# 启动firewalld服务并设置开机自启
sudo systemctl start firewalld
sudo systemctl enable firewalld

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

# 允许HTTP服务(对应80端口)通过防火墙
sudo firewall-cmd --permanent --add-service=http

# 允许HTTPS服务(对应443端口)通过防火墙
sudo firewall-cmd --permanent --add-service=https

# 允许自定义端口3306的TCP流量
sudo firewall-cmd --permanent --add-port=3306/tcp

# 重新加载规则使永久配置生效
sudo firewall-cmd --reload

# 查看当前区域的开放规则
sudo firewall-cmd --list-all

直接使用iptables配置规则

如果需要直接操作iptables,以下是基础的规则配置示例:

# 查看当前iptables规则
sudo iptables -L -n -v

# 允许本地回环接口的流量
sudo iptables -A INPUT -i lo -j ACCEPT

# 允许已建立连接和相关连接的流量
sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# 允许SSH端口22的TCP入站流量
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT

# 允许80端口的TCP入站流量
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT

# 设置默认入站规则为拒绝所有流量
sudo iptables -P INPUT DROP

# 保存iptables规则,不同发行版保存命令可能有差异,以下是Debian系的方式
sudo iptables-save > /etc/iptables/rules.v4

防火墙规则注意事项

配置Linux防火墙时需要注意以下几点:

  • 配置远程服务器的防火墙时,一定要先允许SSH端口的流量,否则启用防火墙后会导致无法远程连接服务器。
  • 修改规则后如果需要永久生效,需要根据使用的工具执行对应的保存操作,比如ufw的规则默认永久生效,firewalld需要加--permanent参数并reload,iptables需要手动保存规则到配置文件。
  • 测试规则时可以先临时添加规则,确认没有问题后再保存为永久配置,避免错误规则导致服务不可用。
  • 如果不需要防火墙功能,也可以关闭对应的服务,但是生产环境的服务器建议保持防火墙开启,只开放必要的端口。
Linux防火墙是系统网络安全的重要屏障,合理配置防火墙规则能够有效减少系统被攻击的风险,建议根据实际业务需求开放对应的端口和服务,避免不必要的端口暴露。

Linuxfirewalliptablesnftables修改时间:2026-07-19 13:45:27

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