Apache伺服器受到攻擊
我有一個帶有 Apache 2.2.3 的 CentOS 5.8 伺服器,上面有 20 個網站。過去幾週,伺服器多次無法訪問(數據庫連接過多且 CPU 使用率很高)。我不得不再次重新啟動伺服器才能再次獲得 ssh/ftp/http 訪問權限。當我檢查伺服器的 httpd 日誌文件時,我看到每天有 10.000 次“訪問嘗試”來自 yourthumbnails.com。這是訪問日誌的範例:
98.224.147.78 - - [19/Apr/2012:14:20:06 +0200] "GET /yourthumbnails.com/?id=2&%20121 HTTP/1.1" 404 278 "http://yourthumbnails.com/tgp44.html" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; GTB7.1; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 1.1.4322; .NET CLR 3.5.30729; .NET CLR 3.0.30618; WinNT-PAI 23.10.2009)"
和錯誤日誌
[Thu Apr 19 14:19:15 2012] [error] [client 24.3.144.129] File does not exist: /var/www/vhosts/default/htdocs/yourthumbnails.com, referer: http://yourthumbnails.com/tgp44.html
如您所見,yourthumbnails.com 是引薦來源,實際訪問者都有不同的 IP 地址。所以我不能只阻止一個 IP 地址。
我已經在 Google 上搜尋瞭如何阻止推薦人,但這似乎非常困難。一種方法是通過 htaccess 來完成,如下所示:
RewriteEngine on # Options +FollowSymlinks RewriteCond %{HTTP_REFERER} ^http://(www\.)?yourthumbnails\.com RewriteRule .* - [F]
但是,我查看了我所有站點的單個 httpd 訪問日誌,但找不到你的縮略圖所在的位置。所以看起來我的伺服器被直接攻擊了?而且我不能使用 htaccess 方法。
我的問題:有沒有辦法在不使用大量伺服器資源的情況下阻止伺服器上的這種“推薦人攻擊”?
我已經聯繫了我的提供商,即使他們也無法提出解決方案。因此,如果這裡有人有想法,我會非常高興。
我查看了我所有網站的單個 httpd 訪問日誌,但找不到你的縮略圖所在的位置
但是在錯誤日誌中被報告。看起來您只是沒有將引用者寫入訪問日誌。
但是它並不能解決您描述的問題-您顯示的請求導致 404 響應-這不應導致大量數據庫連接(除非您在 404 處理程序中有一些智能),它應該需要很多與處理有效請求相比,網路伺服器處理此問題的工作量更少。
所以要麼有其他你沒有告訴我們的事情發生,要麼你需要在httpd之上處理這些事情(例如,使用fail2ban規則,iptables中的同步速率限制)。您可能也想與執行 thumbnails.com 的人們取得聯繫。