网络层区分攻击报文与真实用户报文,核心手段是检查IP头部字段的合理性、源地址真实性、TTL生存时间、分片行为以及协议组合是否匹配正常终端特征伪造源IP、异常TTL、异常分片、非业务协议,往往是攻击报文最直接的指纹。
网络层如何区分攻击流量和正常流量?它只认“面单”不认“内容”
把网络层想象成快递中转站的分拣员:它不拆包裹,只看贴在箱子上的面单,面单上写着寄件人、收件人、重量、是否易碎、是否分箱,对应到IP报文,就是源IP地址、目的IP地址、总长度、分片标志、TTL、协议号,攻击报文和真实用户报文虽然都能送到“分拣台”,但面单上的破绽往往一眼就能看出来。
网络层不关心你是刷网页还是发请求,它只判断这个包的“身份证信息”是否符合基本物理和逻辑规律,真实用户报文就像一张信息填写完整、地址真实、重量合理的快递单;攻击报文则像一张寄件人乱填、目的地模糊、包裹重量一会儿是0克一会儿是5吨的假单子。
IP头部里5个最容易暴露攻击报文的字段
- 源IP地址:真实用户报文的源IP通常可路由、归属清晰;攻击报文经常伪造一个根本不存在的地址,或者借用反射服务器地址。
- TTL(生存时间):真实用户报文经过路由跳数有规律,初始值一般是64、128或255;攻击报文为了快速发出,TTL往往异常偏低或波动混乱。
- 分片标志与片偏移:正常大包分片是为了传输需要,分片大小和偏移逻辑完整;攻击常利用大量微小分片、重叠分片来消耗重组资源。
- 协议号:真实业务集中在TCP(6)、UDP(17)、ICMP(1);攻击报文可能出现大量非业务协议,或者在TCP/UDP标志位上出现非法组合。
- 总长度:正常报文长度与业务类型相关,比如HTTP请求多数几百字节;攻击报文常出现固定长度、超小或超大载荷。
这些字段不需要深入应用层解析,网络层就能快速判断,比如在Linux服务器上抓包,可以立刻观察到异常来源:
tcpdump -nn -c 50 -v 'ip[8] < 10'
这条命令过滤TTL小于10的报文,正常公网访问几乎不会出现TTL低于10的情况,一旦大量出现,大概率是攻击报文。
DDoS攻击报文与真实用户报文区别:5个可验证的头部指纹
这个问题的答案不是“看心情”,而是看一组可以验证的数值和行为,把两种报文摆在同一个抓包文件里对比,区别非常明显。
| 对比维度 | 真实用户报文 | DDoS攻击报文 |
|---|---|---|
| 源IP可路由性 | 可路由、归属清晰 | 常伪造、不可路由或随机生成 |
| TTL初始值规律 | 64/128/255减去固定跳数 | 异常偏低或随机波动 |
| 分片行为 | 分片数量合理,载荷连续 | 大量微小分片、重叠分片 |
| TCP三次握手 | 完整握手,序列号连续 | 大量SYN无ACK,半开连接 |
源IP真实性:真实用户有“户口”,攻击报文爱戴“面具”
真实用户发起请求时,源IP由运营商分配,反向查询能定位到具体城市或运营商,攻击报文为了隐藏控制端位置,常用伪造源IP,网络层有一个简单有效的机制叫反向路径转发(uRPF),它检查报文是否从最优接口进来,如果源IP声称来自某个网段,但报文实际从另一个完全不相干的接口进来,基本可以判定为伪造。
在Linux上启用严格反向路径过滤:
sysctl -w net.ipv4.conf.all.rp_filter=1
sysctl -w net.ipv4.conf.default.rp_filter=1
启用后,源IP不合理的报文会在网络层直接被内核丢弃,不需要经过应用层防火墙。
TTL值:真实用户跨多少跳都有规律,攻击报文经常“迷路”
TTL是IP报文里的“寿命计数器”,每经过一个路由器减1,真实用户从北京访问广东服务器,经过十几跳,TTL剩余值大约在45到55之间;从上海访问同样服务器,TTL剩余值大约在50到60之间,攻击报文如果由僵尸主机随机发送,TTL分布没有地理逻辑,甚至出现同一批报文TTL从3到240乱跳的情况。
用抓包工具统计TTL分布:
tcpdump -nn -c 1000 -v 'ip' | awk '/ttl/{print $NF}' | sort | uniq -c | sort -rn
真实用户流量会集中在几个固定值附近,攻击流量则分散且毫无规律。
分片行为:正常分片为了传输,恶意分片为了耗死你
IP分片设计的初衷是解决不同链路的最大传输单元不一致问题,正常文件传输或者视频流的分片,数量有限,偏移地址连续,重组后载荷完整,攻击报文会故意构造重叠分片、超大偏移分片、只发第一个分片不发后续分片,让目标主机的重组缓冲区被占满,最终拒绝服务。
在iptables里可以直接丢弃所有分片报文,对于绝大多数真实业务影响很小,因为现代TCP协议栈会协商MSS避免IP层分片:
iptables -A INPUT -f -j DROP
这条规则把进入的分片包直接丢弃,如果业务确实依赖IP分片,可以针对特定协议放行,其余默认丢弃。
企业服务器防攻击报文过滤怎么设置:从命令行到高防机房
企业面临的实际问题不是“理论区别”,而是“怎么在服务器上落地过滤”,中小企业用一台云服务器跑业务,被攻击时往往先看到带宽跑满、CPU飙升,连SSH都登不上,此时网络层过滤是第一道手工防线。
Linux服务器上先用iptables做基础过滤
以下命令可以直接复制到生产服务器,但建议在业务低峰期测试后再全量应用。
- 丢弃所有分片报文:
iptables -A INPUT -f -j DROP
- 限制ICMP回声请求速率,防止ICMP泛洪:
iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s --limit-burst 5 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
- 丢弃源地址为私有地址、回环地址、组播地址的报文(公网接口不应出现这些源地址):
iptables -A INPUT -s 10.0.0.0/8 -j DROP
iptables -A INPUT -s 127.0.0.0/8 -j DROP
iptables -A INPUT -s 224.0.0.0/4 -j DROP
- 限制单IP每秒新建连接数,缓解SYN泛洪:
iptables -A INPUT -p tcp --syn -m limit --limit 5/s --limit-burst 20 -j ACCEPT
iptables -A INPUT -p tcp --syn -j DROP
这些规则在网络层就能拦截相当比例的粗粒度攻击报文,减少进入应用层的压力。
云防火墙和高防IP:把“门卫”升级成“安检通道”
软件防火墙的局限在于:如果攻击流量把带宽占满,包根本到不了服务器,iptables再强也无从下手,这时候需要把防护前置到运营商或云平台层面。
高防IP防护攻击报文多少钱这个问题没有标准答案,因为价格与防护峰值、清洗能力、地域机房直接挂钩,北京机房的高防IP一般按防护带宽和业务带宽分别计费,攻击峰值越高费用越高,中小企业选择20G到50G防护时,年度费用在数千元到数万元区间;需要百G以上防护时,成本会显著上升,选型时重点看三个指标:防护峰值、清洗时延、回源链路质量。
北京机房攻击报文检测方法通常采用BGP引流:正常流量直连源站,攻击流量自动绕行清洗中心,清洗中心在网络层做深度报文检测,把伪造源IP、异常TTL、异常分片的报文丢弃,再把干净流量回注到源站。行业共识认为,网络层过滤虽然无法覆盖所有攻击类型,但能消除大多数反射放大攻击和伪造源攻击,为上层防护争取时间。
从抓包到自动清洗:一套可验证的区分流程
区分攻击报文不能停留在纸面,需要一套可操作的判断流程。
第一步:建立正常流量基线
在业务正常时段抓包,保存为基线文件:
tcpdump -i eth0 -s 0 -w baseline.pcap -c 10000
提取正常流量的TTL分布、协议比例、平均包长、源IP归属等指标。
第二步:实时抓包对比异常特征
攻击发生时抓取同样数量的包,与基线对比,重点看这几项:
- TTL分布是否突然变宽或变低
- 源IP是否大量来自陌生网段或不可路由地址
- 分片报文比例是否异常升高
- SYN报文占比是否远超正常水平
- 单IP请求速率是否突增
第三步:联动自动清洗策略
发现异常后,可以结合fail2ban自动封禁高频攻击源IP,或者在云控制台开启清洗策略,网络层的自动响应可以做到秒级,比人工分析快得多。
Q&A:关于攻击报文与真实用户报文区分常见疑问
网络层如何区分攻击流量和正常流量,只靠IP头够吗?
不够,IP头是第一道筛子,能快速过滤明显伪造的报文,但无法识别应用层慢速攻击、SQL注入等藏在合法报文里的恶意流量,完整防护需要网络层、传输层、应用层联动,网络层负责“扔掉假快递单”,传输层和应用层负责“拆开包裹检查内容”。
攻击报文能不能完全伪装成真实用户报文?
理论上可以,但成本很高,真实用户报文在TTL连续性、TCP窗口大小、序列号规律、请求时间间隔上具备长期稳定的行为特征,攻击者如果要把每个报文都伪装成真人行为,需要劫持大量真实终端或付出高昂计算成本,多数大规模攻击为了追求流量,不会在单报文层面做精细伪装。
企业服务器防攻击报文过滤用软件防火墙还是硬件防火墙?
根据流量规模和预算决定,小流量攻击用iptables或nftables足够,软件规则匹配在万兆网卡下也撑得住,大流量攻击会先占满带宽,软件防火墙根本收不到包,此时必须依赖硬件防火墙或云清洗,硬件防火墙在网络层有专用芯片处理报文,吞吐量和规则容量远高于通用CPU。
网络层区分攻击报文与真实用户报文,本质上是一套“看面单、查身份证、核轨迹”的组合动作,抓住源IP真实性、TTL规律、分片行为和协议组合这四个抓手,就能在报文进入服务器之前拦住绝大多数粗制滥造的攻击流量,剩下的精细伪装,交给上层防护继续筛选。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/637127.html





