记一次DOS攻击和解除攻击
近期开始投简历准备看看新的机会,简历中附带了博客地址,没想到碰到了DOS攻击了。
一个头条的开发同学和我说博客502了,我试了一下,我本地访问正常,但是巨慢,响应时间长达40s,再没查明原因的时候重启了服务器,然而依旧没什么卵用。依旧很慢且502很频繁。
当时想的会不会是前几天经典网络换成专线网络导致的,但是一想应该不会。
当时想的会不会是前几天经典网络换成专线网络导致的,但是一想应该不会。
502 bad gateway产生的大多数原因都是由于连接超时,我们向服务器发送请求,由于服务器当前的链接数太多,导致服务器无法给于正常的响应,才会产生502 bad gateway报错。
top命令查看一波,发现 php-fpm 的进程数量特别多,占用太多资源。查看nginx日志,发现大量的来自178.238.236.181 的 post 请求。DOS攻击 无疑了。
top命令查看一波,发现 php-fpm 的进程数量特别多,占用太多资源。查看nginx日志,发现大量的来自178.238.236.181 的 post 请求。DOS攻击 无疑了。
查看 nginx 网站日志 tail -f access.log 和 tail -f access.log,发现有短时大量post访问,导致nginx返回 499 或者 502
499:表示客户端主动关闭了连接[服务器返回http头之前,客户端就提前关闭了http连接]or[服务器端处理的时间过长,客户端“不耐烦”了]
502:资源不够,服务端php处理有问题,未正常响应请求,在nginx+php中一般找,进程管理器fastcgi,即php-fpm可能出现的问题
针对DOS攻击,简单粗暴的方式就是直接屏蔽 来源ip
1)在 nginx.conf 同级目录新建 blockips.conf 2)编辑blockips.conf 加入屏蔽规则 deny 1.2.3.4; //屏蔽单个ip deny 123.0.0.0/8; // 封 123.0.0.1~123.255.255.254 这个段的ip deny 123.1.0.0/16; // 封 123.1.0.1~123.1.255.254 这个段的ip deny 123.1.1.0/24; // 封 123.1.1.1~123.1.1.254 这个段的ip 3) 在nginx.conf 中引入blockips.conf include blockips.conf;
重启 nginx 和 php-fpm,再次查看top进程,发现进程数量 、cpu、内存占用 都恢复正常。访问速度也加快了。
关于【http slow post慢速攻击】:
文章评论