网络基础回顾:OSI与TCP/IP模型、IP地址与子网划分、端口与协议
各位同学,咱们今天聊点实在的。防火墙这东西,说白了就是个网络流量的守门员。你要想当好这个守门员,首先得知道球场上都有哪些线、哪些位置。所以,在动手配规则之前,咱们必须把网络基础夯实了。
我见过太多新手,上来就写 deny any any,结果业务全断了,还一脸懵。嗯,这就是基础没打牢。今天这一章,咱们就把 OSI 模型、TCP/IP 模型、IP 地址、子网划分、端口和协议这些老生常谈的东西,用防火墙的视角重新捋一遍。
核心观点:防火墙规则的本质,就是在不同网络层级上,对流量进行“允许”或“拒绝”的决策。你理解得越深,规则就越精准。
2.1 OSI 模型与 TCP/IP 模型:防火墙的“作战地图”
OSI 七层模型,教科书上讲得很多。但在我眼里,它就是一张分层作战地图。每一层都干不同的事,防火墙可以在不同层级上设卡。
咱们直接看对比,这样更清楚:
| OSI 七层 | TCP/IP 四层 | 防火墙关注点 | 我的一句话理解 |
|---|---|---|---|
| 应用层 (7) | 应用层 | HTTP、FTP、DNS 协议内容 | 看门大爷检查你包里装的是书还是刀 |
| 表示层 (6) | 数据加密、格式转换 | 一般不管,但下一代防火墙会看 | |
| 会话层 (5) | 会话建立与管理 | 防火墙会跟踪会话状态 | |
| 传输层 (4) | 传输层 | TCP/UDP 端口、状态 | 检查你是走大门(端口)还是走小门 |
| 网络层 (3) | 网络层 | 源/目的 IP 地址 | 看你是从哪条街来的,要去哪条街 |
| 数据链路层 (2) | 网络接口层 | MAC 地址 | 看你的身份证(MAC) |
| 物理层 (1) | 网线、信号 | 防火墙一般不碰,坏了直接断网 |
你想想看,我们配防火墙规则,最常打交道的是哪几层?没错,网络层(IP)和传输层(端口)。但如果你要做应用层防护,就得往上看。
我的习惯:在脑子里把 OSI 模型竖起来,每次写规则前,先问自己一句:“我这规则要管到哪一层?” 这样不容易漏,也不会过度限制。
2.2 IP 地址与子网划分:防火墙的“门牌号”系统
IP 地址就是网络世界的门牌号。没有它,数据包就找不到家。防火墙规则里,source 和 destination 字段,填的就是这玩意儿。
咱们快速过一下关键点:
- IPv4 地址:32 位,点分十进制。比如
192.168.1.1。分为网络位和主机位。 - 子网掩码:用来区分网络位和主机位。比如
255.255.255.0,表示前 24 位是网络位。 - CIDR 表示法:更简洁。比如
192.168.1.0/24,意思跟上面一样。
我在项目中遇到过一件事。有个同事配规则,想允许整个部门上网,他写了 10 条规则,把每个 IP 都列出来了。我说你干嘛不用子网?一条 10.10.10.0/24 就搞定了。他当时就愣住了。你看,这就是子网划分没吃透。
避坑指南:我曾经因为子网掩码写错,导致一个 /24 的网段写成了 /16,结果把隔壁部门的流量也放过去了。那叫一个惨。所以,写子网时,一定要算清楚掩码。
咱们来看一个常见的子网划分表,配规则时经常用到:
| CIDR | 子网掩码 | 可用主机数 | 典型用途 |
|---|---|---|---|
| /30 | 255.255.255.252 | 2 | 点对点链路 |
| /29 | 255.255.255.248 | 6 | 小型网络 |
| /24 | 255.255.255.0 | 254 | 标准办公网段 |
| /16 | 255.255.0.0 | 65534 | 大型园区网 |
2.3 端口与协议:防火墙的“安检通道”
IP 地址把你带到了大楼门口,端口号就是你要去的房间号。而协议(TCP/UDP/ICMP),决定了你敲门的方式。
咱们一个一个说:
2.3.1 TCP(传输控制协议)
面向连接,可靠。三次握手,四次挥手。防火墙在处理 TCP 时,会跟踪状态。比如,你允许了内部发起的 TCP 连接,防火墙会自动允许回程的流量。这就是状态检测防火墙的核心。
常见的 TCP 端口:
- 22:SSH,远程管理。我建议只对特定管理 IP 开放。
- 80:HTTP,网页服务。
- 443:HTTPS,加密网页服务。
- 3306:MySQL 数据库。千万别暴露在公网上,血的教训。
2.3.2 UDP(用户数据报协议)
无连接,不可靠,但速度快。防火墙处理 UDP 比较头疼,因为它没有状态。你放行了一个 UDP 包,防火墙不知道对方会不会回,也不知道什么时候回。
常见的 UDP 端口:
- 53:DNS 查询。没有 DNS,你连百度都上不去。
- 67/68:DHCP,自动分配 IP。
- 123:NTP,时间同步。很多认证协议依赖时间,这个端口很重要。
2.3.3 ICMP(互联网控制报文协议)
它不是用来传数据的,是用来传控制消息的。最典型的就是 ping(ICMP Echo Request/Reply)。
很多安全策略会直接禁掉 ICMP。我个人不太建议这么做。为什么呢?因为 ICMP 不仅仅是 ping,它还负责路径 MTU 发现、超时通知等。你禁了 ICMP,可能会导致某些大文件传不过去,或者网络出问题时你排查不了。
我的建议:可以限制 ICMP 的速率,或者只允许特定类型的 ICMP(比如 Echo、Destination Unreachable、Time Exceeded),而不是一刀切全禁掉。
2.4 知识体系总览:一张图看懂
说了这么多,咱们用一张图把今天的内容串起来。这张图就是防火墙规则决策时的思考路径。
你看,一个数据包从到达防火墙开始,先看 IP,再看端口和协议,最后决定放行还是拦截。每一步都对应着我们今天讲的知识点。
2.5 实战小贴士:如何把这些知识用到规则里
光说不练假把式。咱们来看一个简单的规则示例,感受一下:
# 允许内部网络访问外部 Web 服务
# 源:内网 10.10.10.0/24
# 目的:任意
# 协议:TCP
# 端口:80, 443
# 动作:允许
access-list 100 permit tcp 10.10.10.0 0.0.0.255 any eq 80
access-list 100 permit tcp 10.10.10.0 0.0.0.255 any eq 443
这条规则里,10.10.10.0 0.0.0.255 就是子网划分的应用,tcp 是协议,eq 80 是端口。你看,是不是全用上了?
注意:上面的 0.0.0.255 是通配符掩码,跟子网掩码是反着来的。子网掩码 255.255.255.0 对应通配符 0.0.0.255。这个别搞混了,我刚开始也经常写反。
好了,这一章的内容就到这儿。网络基础是防火墙的根,根扎得深,树才能长得高。把这些概念刻在脑子里,后面咱们写规则的时候,你会觉得越来越顺手。