Linux系统基础12:防火墙管理 新手超详细教程
Linux 防火墙管理 新手超详细教程目录Linux 防火墙管理 新手超详细教程一、先搞懂防火墙核心基础概念1. 防火墙管什么三个流量方向2. 核心工作逻辑规则匹配 默认策略三种基础动作二、底层核心工具iptables1. 基础语法结构2. 常用操作与匹配条件核心操作命令常用匹配条件3. 新手必学实操举例例 1查看当前所有规则例 2允许 SSH22 端口的 TCP 入站流量例 3设置入站默认策略为丢弃白名单模式例 4只允许特定 IP 访问 SSH白名单例 5拉黑恶意 IP所有流量都丢弃例 6允许 ping 通本机ICMP 协议例 7删除一条规则4. 新手重要注意事项三、新手首选工具ufw1. 基础状态管理例 1查看防火墙状态例 2启用防火墙例 3关闭防火墙例 4重置所有规则恢复默认2. 默认策略新手不用改默认就很安全3. 核心实操端口与 IP 规则例 1开放 SSH 服务22 端口例 2开放网页服务 80 和 443 端口例 3开放一段端口范围例 4只允许指定 IP 访问 SSHIP 白名单例 5禁止某个 IP 访问所有端口例 6限制 SSH 连接速率防暴力破解4. 删除规则5. 新手完整配置流程示例四、区域化管理工具firewalld1. 核心概念区域Zone2. 最容易踩的坑运行时 vs 永久配置3. 基础状态命令例 1查看防火墙运行状态例 2查看当前默认区域例 3查看当前区域的所有生效规则例 4启动 / 停止 firewalld 服务4. 常用规则配置举例例 1永久开放 HTTP 服务80 端口例 2永久开放自定义端口比如 MySQL 3306例 3移除端口 / 服务例 4添加 IP 白名单允许该 IP 所有访问例 5禁止指定 IP 访问富规则五、新手选型与避坑指南1. 我该选哪个工具2. 新手最高频踩坑预警坑 1远程配置先把自己关外面了坑 2firewalld 改完规则不生效坑 3分不清 DROP 和 REJECT坑 4WSL 里防火墙不生效3. 排错小技巧防火墙是 Linux 系统安全的第一道防线核心作用是管控进出系统的网络流量允许合法的访问通过拦截非法、可疑的连接相当于系统的「网络门卫」。Linux 主流的防火墙工具有三层底层核心iptables操作内核 netfilter 模块所有发行版通用功能极强但语法复杂上层简化工具ufwUbuntu/Debian 系列默认专为简化 iptables 设计语法极其简单新手首选firewalldCentOS/RHEL 系列默认引入「区域」概念适合多网络环境支持动态更新本质关系ufw 和 firewalld 都是「壳」底层最终还是调用 iptables或新一代 nftables来执行规则只是把复杂的语法封装成了简单易懂的命令。下面我们从基础原理到每个工具的实操逐层讲解每个命令都配逐成分拆解 真实场景举例 新手避坑提醒。一、先搞懂防火墙核心基础概念1. 防火墙管什么三个流量方向防火墙根据流量的走向分成三类管控新手 99% 的场景只需要管「入站流量」。流量方向对应链名含义日常场景入站流量INPUT外部机器主动发往本机的数据包别人 SSH 连你、别人访问你搭的网站出站流量OUTPUT本机主动发往外部的数据包你访问百度、你下载软件、你连别人的服务器转发流量FORWARD经过本机转发给其他机器的数据包本机当路由器、网关时中转其他设备的流量2. 核心工作逻辑规则匹配 默认策略防火墙是一条条「规则」的集合数据包过来时从上到下按顺序匹配匹配到某条规则直接执行规则对应的动作不再往下检查所有规则都不匹配执行「默认策略」三种基础动作动作效果适用场景ACCEPT允许数据包通过开放合法的端口 / IPDROP直接丢弃数据包不做任何回应拉黑恶意 IP对方会表现为「连接超时」不知道端口是否存在更安全REJECT拒绝数据包并返回「连接被拒绝」的提示明确告诉对方端口不可用调试时用安全最佳实践默认策略设为拒绝只手动开放需要的端口白名单模式比「默认全放只拉黑」安全得多。二、底层核心工具iptablesiptables是 Linux 内核级防火墙的标准管理工具所有发行版都支持嵌入式精简系统也基本自带。它功能极强但语法繁琐、容易写错新手先掌握基础入站规则即可。1. 基础语法结构iptables [-t 表名] 操作命令 [链名] [匹配条件] -j 执行动作表名不写默认是filter表新手 99% 的场景都用这个表专门管控数据包过滤其他表nat、mangle 等新手不用深入。操作命令增、删、查、改规则链名INPUT / OUTPUT / FORWARD对应三个流量方向匹配条件按 IP、端口、协议等条件过滤数据包动作ACCEPT / DROP / REJECT2. 常用操作与匹配条件核心操作命令命令作用-L查看当前链的所有规则-A追加一条规则到链的末尾-I插入一条规则到链的开头优先级最高先匹配-D删除指定规则-P设置链的默认策略常用匹配条件条件作用示例-p 协议匹配网络协议-p tcp、-p udp、-p icmp--dport 端口匹配目标端口入站时是本机被访问的端口--dport 22-s 源IP匹配发送方的 IP 地址-s 192.168.1.100-i 网卡名匹配从哪个网卡进来的数据包-i eth03. 新手必学实操举例⚠️ 远程操作服务器 / 开发板警告永远先放开 SSH 22 端口再修改默认策略不然直接把自己挡在外面只能通过串口 / 机房恢复。例 1查看当前所有规则iptables -L -n逐成分拆解iptables命令名-L列出所有规则-n以数字形式显示 IP 和端口不解析域名速度更快输出会按 INPUT、FORWARD、OUTPUT 分成三块分别对应三个链的规则。例 2允许 SSH22 端口的 TCP 入站流量iptables -A INPUT -p tcp --dport 22 -j ACCEPT逐成分拆解-A INPUT给 INPUT 入站链追加一条规则-p tcp只匹配 TCP 协议的数据包--dport 22目标端口是 22SSH 默认端口-j ACCEPT匹配到就执行「允许通过」的动作效果外部机器可以通过 22 端口 SSH 连接到本机。例 3设置入站默认策略为丢弃白名单模式iptables -P INPUT DROP拆解-P INPUT DROP给 INPUT 链设置默认策略为 DROP效果所有没被规则明确允许的入站数据包全部直接丢弃安全性最高。 再次提醒执行这条之前必须已经放开了 SSH 端口例 4只允许特定 IP 访问 SSH白名单iptables -I INPUT -s 192.168.1.100 -p tcp --dport 22 -j ACCEPT拆解-I INPUT插入到入站链最开头优先匹配-s 192.168.1.100只有源 IP 是 192.168.1.100 才匹配后面的端口和协议和之前一致效果只有 192.168.1.100 这台机器能 SSH 连过来其他 IP 都被默认策略挡住是最安全的远程登录方式。例 5拉黑恶意 IP所有流量都丢弃iptables -I INPUT -s 192.168.1.200 -j DROP效果192.168.1.200 这个 IP 发的所有包直接丢掉完全访问不了本机。例 6允许 ping 通本机ICMP 协议iptables -A INPUT -p icmp -j ACCEPT效果别人执行ping 你的IP能收到回应方便调试网络。例 7删除一条规则方法一按编号删除推荐不容易写错# 先查看规则编号 iptables -L -n --line-numbers # 删除 INPUT 链第 3 条规则 iptables -D INPUT 3方法二按规则内容删除iptables -D INPUT -p tcp --dport 80 -j ACCEPT4. 新手重要注意事项规则是临时的iptables 规则默认存在内存里重启系统就会全部消失。保存规则到文件iptables-save /etc/iptables.rules重启后恢复iptables-restore /etc/iptables.rulesUbuntu 可以装iptables-persistent工具实现开机自动加载。规则顺序很重要从上到下匹配匹配到就停。比如前面已经 DROP 了某个 IP后面再写允许也没用。嵌入式场景OK62xx 这类精简嵌入式 Linux 一般只带 iptables没有 ufw/firewalld直接用 iptables 配置即可。三、新手首选工具ufwufw全称 Uncomplicated Firewall是 Ubuntu/Debian 系列默认的防火墙工具专门为了简化 iptables 设计语法极其简单是新手学习防火墙的最佳选择。WSL 里的 Ubuntu 也自带 ufw但注意WSL2 网络共享 Windows 内核流量优先经过 Windows 防火墙ufw 的管控效果有限实体机 / 虚拟机 / 服务器上的 Ubuntu 完全生效。1. 基础状态管理例 1查看防火墙状态sudo ufw status输出Status: inactive代表未启用Status: active代表已启用启用状态下会列出当前所有生效的规则例 2启用防火墙sudo ufw enable⚠️远程操作必须先放开 SSH 端口再执行执行后会提示「可能中断现有 SSH 连接」输入y回车确认即可。例 3关闭防火墙sudo ufw disable例 4重置所有规则恢复默认sudo ufw reset清空所有自定义规则回到初始状态。2. 默认策略新手不用改默认就很安全ufw 出厂默认就是最安全的白名单模式入站默认deny全部拒绝出站默认allow全部允许也就是你主动访问外面不受限制外面主动连你默认全被挡住需要什么端口就手动开放什么端口完全符合最小权限原则。3. 核心实操端口与 IP 规则语法非常直观ufw 动作 条件动作主要有allow允许、deny拒绝、limit限流。例 1开放 SSH 服务22 端口写法一按服务名ufw 内置了常用服务和端口的对应关系sudo ufw allow ssh写法二按端口 协议更精准推荐sudo ufw allow 22/tcp拆解允许 TCP 协议的 22 端口入站为什么指定 tcpSSH 只用 TCP 协议不写的话会同时放开 TCP 和 UDP没必要。例 2开放网页服务 80 和 443 端口sudo ufw allow 80/tcp sudo ufw allow 443/tcp对应 HTTP 和 HTTPS 服务搭网站必开。例 3开放一段端口范围比如开放 1000~2000 的所有 TCP 端口sudo ufw allow 1000:2000/tcp例 4只允许指定 IP 访问 SSHIP 白名单sudo ufw allow from 192.168.1.100 to any port 22 proto tcp逐成分拆解allow from 192.168.1.100只有源 IP 是这个地址才允许to any port 22目标端口是 22proto tcpTCP 协议效果除了 192.168.1.100其他 IP 都连不上 SSH生产环境推荐这么配置。例 5禁止某个 IP 访问所有端口sudo ufw deny from 192.168.1.200效果这个 IP 的所有入站流量全部拒绝。例 6限制 SSH 连接速率防暴力破解sudo ufw limit ssh/tcp作用同一个 IP 30 秒内最多发起 6 次 SSH 连接超过就拒绝能有效防止暴力破解密码。只要开了 SSH 远程登录都建议加上这条规则。4. 删除规则方法一按规则内容删除sudo ufw delete allow 80/tcp拆解在原来的允许命令前面加delete就能删除对应规则。方法二按编号删除不容易错# 先查看带编号的规则列表 sudo ufw status numbered # 删除第 2 条规则 sudo ufw delete 25. 新手完整配置流程示例场景新服务器配置防火墙只开放 SSH 和网页端口限制 SSH 暴力破解# 1. 先放开SSH防止启用后自己断连 sudo ufw allow 22/tcp # 2. 开启SSH速率限制防暴力破解 sudo ufw limit 22/tcp # 3. 开放网页端口 sudo ufw allow 80/tcp sudo ufw allow 443/tcp # 4. 启用防火墙 sudo ufw enable # 5. 查看状态确认规则都在 sudo ufw status四、区域化管理工具firewalldfirewalld是 CentOS、RHEL、Rocky Linux 等红帽系发行版的默认防火墙和 ufw 同级都是上层简化工具。它的核心特点是「区域Zone」设计不同网络环境对应不同安全级别的区域网卡可以归属到不同区域适合经常切换网络、多网卡的场景。1. 核心概念区域Zone系统预设了多个安全等级不同的区域常用的有区域安全等级说明drop最高所有入站包全部丢弃只允许出站相当于隐身模式block高入站全部拒绝返回拒绝提示public中默认公共网络环境只开放手动添加的端口 / 服务默认最常用home/internal中低家庭 / 内部局域网信任度高开放更多服务trusted最低完全信任所有流量都允许新手只用默认的public区域就足够了。2. 最容易踩的坑运行时 vs 永久配置firewalld 的规则分两种运行时配置默认修改的就是这个立即生效但重启 firewalld 服务就消失永久配置加--permanent参数不立即生效重启服务后永久保留✅ 标准操作流程加--permanent写规则 → 执行firewall-cmd --reload加载生效 → 既立即生效又永久保存。3. 基础状态命令例 1查看防火墙运行状态sudo firewall-cmd --state输出running代表正在运行not running代表未启动。例 2查看当前默认区域sudo firewall-cmd --get-default-zone默认一般是public。例 3查看当前区域的所有生效规则sudo firewall-cmd --list-all会输出区域名、绑定的网卡、开放的服务、开放的端口等完整信息。例 4启动 / 停止 firewalld 服务# 启动服务 sudo systemctl start firewalld # 设置开机自启 sudo systemctl enable firewalld # 停止服务 sudo systemctl stop firewalld4. 常用规则配置举例以下都以默认public区域为例不指定--zone就默认操作当前区域。例 1永久开放 HTTP 服务80 端口# 添加永久规则 sudo firewall-cmd --permanent --add-servicehttp # 重新加载让规则立即生效 sudo firewall-cmd --reload拆解--permanent标记为永久规则--add-servicehttp添加 http 服务系统内置了服务对应的端口不用记端口号可用的内置服务可以用firewall-cmd --get-services查看全部。例 2永久开放自定义端口比如 MySQL 3306sudo firewall-cmd --permanent --add-port3306/tcp sudo firewall-cmd --reload格式--add-port端口号/协议例 3移除端口 / 服务# 移除服务 sudo firewall-cmd --permanent --remove-servicehttp # 移除端口 sudo firewall-cmd --permanent --remove-port3306/tcp # 重载生效 sudo firewall-cmd --reload例 4添加 IP 白名单允许该 IP 所有访问sudo firewall-cmd --permanent --add-source192.168.1.100 sudo firewall-cmd --reload例 5禁止指定 IP 访问富规则sudo firewall-cmd --permanent --add-rich-rulerule familyipv4 source address192.168.1.200 drop sudo firewall-cmd --reload效果丢弃 192.168.1.200 的所有入站数据包。五、新手选型与避坑指南1. 我该选哪个工具系统 / 场景推荐工具理由Ubuntu / Debian / WSLufw语法最简单新手零门槛系统默认自带CentOS / RHEL / Rockyfirewalld系统默认区域化管理适合服务器场景嵌入式 Linux / 精简系统iptables体积小通用性强上层工具一般没装❌ 不要多个工具混着用选一个就好同时启用多个会导致规则混乱、异常。2. 新手最高频踩坑预警坑 1远程配置先把自己关外面了错误操作直接启用防火墙没先开放 SSH 端口。后果SSH 连接直接断开再也连不上只能通过串口 / 机房重装 / 控制台恢复。正确顺序永远先加 SSH 允许规则 → 确认规则生效 → 再启用防火墙 → 不要关闭当前终端新开一个终端测试登录正常再退出。坑 2firewalld 改完规则不生效原因没加--permanent或者加了但没reload。记住口诀加永久必重载。坑 3分不清 DROP 和 REJECTDROP静默丢包对方表现为连接超时不知道端口是否存在更安全隐蔽生产环境用。REJECT明确返回拒绝对方知道端口存在但不让连调试的时候用。坑 4WSL 里防火墙不生效WSL2 的网络是共享 Windows 的流量优先经过 Windows 防火墙WSL 内部的 ufw/iptables 只能管控 WSL 内部的流量要对外管控端口需要在 Windows 防火墙里设置。3. 排错小技巧服务连不上先临时关防火墙测试一下关了就能通99% 是防火墙规则的问题。检查规则顺序iptables/ufw 都是从上到下匹配前面拒绝了后面再允许也没用。嵌入式设备排查先用iptables -L -n看有没有规则嵌入式系统默认一般是空规则、全放行。

