Apache-2.2
如何防止對 xmlrpc.php 的 DOS 攻擊
我們最近在我們的主要網站上遇到了 DOS 攻擊問題,該網站使用 Apache httpd 2.2.9 和 Drupal 6.35 執行。該攻擊是 Dupal 的 xmlrpc.php 的一個文章,這是一個已知的漏洞,已在最新版本的 Drupal 中進行了修補。然而,因為它是一個較舊的版本,漏洞的修復不在我們的 Drupal 安裝中——也不會因為我們在三個月內遷移到託管平台。
我最初嘗試通過重命名xmlrpc.php來對抗DOS,它返回一個404,但這仍然足以為每個文章創建一個apache執行緒結果是多個執行緒組合起來消耗大量記憶體,所以仍然存在問題。
因此,基於更多的Google搜尋,我剛剛修改了 .htaccess 如下:
<Files "xmlrpc.php"> Order Allow,Deny deny from all </Files>
從這裡開始,大概不會再為每個呼叫創建一個 httpd 執行緒了。
你覺得這就夠了嗎?我可以更進一步,啟用跟踪 VPC 上的流量並查找和阻止原始 IP 地址的功能,但我不知道這是否有效,因為這些攻擊可能來自一群被劫持的系統。雖然我很想知道。有什麼想法嗎?
拒絕塊仍然需要 apache 處理足夠遠的請求以看到它與拒絕匹配,並且很可能在“成本”方面與 404 相同。
您說“DOS”,但您的意思是實際攻擊還是隨機掃描器?隨機掃描器通常不會驅動足夠的流量來使 404’s/403’s 成為問題。
這是在ELB後面嗎?如果沒有,您應該能夠在訪問日誌中看到源地址。您可以考慮實現一個像 Fail2Ban 這樣的工具來監視這種模式,並放入一個臨時的 iptables 規則來阻止對該 IP 的訪問一段時間。
如果它在 ELB 後面,您可以執行類似的操作,除了編寫自定義 shim 來針對包含 ELB 的 VPC 子網 ACL 進行操作。