码迷,mamicode.com
首页 > 其他好文 > 详细

浅谈基本的网络安全

时间:2018-01-10 00:12:27      阅读:214      评论:0      收藏:0      [点我收藏+]

标签:linu   proc   建立连接时   漏洞   back   必须   防范   无效   总结   

  由于最近在看《linux企业案例精解第二版》的书,里面的很多作者亲身经历的事故总结给了我很多学习的一手资料,我认为很受用,特此来分享一下笔记

首先介绍一下DDOS

DDOS分类:1.容量耗尽攻击,这种攻击企图耗尽转发或链接容量   2.状态表耗尽攻击,这种攻击企图耗尽基础设施和服务器里面的状态表  3.应用层攻击,这种方法企图耗尽应用成层资源

DDOS原理:DDOS是DOS攻击的加强版,基本的DOS是通过操纵单台攻击机连接服务器,利用TCP三次握手原理,发出大量合理但非正常的请求来占用过多的服务器资源,从而导致服务器无法为其他用户提供正常服务。而DDOS攻击之前在网络上收集足够多的"肉鸡"作为攻击机,能力强的甚至可以在已经控制的一级"肉鸡"中扩大更多有漏洞的机器,具有多级主从关系的攻击链,一旦发起攻击,所有可利用的攻击机器会同时对目标服务展开进攻,攻击规模大,破坏力强

TCP三次握手过程:

第一次握手:建立连接时,客户端发送SYN包(seq=x)到服务器,并进入SYN-SEND状态,等待服务器确认

第二次握手:服务器收到SYN包后,必须确认客户的SYN(ACK=x+1),同时发送一个SYN包(seq=y),即SYN+ACK包,此时服务器进入SYN-RECV状态

第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包,ACK(ack=y+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态

在上述过程中有一些重要概念

  未连接队列:在三次握手协议中,服务器维护着一个未连接队列。该队列为每个客户端的SYN包(seq=y)开设一个条目,条目表名服务器已经收到SYN包,并向客户发布确认,等待客户的确认包,这些条目所表示的链接是在服务器处于SYN-RECV状态时,当服务器收到客户的确认包时删除这些条目,服务器进入ESTABLISHED状态

  Backlog参数,表示未连接队列的最大容纳数据

  SYN+ACK 重传次数。服务器发送完SYN+ACK包后,如果未收到客户确认包,则服务器进行首次重传,再过一段时间后仍未收到客户确认包,则进行第二次重传。如果重传次数超过系统规定的最大重传次数时,则系统将该连接信息从半连接队列中删除。注意每次重传等待的时间不一定相同

  半连接存活时间。指定半连接队列条目存活的最长时间,即服务从收到SYN包到确认这个报文无效的最长时间,该时间值时所有重传请求包的最长等待时间总和,有时也成为半连接存活时间为Timeout时间或者SYN-RECV存活时间

  TCP-SYN Flood又称为半开式连接攻击。攻击者会利用一些特殊工具制造大量的非法数据包,把原地址伪装成为一个实际不存在的地址,因此当服务方收到请求方的SYN包并回送SYN+ACK确认消息后,请求放由于原地址欺骗等手段,致使服务方根本得不到ACK回应

  事实上请求方除了立即响应SYN+ACK消息外,也可能因为正在处理数据而暂时无法响应服务端消息,这是正常的,所以在设计中考虑让服务器持续一段时间保留SYN+ACK信息片断,等待接收方ACK消息是很有必要的。但是一台服务器的TCP连接是有线的,如果恶意攻击利用此快速、连续发送此类连接请求,则服务器可用的TCP链接很快会被阻塞,系统可用资源、网络可用宽带急剧下降,这就是TCP-SYN Flood攻击原理

 

防范DDOS攻击

  1.通过合理配置系统    2加固TCP/IP协议栈    3通过防火墙

SYN Cookies技术:用于限制同时打开的半连接数。 echo 1>/proc/sys/net/ipv4/tcp_syncookies

增加最大半连接数:默认为256,sysctl -W net.ipv4.tcp_max_syn_backlog=‘2048‘

缩短SYN半连接的Timeout时间:sysctl -W net.ipv4.tcp_syncack_retries=‘0‘

 

下面是用shell脚本实现防止恶意连接:

 

浅谈基本的网络安全

标签:linu   proc   建立连接时   漏洞   back   必须   防范   无效   总结   

原文地址:https://www.cnblogs.com/qinghe123/p/8254165.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!