网站上线后,后期维护是相当重要的,在这个工程中我们最该注意的就是网站安全。很对企业的网站都是非常不安全的,要是站被攻击了该如何办呢?下面我就举出几个常见的网络攻击方式以及个人的处理建议。
* syn flood:
一个用户向服务器发送syn报文后,如果服务器在发出sys+ack报文后无法收到客户端ack报文,这种情况下服务器端一般会重试(再次发送syn+ack给客户端),并等待一段时间后丢弃这个未完成的连接,这段时间的长度我们称为syn timeout,一般来说这个时间是分钟的数量级(大约为30秒-2分)。
一个用户出现异常导致服务器的一个线程等待1分钟并不是什么很大的问题,但如果有一个恶意的攻击者大量的模拟这种情况,服务器端将为了维护一个非常大的半连接列表而消耗非常多的资源。即使是简单的保存并遍历也会消耗非常多的CPU时间和内存,何况还要不断对这个列表中的IP进行syn+ack的重试。
防御原理:默认情况下,系统会对新客户的访问进行syn代理,直到客户端与抗拒绝设备建立TCP连接成功,抗拒绝设备才会再代理客户端与防护主机进行TCP连接,后续通信则不再代理。
* ACK flood:
1、端系统对ACK报文的处理
端系统在收到一个ACK报文时,如果目的端口未开放,那么端系统会直接向源IP发送RST报文。如果端系统的相关端口是对外开放的,那么其在收到ACK报文时,首先会检查这个ACK报文是否属于TCP连接表中的一个已有连接(这个过程会对端系统主机CPU资源造成一定的消耗),如果是的话,则正常处理,如果不属于任何一个已有连接,那么端系统会向源IP发送RST报文。
2、中间系统对ACK flood报文的处理
路由器:只根据网络层信息(目的IP、源IP等),因此路由器在处理ACK报文的时候,其并不关系它是不是ACK报文,它主要关心其目的地址。如果ACK flood攻击的目的主机是固定的,那么路由器其实只需要在收到第一个ACK flood攻击报文时,调用CPU资源实现路由和转发,后续的ACK flood国内国际报文由于目的主机是固定的,其甚至不需要调用CPU资源,直接使用快速转发表就可实现对ACK flood报文的转发。
防火墙:对ACK报文是否属于连接状态表中的已有连接,如果是,防火墙转发该ACK报文,如果未命中任何一个已有连接,防火墙会将该ACK报文丢弃。
防御原理:跟踪IP的TCP会话,形成一个连接跟踪表,TCP连接建立好之后,对后续的ACK报文,查找连接跟踪表,匹配相应的TCP会话流,如果没有匹配,就是异常的或之前没有连接的ACK报文。这种报文达到出发参数,就会进入ACK flood防御模式,此时抗拒绝设备只放行正确的ACK,比如,设置阀值10000报文/秒。
* UDP flood攻击:
利用大量UDP小包冲击DNS服务器或Radius认证服务器、流媒体视频服务器。攻击者发送大量的伪造源IP地址的小UDP包,因为是无连接性的协议,所以只要开了一个UDP的端口提供相关服务的话,那么就可以针对相关的服务进行攻击。
防御原理:当防御主机每秒收到的UDP报文达到设置阀值时,则进入UDP flood防御状态,此时抗拒绝设备会丢弃所有后续对防护主机IP的UDP报文,除非此UDP端口在规则或者UDP端口中设置了放行,设置阀值,比如1000报文/秒。
UDP端口防护中可以针对相应的端口进行防护设置。
a、开放端口:选择后开 |