相关新闻

Python实现Live2D桌宠:从模型解析到交互式桌面应用开发

Python实现Live2D桌宠:从模型解析到交互式桌面应用开发

1. 项目概述:为什么用Python玩转Live2D桌宠是个好主意?如果你是一个喜欢在桌面上养点“电子宠物”的开发者,或者对Live2D这种灵动可爱的2D渲染技术感兴趣,那么用Python来实现一个Live2D v3桌宠,绝对是一个既有趣又有成…

2026/7/15 4:50:59 阅读更多 →
Vue.js WebSocket 实战:从零构建企业级实时应用架构

Vue.js WebSocket 实战:从零构建企业级实时应用架构

1. WebSocket与Vue.js的完美结合WebSocket作为一种全双工通信协议,已经成为现代Web应用中实时通信的首选方案。相比传统的HTTP轮询,它能建立持久连接,实现毫秒级的数据推送。我在多个企业级项目中验证过,当需要实现实时监控、在线…

2026/7/15 4:50:59 阅读更多 →
从伏安曲线到选型指南:深入解析二极管关键特性与典型应用匹配

从伏安曲线到选型指南:深入解析二极管关键特性与典型应用匹配

1. 二极管的核心特性解析二极管的伏安特性曲线是理解其工作原理的钥匙。这条曲线描绘了二极管在不同电压下的电流响应,就像汽车的油门踏板与速度的关系图。硅二极管和锗二极管虽然都是单向导电,但它们的"性格"截然不同。硅管通常需要0.7V才能完…

