- 环境(详细说明实验运行的操作系统,网络平台,机器的配置)
- 主机操作系统WIN10
- 开源虚拟机管理软件Oracle VM VirtualBox
- GNS3网络平台
- 两台SEEDUbuntu16.04 32位虚拟机
- 实验目的
- 掌握VirtualBox构建SEEDUbuntu16.04 32位虚拟机
- 掌握网络虚拟平台GNS3构建网络拓扑结构
- 掌握SEEDUbuntud的ip配置命令
- 实现syn flood攻击并用wireshark进行抓包分析
- 理解linux内核SYN cookie机制对flood攻击的影响
- 实验步骤(包括主要流程和说明)
1. 选择浙大镜像下载SEED虚拟机
2.利用VirtualBox新建SEEDUbuntu16.04-32
3.设置 SEEDUbuntu16.04-32的网络
4.完全复制一个作为SEEDUbuntu16.04-32target
5.利用GNS3来构建网络拓扑并在GNS3中启动2个虚拟机
6.配置两台虚拟机的ip地址和路由,SEEDUbuntu16.04-32的ip地址为192.168.1.1,SEEDUbuntu16.04-32target的ip地址为192.168.1.2
7.设置默认路由
8.测试是否连通
- 实验结果和分析
1. SEEDUbuntu16.04-32target启动telnet服务,在SEEDUbuntu16.04-32使用netwox进行攻击
2.使用wireshark观察
3.进一步查看tcp syn cookie参数,并修改tcp_max_syn_backlog=5
4.修改参数tcp_syncookies=0,无法telnet到target,并用netstat –n –tcp发现5个SYN_RECV和1个TIME_WAIT,5个SYN_RECV已达到设置的半连接上限。
5.重新修改参数tcp_syncookies=1,telent成功。
6.tcp syn cookie原理分析
SYN Flood是一种典型的拒绝服务攻击,利用tcp协议中的三次握手过程进行攻击。由于TCP服务器在收到 tcp syn request 包时,在发送 tcp syn+ack 包回客户机前,此时连接状态为半打开连接。如果此时恶意攻击方伪造syn源地址,快速连续地发送此类连接请求,由于服务器的TCP连接数量有限,服务器可用TCP连接队列很快便会发生阻塞,从而造成拒绝服务,系统运行缓慢。
SYN Cookie机制用来防范这种SYN Flood攻击,主要方法就是针对TCP的三次握手进行一些修改。在第二次握手时,服务器不分配专门的数据区来维护一个未连接队列,而是根据SYN包来计算一个cookie值,并且将这个值作为将要返回的SYN+ACK包的初始***,当返回一个ACK包时,会根据包头信息计算cookie,此时cookie包含本次连接的状态信息,不给未确认的连接分配资源,只有cookie计算后和返回的确认***对比正确后才分配资源,建立连接。