2013-03-29 67 views
1

Backstory:最近有人以某種方式破壞了與我的服務器連接的Xenforo安裝,並注入了無限循環的PHP郵件()腳本。它從域內發送了數千封電子郵件給外部世界,最終讓我的域名在所有主要電子郵件服務提供商列入黑名單,甚至沒有注意到它正在發生。我發現該文件被注入到論壇的緩存和skin_cache目錄中,並將其刪除,並將其永久重定向(使用php頭重定向)設置爲反垃圾郵件收集站點。Apache/Linux Webserver動態阻止傳入的POST請求

當前問題:我現在看到一個穩定且無止境的POST請求流向上述垃圾郵件腳本。知識產權每次都是不同的,似乎永遠不會停止。這已經發生了兩個星期了。太麻煩了,以至於我的apache正在最大化MaxClients設置並且遇到內存問題,並且開始關閉其他進程以進行補償。

這是什麼顯示出來日誌在:

190.40.7.126 - - [28/Mar/2013:18:58:30 -0500] "POST /forum/cache/sslFDoB.php HTTP/1.1" 200 3889 "-" "Mozilla/5.0" 
190.104.19.189 - - [28/Mar/2013:18:58:39 -0500] "POST /forum/cache/sslFDoB.php HTTP/1.1" 200 3889 "-" "Mozilla/5.0" 
78.251.159.173 - - [28/Mar/2013:18:58:57 -0500] "POST /forum/cache/sslFDoB.php HTTP/1.1" 200 3889 "-" "Mozilla/5.0" 
219.78.213.10 - - [28/Mar/2013:18:59:09 -0500] "POST /forum/cache/sslFDoB.php HTTP/1.1" 200 3889 "-" "Mozilla/5.0" 
69.123.20.137 - - [28/Mar/2013:18:59:09 -0500] "POST /forum/cache/sslFDoB.php HTTP/1.1" 200 3889 "-" "Mozilla/5.0" 
2.234.181.7 - - [28/Mar/2013:18:59:37 -0500] "POST /forum/cache/sslFDoB.php HTTP/1.1" 200 3889 "-" "Mozilla/5.0" 
187.207.223.67 - - [28/Mar/2013:18:59:44 -0500] "POST /forum/cache/sslFDoB.php HTTP/1.1" 200 3889 "-" "Mozilla/5.0" 
24.242.122.42 - - [28/Mar/2013:19:01:56 -0500] "POST /forum/cache/sslFDoB.php HTTP/1.1" 200 3889 "-" "Mozilla/5.0" 
213.49.254.102 - - [28/Mar/2013:19:02:32 -0500] "POST /forum/cache/sslFDoB.php HTTP/1.1" 200 3889 "-" "Mozilla/5.0" 
82.247.48.152 - - [28/Mar/2013:19:02:38 -0500] "POST /forum/cache/sslFDoB.php HTTP/1.1" 200 3889 "-" "Mozilla/5.0" 
41.135.146.136 - - [28/Mar/2013:19:02:43 -0500] "POST /forum/cache/sslFDoB.php HTTP/1.1" 200 3889 "-" "Mozilla/5.0" 
91.187.93.36 - - [28/Mar/2013:19:03:04 -0500] "POST /forum/cache/sslFDoB.php HTTP/1.1" 200 3889 "-" "Mozilla/5.0" 
194.90.37.132 - - [28/Mar/2013:19:03:40 -0500] "POST /forum/cache/sslFDoB.php HTTP/1.1" 200 3889 "-" "Mozilla/5.0" 

我需要的最佳方式建議去處理這個問題。簡單地重定向或404'它們不會停止服務器上的資源使用。也有這麼多不同的IP以這樣一個恆定的速率,很難看到是否有任何重複的IP。他們似乎都是隨機射程和不同來源的。我真的不知道這些是假的請求,還是真的讓客戶受到某種垃圾郵件xss或病毒的侵害。

想出一種方法來禁止任何動態請求該文件的IP以便它們不能重試是合理的嗎?我需要建議和幫助。

回答

3

惡意腳本的URL很可能已分發到僵屍網絡,僵屍網絡正在嘗試將您的網絡服務器用作沙灘頭。這些請求最終會消失,因爲僵屍網絡無法繼續請求無法運行的腳本。

快速簡單的修復方法:將<Location>塊添加到您的Apache配置或重寫規則中,該規則將忽略這些請求。

粗魯,隨意的方法:使用基於iptables的速率限制。 iptables -A INPUT -p tcp --dport 80 -m limit --limit 60/min -j ACCEPT可能會有所幫助,但它也可能會阻止合法流量,包括搜索引擎索引器和合法機器人。

更好的解決方案:實現一個Web應用程序防火牆,如Apache的mod_security。您可以添加一條附加規則來匹配傳入的請求並將其列入黑名單或其他任何適當的副作用。

無論您選擇哪種選項,我都非常懷疑404錯誤會損害服務器上的資源使用情況。您需要考慮其他因素:

  • 您的PHP腳本可能會導致一些顯着的性能/效率問題。
  • 您的Apache配置可能不會被優化以處理大量的流量。
  • 您的服務器已損壞,您現在有更大的問題需要處理。

您可能還想考慮將Apache放在Nginx之後作爲反向代理後端。根據原因,在Apache服務器前使用HTTP緩存(如Varnish)可以將服務器上的負載減少爲相對穩定的因素,而不是變化的因素。

TL; DR:這取決於。您的服務器可能被錯誤配置或被盜用。

+0

謝謝你的想法。服務器負載問題可能是我的後綴設置錯誤配置。我剛剛在日誌中發現了一些問題,並且昨天設置了dovecot和opendkim。至於消除傳入的連接,你的建議都讀了,我會看看哪一個將最好的工作。感謝您的答覆。 :] – dns

+0

我現在配置了mod_security來阻止對該文件的所有傳入請求。再次感謝邏輯思想,哈哈。 – dns