近期在drupal大學上看到乙個問題
問題的**是乙個無效的請求的導致drupal
程序特別消耗伺服器資源,導致cpu超高。由於近期也在研究iptable的ddos策略,所以就研究了一下,大概列舉一下相關的解決方案。
首先,看看iptable解決辦法。
對於要解決syn flood以及ddos等推薦用iptable,比較輕量級,也是iptable比較擅長的。
在網上找了一下,iptable的 recent模組可以解決問題,
先看一下recent的引數,
--name #設定列表名稱,預設default。
--rsource #源位址,此為預設。
--rdest #目的位址
--seconds #指定時間內
--hitcount #命中次數
--set #將位址新增進列表,並更新資訊,包含位址加入的時間戳。
--rcheck #檢查位址是否在列表,以第乙個匹配開始計算時間。
--update #和rcheck類似,以最後乙個匹配計算時間。
--remove #在列表裡刪除相應位址,後跟列表名稱及位址。
最終測試,下面的**可以測試通過:
#!/bin/bashipt=/sbin/iptables
# max connection in seconds
seconds=100
# max connections per ip
blockcount=10
# ....
# ..
# default action can be drop or reject
daction="reject"
$ipt
-a input -p tcp --dport
80-i eth0 -m state --state new -m recent --set
$ipt
-a input -p tcp --dport
80-i eth0 -m state --state new -m recent --update
--seconds
$--hitcount$-j
$# ....
# ..
向伺服器傳送超過10次請求,就會出現connect closed的錯誤訊息,表示成功。
測試用瀏覽器即可,因為之後10次請求,多的話可以用ab -n xx -c xx。
其次,varnish
的解決方案。
varnish
的優點是vcl功能強大,之前筆者用varnish做過防止robots抓取的操作,但是vcl如何防止ddos以及同一ip的限制,在網上看到乙個解決方案,就是security.vcl,但是感覺vcl寫得忒忒多,不知道是不是因為功能太複雜的原因。
具體檢視這個vcl
最後,nginx和apache解決方案
nginx和apache是最終的web伺服器,所以安全層面可以放到這裡來做,關於併發訪問的模組。
nginx有乙個 ngx_http_limit_conn_module
apache的模組,limitipconn
後記:阿里雲伺服器自帶ddos防禦機制,所以一般沒問題。因此drupal
方面,可以使用fast404等模組,減少這種404多帶來的cpu壓力。
再順便推薦一下drupal的乙個安全模組,security kit:
drupal與高效能**架構
爬蟲如何獲取大量的ip
網路資訊時代,資料收集是一項繁瑣而複雜的工作。許多人選擇使用爬行動物來幫助他們更好地收集資訊。但是如果爬蟲抓取資料過於頻繁,會給目標 帶來較高的負載,因此 會採取相應的防範措施,使得爬蟲無法順利工作。在使用爬蟲的過程中,web工作者會使用http 來抓取資料。原因是抓取資料的頻率太頻繁,收集 資訊的...
如何防止ip被ban
一 建立高匿ip位址池 1 什麼是虛擬ip 虛擬ip 是指由總部 mdlan 指定總部空閒的一段ip 作為移動使用者接入時的虛擬ip 池。當移動使用者接入後,分配乙個虛擬ip 給移動使用者,移動使用者對總部的任何操作都是以分配的ip 作為源ip 就完全和在總部區域網內一樣。例如使用虛擬ip 的移動接...
linux下和windows下如何防止php木馬
各位網路管理人員經常遇到的乙個問題就是 被別人掛馬,隨著php語言的流行,現在比較多的一種木馬就是php木馬,大家對此也非常的頭疼。現在我給大家講一下在linux和windwos下如何預防php木馬。一 先講一下在linux下如何預防php木馬。1.首先修改httpd.conf,如果你只允許你的ph...