問題
最近我們的一台阿里雲服務器 (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 的機器在同一個地域,如果在同一個地域就是可以訪問的。