Linux下Dupal如何防止类似DDos攻击

卢松松博客 关注创业者、自媒体人和站长的网站

最近服务器上一个drupal站一个无效请求导致服务器cpu超高,特别消耗资源,刚好近期在研究iptable的ddos策略,就来尝试研究一下解决办法.

首先,看看iptable解决办法,对于要解决syn flood以及ddos等推荐用iptable,比较轻量级,也是iptable比较擅长的.

在网上找了一下,iptable的 recent模块可以解决问题,先看一下recent的参数.

  1. --name#设定列表名称,默认DEFAULT。
  2. --rsource#源地址,此为默认。
  3. --rdest#目的地址
  4. --seconds#指定时间内
  5. --hitcount#命中次数
  6. --set#将地址添加进列表,并更新信息,包含地址加入的时间戳。
  7. --rcheck#检查地址是否在列表,以第一个匹配开始计算时间。
  8. --update#和rcheck类似,以最后一个匹配计算时间。
  9. --remove#在列表里删除相应地址,后跟列表名称及地址。

最终测试,下面的代码可以测试通过:

  1. #!/bin/bash
  2. IPT=/sbin/iptables
  3. #Maxconnectioninseconds
  4. SECONDS=100
  5. #MaxconnectionsperIP
  6. BLOCKCOUNT=10
  7. #....
  8. #..
  9. #defaultactioncanbeDROPorREJECT
  10. DACTION="REJECT"
  11. $IPT-AINPUT-ptcp--dport80-ieth0-mstate--stateNEW-mrecent--set
  12. $IPT-AINPUT-ptcp--dport80-ieth0-mstate--stateNEW-mrecent--update--seconds${SECONDS}--hitcount${BLOCKCOUNT}-j${DACTION}//phpfensi.com
  13. #....
  14. #..

向服务器发送超过10次请求,就会出现connect closed的错误消息,表示成功,测试用浏览器即可,因为之后10次请求,多的话可以用ab -n xx -c xx.

其次,varnish的解决方案.

varnish的优点是VCL功能强大,之前笔者用varnish做过防止robots抓取的操作,但是vcl如何防止ddos以及同一ip的限制,在网上看到一个解决方案,就是security.vcl,但是感觉vcl写得忒忒多,不知道是不是因为功能太复杂的原因.

具体查看这个VCL:https://github.com/ssm/security.vcl

最后,Nginx和Apache解决方案,Nginx和Apache是最终的web服务器,所以安全层面可以放到这里来做,关于并发访问的模块.

Nginx有一个 ngx_http_limit_conn_module

http://nginx.org/en/docs/http/ngx_http_limit_conn_module.html

Apache的模块,limitipconn

http://dominia.org/djao/limitipconn2.html

如果机房自带ddos防御机制,所以一般没问题,因此drupal方面,可以使用fast404等模块,减少这种404多带来的cpu压力.

再顺便推荐一下drupal的一个安全模块,Security kit:https://www.drupal.org/project/seckit

相关广告
  • Linux下Dupal如何防止类似DDos攻击 Linux下Dupal如何防止类似DDos攻击 Linux下Dupal如何防止类似DDos攻击
相关阅读

Linux下Dupal如何防止类似DDos攻击

2019/10/10 17:45:36 | 谷歌SEO算法 | SEO教程