2026/7/15 4:48:58 阅读更多 →

最新新闻

【关注可白嫖源码】--课程设计+毕业设计+springboot快递代拿系统[编号:project16522](案例分析)

【关注可白嫖源码】--课程设计+毕业设计+springboot快递代拿系统[编号:project16522](案例分析)

本文仅展示核心实现逻辑与部分代码片段,完整项目源码、配套文档、数据库脚本内容较多,篇幅有限无法全部放出。 有需要完整资源的同学,可以在评论区留言【资料或领源码】,我会一 一回复站内私信,发送完整文件 摘 要 随…

2026/7/15 5:31:13 阅读更多 →
AI智能门锁核心技术解析:从指纹识别到动态学习机制

AI智能门锁核心技术解析:从指纹识别到动态学习机制

那天晚上,我站在家门口,手里拎着刚买的菜,看着眼前这把新装的AI智能门锁,心里突然冒出一个念头:它真的认识我吗?这不是我第一次用指纹开锁。但这次不一样——这把锁宣传的是“AI学习能力”,号称…

2026/7/15 5:31:13 阅读更多 →
C++ STL算法完全指南:从迭代器到现代C++实战应用

C++ STL算法完全指南:从迭代器到现代C++实战应用

1. 项目概述:为什么我们需要一个C算法学习库?如果你正在学习C,或者已经是一名C开发者,那么“算法”这个词对你来说一定不陌生。无论是面试时被问到的“手写一个快排”,还是实际项目中需要处理数据排序、查找、去重&…

