
背景: 我在 ubuntu 上運行 Apache 2。它的使用率很低,主要是透過行動應用程式透過 Web 服務 URL 存取。在我安裝 SSL 憑證之前它工作正常。我現在有http和https。當我使用 https 存取伺服器時,我得到了相當快的回應(但可能沒有以前那麼快)。當我使用http時,速度很慢。
我嘗試過的: 從這郵政:
- 我
curl localhost
來自主機,這需要一些時間,這意味著不存在路由問題。 - 該伺服器在 Amazon EC2 執行個體上運行,僅由我管理。
也:
- 我發現 Apache 一旦運行就會創建允許的最大進程數,而以前的情況並非如此。我將 MaxClients 降低到 20,我認為我得到了更快的回應,但仍然需要一分多鐘的時間,而且我總是有 MaxClients Apache 進程。
dmesg
返回很多[ 1953.655703] TCP: Possible SYN flooding on port 80. Sending cookies.
- 當我 netstat 時,我得到許多帶有
SYN_RECV
.可能是 DDoS 攻擊? - 從 EC2 的監控圖表中,我看到自 2 天前以來「最大網路輸入(位元組)」較高的模式。順便說一下伺服器還在測試中,實際流量很低且不一致。
- 我試著去這使用限制傳入連接的解決方案
iptables
,仍然沒有運氣,但我正在嘗試。
問題: 可能是什麼問題呢?這是 DDoS 攻擊嗎?
更新: 我討論過這個問題這裡。這確實是一次 DDoS 攻擊;也討論了一些解決方案。
答案1
下次,您可能想要使用類似apachetop
或 的東西tail -f /var/log/httpd/access_log
來更好地了解正在發生的事情。您可能會看到很多請求進來,很可能具有可識別的模式:例如特定的ip 範圍,或相同的url,可能在某些登入表單上進行暴力嘗試等。自動執行此操作如果 url 請求在一定時間內足夠高,則範圍進入 iptables 阻止規則。