問題
最近我們的一臺阿里雲伺服器 (ECS,有公網IP,Nginx 伺服器,開放了80,443),遭受到了DDOS攻擊,主要攻擊的行為是 攻擊我們443 埠。發起大量的請求。
但是我們在 Nginx
層面是做了限制的。只允許部分 IP 訪問我們的Nginx
(allow ....; deny all;)所以實際是沒有訪問到我們的服務的介面的。請求未到我們的後端。
疑問點
但是詭異的是,我們的 Nginx
在被攻擊之後,先是進入了流量清洗,清洗完了之後,直接進入黑洞了。也就是說我們伺服器將接受不了請求。但是檢視伺服器的 Nginx
日誌,我們發現流量還是正常從 WAF
進來的。沒有受影響。
我們懷疑問題可能是出在:
- 進入流量黑洞拋棄所有外部流量是針對除了阿里雲之外的流量
- 阿里雲可能單獨對WAF做了策略。
問題原因
名詞解釋
黑洞
按照阿里雲的官方文件的對黑洞的解釋是:
當ECS或SLB例項的公網IP遭到大量DDoS攻擊,且DDoS攻擊的流量超出對應的黑洞閾值後,該公網IP將被黑洞,所有來自外部的流量都將被丟棄,導致相關的業務無法正常訪問。您可以在雲盾DDoS防護控制檯檢視賬號下資產的黑洞事件資訊,例如IP進入黑洞的時間及所遭受的攻擊流量。
繼續翻查阿里雲官方文件,終於發現了蛛絲馬跡,
假如您的伺服器遭受大流量攻擊而進入黑洞,則所有來自外部的流量都會被丟棄,但是阿里雲內部與該伺服器同地域的雲產品仍然能夠正常連通該伺服器。
因此,在您的伺服器進入黑洞後,您可以使用阿里雲內部的ECS雲伺服器連線該伺服器。
https://help.aliyun.com/knowledge_detail/63613.html?spm=a2c4g.11186623.6.569.133d50f7uyQ8Cy
也就是雖然進入了流量黑洞,但是這個同地域的阿里雲產品還是可以訪問到我們的服務的。 (注意是同地域哦。)
檢視 WAF 是否有地域之分 ,看到控制檯就只有一個 中國內地和海外地區。這個就很尷尬了。
重點:但是我們域名接入WAF 的時候 在新增域名的過程中,我們填入後端的 Nginx IP
時 Waf
會判斷我們的 後端是在哪個地域,然後生成的 CNAME 解析地址為 你後端所在地域的 WAF 地址。 所以我們只需要檢視下 CNAME 的地址是否和我們的 ECS 的機器在同一個地域,如果在同一個地域就是可以訪問的。