第三章 网络安全基础:TCP/IP协议栈安全、常见网络攻击类型与防火墙基础

各位同学,欢迎来到第三章。这一章咱们聊聊网络安全的根基——TCP/IP协议栈。说实话,很多搞安全的人,根基不稳,后面遇到复杂攻击就抓瞎。我见过太多人,连ARP欺骗的原理都说不清楚,就开始研究APT攻击,这其实挺危险的。

咱们今天就把地基打牢。我会结合我这些年踩过的坑,把协议栈安全、常见攻击和防火墙这些事儿,掰开了揉碎了讲清楚。

3.1 TCP/IP协议栈安全:那些被忽视的“漏洞”

TCP/IP协议栈在设计之初,考虑的是互联互通,而不是安全。说白了,它天生就有“信任”基因。这就导致了很多安全问题。

3.1.1 分层模型与安全风险

咱们先快速过一下四层模型:应用层、传输层、网络层、网络接口层。每一层都有对应的攻击面。

层级 常见协议 典型安全风险
应用层 HTTP, FTP, DNS SQL注入、XSS、DNS劫持
传输层 TCP, UDP SYN Flood、TCP会话劫持
网络层 IP, ICMP IP欺骗、Smurf攻击
网络接口层 ARP, 以太网 ARP欺骗、MAC泛洪

你看,每一层都有“坑”。我当年刚入行时,觉得只要装了防火墙就万事大吉。结果有一次,内网一台机器中了ARP病毒,导致整个部门断网半小时。后来一查,就是网络接口层的问题。嗯,从那以后,我再也不敢小看底层协议了。

3.1.2 TCP三次握手的安全隐患

TCP三次握手,大家都很熟。但它的安全漏洞,很多人没细想过。

正常的握手是:SYN -> SYN-ACK -> ACK。但攻击者可以只发SYN,不回复ACK。服务器会一直等待,占用资源。这就是经典的SYN Flood攻击。

核心要点:TCP协议栈的“半连接队列”是有限的。一旦被填满,新的合法连接就无法建立。

我个人习惯,在服务器上做两件事:一是开启SYN Cookie,二是缩短SYN超时时间。这两招能有效缓解SYN Flood。

3.1.3 IP层与ICMP的“小把戏”

IP层有个问题:它不验证源IP地址的真实性。这就给了IP欺骗可乘之机。攻击者可以伪造源IP,发起攻击,让你查不到真正的源头。

ICMP协议呢?本来是用于网络诊断的(比如ping)。但攻击者可以利用它发起Smurf攻击——向广播地址发送大量ICMP请求,源IP伪装成受害者。结果所有响应都打向受害者,造成网络拥塞。

我的建议:在边界防火墙上,直接过滤掉来自外网的、源IP为内网地址的包。这能挡住大部分IP欺骗攻击。

3.2 常见网络攻击类型:不只是“听说过”

下面咱们聊聊三种最常见的攻击。我不光讲原理,还会说说我在实战中是怎么处理的。

3.2.1 DDoS攻击:流量就是武器

DDoS,分布式拒绝服务。说白了,就是用人海战术,把服务器“挤爆”。

它分几种:

  • 流量型:比如UDP Flood,直接塞满带宽。
  • 连接型:比如SYN Flood,占满连接表。
  • 应用层:比如HTTP Flood,模拟正常请求,消耗CPU。

我曾经帮一家电商公司处理过DDoS。对方用的是应用层攻击,每秒几万个请求,全是GET /index.php。服务器CPU直接100%。

怎么治?我当时的方案是:

  1. 先上CDN,把静态资源分流。
  2. 在Nginx层做限流,每个IP每秒最多10个请求。
  3. 开启WAF,识别恶意User-Agent。

效果立竿见影。但说实话,如果遇到几百G的流量型攻击,那就得上云清洗了。

3.2.2 ARP欺骗:内网的“内鬼”

ARP协议,负责把IP地址解析成MAC地址。但它有个致命缺陷:无状态、无认证。任何机器都可以声称“我是192.168.1.1”。

攻击流程很简单:

  • 攻击者发送伪造的ARP响应,告诉网关“受害者的IP对应我的MAC”。
  • 网关更新ARP表,把发往受害者的数据包,都转发给攻击者。
  • 攻击者可以嗅探、篡改数据,甚至直接中断通信。

避坑指南:我曾经在内网部署了一个新服务,结果怎么都连不上。排查了半天,发现是有人私自接了路由器,开启了DHCP和ARP欺骗。从那以后,我要求所有内网交换机开启DAI(动态ARP检测)和DHCP Snooping。

3.2.3 DNS劫持:让你访问“假”网站

DNS劫持,就是篡改域名解析结果。你输入baidu.com,结果被指向了一个钓鱼网站。

常见手法有两种:

  • 本地劫持:攻击者修改你电脑的hosts文件,或者感染路由器固件。
  • 中间人劫持:在运营商或公共WiFi层面,拦截DNS请求,返回虚假结果。

怎么防?我个人习惯:

  • 使用加密的DNS,比如DNS over HTTPS(DoH)。
  • 定期检查hosts文件,看有没有异常条目。
  • 在浏览器里开启HTTPS-only模式,就算被劫持,证书校验也会报警。

3.3 防火墙基础:网络的第一道门

防火墙,说白了就是门卫。它根据规则,决定放行还是拦截数据包。

3.3.1 防火墙的类型

类型 工作层次 特点
包过滤防火墙 网络层、传输层 检查IP、端口、协议。速度快,但无法识别应用层攻击。
状态检测防火墙 网络层、传输层 维护连接状态,能识别“虚假”的返回包。
应用层防火墙(WAF) 应用层 能解析HTTP、SQL等协议,拦截注入、XSS等攻击。

你想想看,如果只用包过滤防火墙,能挡住SYN Flood吗?能,但效果有限。因为它不关心连接状态。状态检测防火墙就好很多,它能识别出“这个SYN-ACK没有对应的SYN”,直接丢弃。

3.3.2 防火墙的部署策略

我见过很多公司,防火墙买回来,规则配得乱七八糟。要么全放通,要么全拦截。这都不对。

核心原则就一条:最小权限原则。只开放必要的端口,其他全部拒绝。

举个例子,一个Web服务器:

  • 对外:开放80(HTTP)和443(HTTPS)。
  • 对内:开放22(SSH,仅限管理IP)、3306(MySQL,仅限应用服务器)。
  • 其他:全部DROP。

记住:默认策略应该是“拒绝所有”,然后“允许特定”。而不是反过来。

3.3.3 防火墙的局限性

防火墙不是万能的。它防不住内部攻击,也防不住加密流量里的恶意行为。比如,攻击者用HTTPS隧道传输恶意软件,防火墙根本看不懂。

所以,我常说:防火墙是安全体系的一部分,不是全部。你还需要IDS/IPS、终端防护、日志审计等等。这些咱们后面的章节会详细讲。

好了,这一章的内容就到这里。下一章,咱们聊聊入侵检测系统(IDS)的核心原理。到时候我会拿一个真实的Snort规则,带大家手把手分析攻击流量。

课后小作业:打开你的电脑,用Wireshark抓个包,看看有没有ARP请求。再想想,如果有人在你的局域网里发假的ARP响应,你能发现吗?