检测来自IP层的攻击及防御
本文档的Copyleft归yfydz所有,使用GPL发布,可以自由拷贝、转载,转载时请保持文档的完整性,严禁用于任何商业用途。
msn: yfydz_no1@hotmail.com
来源:http://yfydz.cublog.cn
0. IP包头
由于IP头的内容比较固定,来自IP层的攻击相对比较单一的,检测也相对比较容易。
为方便理解,先列出IP头结构,下面是RFC791定义的IP头结构:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Version| IHL |Type of Service| Total Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Identification |Flags| Fragment Offset |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Time to Live | Protocol | Header Checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Source Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Destination Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Options | Padding |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Version:版本,4位,固定为4IHL:IP头长度,4位,以4个字节为一个单位,最小为5,最大15,分别表示包长为20,60字节Type of Service:服务类型,8位,可看RFC2474Total Length:IP包总长,16位Identification:ID号,16位Flags:分片标志,3位Fragment Offset:碎片偏移,13位Time to Live:存活时间,8位Protocol:协议,8位Header Checksum: IP头校验和,16位Source Address: 源地址, 32位Destination Address: 目的地址, 32位Options: IP选项,长度从0到40字节Padding: 填充字节,IP头都要是4的倍数,不够的以0填充