2026/7/15 5:27:12 阅读更多 →
彻底解决Delphi/C++Builder程序缺少VCL60.bpl运行时错误

彻底解决Delphi/C++Builder程序缺少VCL60.bpl运行时错误

1. 项目概述:直面一个经典的运行时“幽灵”如果你是一位使用Delphi或CBuilder 6(以及相近版本)进行开发的程序员,那么“VCL60.bpl”这个文件名,很可能是一个让你心头一紧的“老朋友”。这个看似普通的文件,…

2026/7/15 5:27:12 阅读更多 →
现代C++特性深度解析:从核心原理到工程实践

现代C++特性深度解析:从核心原理到工程实践

1. 项目概述:为什么我们需要“现代C”?如果你和我一样,是从C98甚至更早的版本一路写过来的,那么对“现代C”这个词一定感触颇深。它不是一个营销术语,而是对C11及之后版本一系列革命性变化的统称。在C98时代&#xff0…

2026/7/15 5:25:12 阅读更多 →
嵌入式C/C++中const关键字的深度解析与实战应用

嵌入式C/C++中const关键字的深度解析与实战应用

1. 项目概述:为什么const是嵌入式C/C工程师的“必答题”?在嵌入式软件工程师的面试里,尤其是C/C方向的岗位,有一个问题出现的频率高到几乎可以称之为“面试官的开场白”或“技术能力的试金石”,那就是关于const关键字的…

