拒绝服务攻击是指服务器处理多个客户请求时阻塞于与单个客户端相关的函数调用,导致服务器挂起不能为其他客户服务。
半连接攻击就是SYN FLOOD攻击是指利用伪造源IP地址发送大量半连接SYN请求(这种请求不会完成连接建立,只能完成三路握手的前两路,最后客户端不会发送ACK)到服务器,导致服务器的未就绪连接队列耗尽而无法接受新的连接。半连接攻击耗尽的是服务器的SYN队列资源(未就绪队列)。Syn-Cookies能够比较有效的缓解小规模的SYN FLOOD攻击。/proc/sys/net/ipv4/tcp_syncookies设置为1,表示当syn等候队列(连接未就绪队列)溢出时向对方发送syncookies,目的是防止syn flood攻击。syncookies的原理是不在队列中维护半连接,而是将基本信息编码在第二个分节传给客户端,并随着客户端的第三个ACK分节带回给服务器。注意:syncookie严重的违背TCP协议,不允许使用TCP扩展。
全连接攻击是指恶意客户端发起连接建立请求,完成三路握手后不发送任何数据,占用服务器端的连接资源的攻击手段。全连接攻击耗尽的是服务器的描述符句柄资源。防止全连接攻击的一种手段是创建监听套接字时,设置TCP_DEFER_ACCEPT选项。这个选项在三路握手完成后不让连接进入ESTABLISHED状态,服务端的该连接处于SYN_RECV状态,则服务端accept获取不到这个连接,直到客户端有真正的数据到达之后才进入ESTABLISHED状态。如果客户端一直不发送数据,则服务端重传SYN_ACK并等待TCP_DEFER_ACCEPT设置的超时时间,当两个条件均满足时,如果还是没有数据到来,则服务端的系统回收连接,并且不对客户端发出RST或FIN包。
阅读(5401) | 评论(0) | 转发(0) |