一、SYN攻击
在三次握手过程中,Server发送SYN-ACK之后,收到Client的ACK之前的TCP连接称为半连接(half-open connect),此时Server处于SYN_RCVD状态,当收到ACK后,Server转入ESTABLISHED状态。
SYN攻击就是Client在短时间内伪造大量不存在的IP地址,并向Server不断地发送SYN包,Server回复确认包,并等待Client的确认,由于源地址是不存在的,因此,Server需要不断重发直至超时,这些伪造的SYN包将长时间占用未连接队列,导致正常的SYN请求因为队列满而被丢弃,从而引起网络堵塞甚至系统瘫痪。SYN攻击时一种典型的DDOS攻击,检测SYN攻击的方式非常简单,即当Server上有大量半连接状态且源IP地址是随机的,则可以断定遭到SYN攻击了,使用如下命令可以让之现行:
netstat -nap | grep SYN_RECV
看下我系统上默认的SYN队列大小:
[root@log]# cat /proc/sys/net/ipv4/tcp_max_syn_backlog
262144
定义SYN队列大小:
echo 4096 > /proc/sys/net/ipv4/tcp_max_syn_backlog --定义是php配置的两倍,大于php的就行
二、系统存在大量TIME_WAIT状态的连接
1、查看Apache当前并发访问数:
netstat -anp | g