2026/7/15 5:25:12 阅读更多 →

日新闻

YOLO11 改进 - 特征融合 | STFFM空间时间特征融合模块,强化时空互补、抑制噪声,助力小目标检测高效涨点

YOLO11 改进 - 特征融合 | STFFM空间时间特征融合模块,强化时空互补、抑制噪声,助力小目标检测高效涨点

前言 本文介绍了面向红外小目标检测的时空特征融合模块——STFFM,用于增强复杂背景下目标与噪声、杂波的区分能力。该方法通过拼接空间特征与时间/运动特征,并结合通道注意力、空间注意力和残差增强机制,实现对关键语义通道与疑似目标区域的…

2026/7/15 0:01:00 阅读更多 →
YOLO26 改进 - 特征融合 | STFFM空间时间特征融合模块,强化时空互补、抑制噪声,助力小目标检测高效涨点

YOLO26 改进 - 特征融合 | STFFM空间时间特征融合模块,强化时空互补、抑制噪声,助力小目标检测高效涨点

前言 本文介绍了面向复杂背景小目标检测的时空特征融合模块——STFFM。该模块通过空间分支与时间/运动分支的特征拼接,引入通道注意力和空间注意力对融合特征进行自适应筛选,并结合残差增强与通道压缩,突出目标区域、抑制背景噪声。我们将 S…

