4、网络安全基础:网络分层模型(OSI/TCP/IP)、防火墙与ACL、VPN与加密隧道

聊到网络安全,我习惯先看网络是怎么分层的。你想想看,没有分层,网络就是一锅粥。数据怎么封装?攻击从哪里来?防御又该部署在哪一层?这些问题,分层模型给了我们清晰的答案。

4.1 网络分层模型:OSI与TCP/IP

OSI七层模型,说实话,在实际工程中很少有人真的按七层去搭系统。但它是个绝佳的思维框架。我个人习惯把它当作「安全检查清单」——每一层都有对应的攻击面和防御手段。

OSI层 典型协议 常见攻击 防御手段
应用层(7) HTTP, FTP, SMTP SQL注入, XSS WAF, 输入校验
表示层(6) SSL/TLS, JPEG 加密降级攻击 强制TLS 1.2+
会话层(5) NetBIOS, RPC 会话劫持 Token绑定
传输层(4) TCP, UDP SYN Flood SYN Cookie
网络层(3) IP, ICMP IP欺骗, DDoS ACL, 反欺骗
数据链路层(2) Ethernet, PPP ARP欺骗 DAI, 端口安全
物理层(1) RJ45, 光纤 物理窃听 光纤加密, 机柜锁

TCP/IP模型更实用,它把上面七层压缩成了四层。我在做安全架构时,重点关注的是网络层和传输层——因为防火墙和ACL主要在这两层干活。

核心观点:分层不是理论游戏。每一层都有独立的信任边界。我见过太多事故,都是因为「以为上层安全了,下层就无所谓了」——结果下层被突破,上层全白搭。

4.2 防火墙与ACL:网络的第一道门

防火墙,说白了就是「谁可以进来,谁可以出去」的规则执行者。但这里有个坑——很多人以为装了防火墙就万事大吉了。

我曾经帮一家公司做安全审计,发现他们的防火墙规则有300多条,但其中一半是「允许所有」的宽松规则。问运维为什么这么配?答:「方便调试,后面再改。」结果这个「后面」拖了两年。

4.2.1 防火墙的类型

  • 包过滤防火墙:检查IP头、端口号。速度快,但看不懂应用层内容。
  • 状态检测防火墙:记住连接状态。比如只允许「内部发起的TCP连接」的返回流量进来。
  • 应用层防火墙(WAF):能看懂HTTP请求内容,拦截SQL注入、XSS等。

我个人建议:中小型系统用状态检测防火墙就够了。别一上来就上WAF,规则配不好反而误杀正常业务。

4.2.2 ACL:访问控制列表

ACL是防火墙的「规则表」。每条规则就是一句话:「如果来源是A,目标是B,端口是C,那就允许/拒绝。」

写ACL有个铁律:默认拒绝,显式允许。我见过最蠢的配置是最后一条写「deny any any」——但前面漏了一条「permit any any」,结果等于没配。

避坑指南:我曾经在配置ACL时,把规则顺序搞反了。ACL是顺序匹配的,匹配到第一条就停止。如果你把「拒绝所有」放在「允许特定IP」前面,那所有人都进不来。嗯,那次我差点被运维同事追着打。

# 正确的ACL配置示例(Cisco风格)
access-list 100 permit tcp 192.168.1.0 0.0.0.255 any eq 80
access-list 100 permit tcp 192.168.1.0 0.0.0.255 any eq 443
access-list 100 deny ip any any log
# 最后一条记录所有被拒绝的流量,方便排障

4.3 VPN与加密隧道:安全的「隐形通道」

VPN不是魔法,它就是在公共网络上挖了一条加密的「隧道」。你想想看,你在咖啡厅连公共WiFi,所有流量都是明文——旁边的人用Wireshark就能看到你访问了什么网站。VPN的作用,就是把你的数据包再包一层加密壳。

4.3.1 隧道协议对比

协议 加密强度 性能 适用场景
IPsec 高(AES-256) 中等 站点到站点VPN
OpenVPN 高(可自定义) 中等 远程接入
WireGuard 高(ChaCha20) 移动端、高性能场景
PPTP 低(已破解) 不推荐使用

我个人现在只用WireGuard。为什么?代码量只有OpenVPN的十分之一,审计起来轻松多了。而且它内置了加密隧道,不需要像IPsec那样手动配一堆复杂的SA(安全关联)。

4.3.2 加密隧道的工作原理

说白了就是「包套包」。原始数据包外面再包一个VPN头,然后用对称加密把整个包加密。接收方解密后,剥掉VPN头,露出原始包,再正常转发。

注意:加密隧道不是万能的。我曾经遇到一个案例,某公司用VPN连接两个数据中心,但VPN网关的证书是自签名的,而且没做证书固定(Certificate Pinning)。结果中间人攻击直接把隧道劫持了。嗯,加密了不等于安全了——密钥管理才是核心。

# WireGuard 配置示例(极简)
[Interface]
PrivateKey = gN65sB...(私钥)
Address = 10.0.0.1/24

[Peer]
PublicKey = xTIB...(对端公钥)
AllowedIPs = 10.0.0.0/24
Endpoint = 203.0.113.5:51820

4.4 实战建议:分层防御

别指望单靠防火墙或VPN就能挡住所有攻击。我习惯用「洋葱模型」——从外到内,层层设防。

  1. 边界层:防火墙 + ACL,过滤掉明显恶意的流量。
  2. 传输层:VPN + TLS,保证数据在传输过程中不被窃听或篡改。
  3. 应用层:WAF + 输入校验,防御应用层攻击。
  4. 主机层:主机防火墙 + 入侵检测,防止横向移动。

最后说一句:网络安全的本质是信任管理。分层模型给了我们划分信任边界的工具,防火墙和ACL是执行信任策略的抓手,VPN则是跨越不信任网络的安全通道。这三样东西,你理解透了,网络安全的底子就算打牢了。