2026/7/15 0:01:00 阅读更多 →
行星减速机为什么能提高扭矩?从功率守恒到输出扭矩校核

行星减速机为什么能提高扭矩?从功率守恒到输出扭矩校核

一、为什么减速以后扭矩会增大 旋转机械的功率、转速和扭矩之间存在以下关系: T 9550 P n 其中: T为扭矩,单位Nm; P为功率,单位kW; n为转速,单位r/min。 在功率基本不变的情况下:…

2026/7/15 0:03:00 阅读更多 →

周新闻

互联网大厂 Java 求职面试:燕双非的搞笑回答与技术探讨

互联网大厂 Java 求职面试:燕双非的搞笑回答与技术探讨

互联网大厂 Java 求职面试:燕双非的搞笑回答与技术探讨 在一个阳光明媚的上午,互联网大厂的面试官坐在桌前,准备迎接他的面试候选人——燕双非,一个以搞笑和幽默著称的程序员。第一轮提问 面试官:燕双非,作…

2026/7/14 16:53:23 阅读更多 →
车载以太网PMA测试设备选型:示波器、VNA、信号源3类仪器关键参数与预算评估

车载以太网PMA测试设备选型:示波器、VNA、信号源3类仪器关键参数与预算评估

车载以太网PMA测试设备选型:示波器、VNA、信号源3类仪器关键参数与预算评估在智能驾驶和车联网技术快速发展的今天,车载以太网作为新一代车载网络的核心传输技术,其物理层性能直接决定了数据传输的可靠性和稳定性。1000BASE-T1作为当前主流的…

2026/7/14 14:00:13 阅读更多 →
VSCode EIDE 插件 2.0:APM32/STM32 项目迁移实战,5步完成Keil工程转换

VSCode EIDE 插件 2.0:APM32/STM32 项目迁移实战,5步完成Keil工程转换

VSCode EIDE 插件 2.0:APM32/STM32 项目迁移实战指南嵌入式开发领域正经历一场工具链的静默革命。当传统Keil用户首次打开VSCode的扩展市场搜索EIDE时,往往会惊讶于这个看似简单的插件竟能重构十余年的开发习惯。本文将揭示如何用五个精准步骤&#xff0…

2026/7/14 7:15:24 阅读更多 →

月新闻