先來科普一下Cloudflare~
Cloudflare是一家總部位於舊金山的美國跨國科技企業,以向客戶提供基於反向代理的內容傳遞網路(Content Delivery Network, CDN)為主要業務,現今很多企業會使用它來進行網站的資安防禦以及緩解DDoS攻擊帶來的影響。
內容分發網路(CDN)
Cloudflare的網路在全球擁有許多連線到網際網路交換點的連線。Cloudflare會將內容快取到其邊緣位置,以扮演內容提供網路(CDN)的角色,所有要求接著會透過Cloudflare進行反向Proxy處理,並直接從Cloudflare提供快取的內容。
反向代理
Cloudflare的其中一個主要功能是他們扮演網頁流量的反向代理角色。Cloudflare支援新的網頁通訊協定,包括SPDY與HTTP/2。此外,Cloudflare還提供針對HTTP/2 Server Push的支援。Cloudflare也支援Websocket的代理處理。
DDoS保護
Cloudflare為所有客戶提供「我正遭受攻擊模式(I’m Under Attack)」設定。Cloudflare宣稱這樣可要求使用者必須先通過JavaScript計算式查問的驗證才能存取網站,進而減輕進階第7層攻擊的影響。Cloudflare所提供的保護使得SpamHaus免於流量超過每秒300 Gbit的DDoS攻擊。Akamai的首席結構設計師將它稱為「有史以來網際網路上規模最大的公開DDoS攻擊」。據說Cloudflare當時吸收了峰值超過每秒400 Gbit的NTP校時服務放大攻擊(NTP Reflection Attack)。
網頁應用程式防火牆(WAF)
Cloudflare預設可讓付費方案客戶使用Web應用程式防火牆;此防火牆具有OWASP ModSecurity核心規則集與Cloudflare自有規則集,以及常見Web應用程式規則集。
網域名稱伺服器
Cloudflare為具有任一傳播網路的所有客戶提供免費網域名稱伺服器(DNS)。根據W3Cook,Cloudflare的DNS服務目前所服務的物件超過受管理DNS網域的35%。SolveDNS發現Cloudflare能持續提供全球數一數二的DNS查閱速度,在2016年4月回報的查閱速度為8.66毫秒。
Cloudflare Access
2018年,Cloudflare宣佈提供Cloudflare Access服務,讓員工無需使用虛擬私人網路(VPN)就能透過一次性密碼、GitHub、Azure Active Directory、G Suite或SAML等登入,安全存取公司內部網路。
服務在少於5個使用者的環境使用爲免費,超出後每個使用者每月收費5美金。
域名註冊商(Domain Name Register)
在2019年,Cloudflare宣佈提供域名註冊服務,以不抽利潤的最低價提供域名註冊服務,聲稱只會收取它們需付的費用。
公共DNS解析器(DNS Server)
2018年4月1日,Cloudflare推出了面向使用者,聲稱「隱私第一」的域名系統解析服務。
IP位置爲1.1.1.1和1.0.0.1。IPv6位置爲2606:4700:4700::1111和2606:4700:4700::1001。
由於其所使用的位址塊原來屬於未分配的位址塊,部分網路會使用該位址作為內部認證系統或測試系統位址,所以可能會導致使用者無法正常存取該位址或導致被惡意流量攻擊。
2018年11月11日,Cloudflare推出了1.1.1.1解析器的手機應用程式,可在iOS和Android裝置下載。
以上資料參考來源:https://zh.wikipedia.org/wiki/Cloudflare
更多服務請參考Cloudflare的官方網站
Cloudflare其實就是大型的Proxy Server!
CDN的原理其實就是有大量的Proxy Edge Server,用來暫存網頁內容資料,並會依照用戶端的IP來判斷距離用戶最近的Edge Server,由該Edge Server來提供內容給用戶,因此才能讓連線速度變快~
以前在一些較大型的企業就很常會使用Proxy Server來做為內部網路連線外部網站的緩衝,一方面可以有效降低對外頻寬的需求、一方面可以在Proxy Server上做一些防護措施,可以封鎖有惡意或不想讓公司員工連線的網站。
以技術觀點來說,Cloudflare就是大型的Internet Proxy Server,和企業內部自建的Proxy Server最大的不同處是:
- Cloudflare有很多地區、不同國家的Proxy Edge Server
- Cloudflare的資源更強、服務更多,包括WAF和DDoS的服務
- Cloudflare主要是在Internet上運作,不是在企業的Intranet運作
- Cloudflare採多租戶架構,能讓用戶在網站上自行設定需要的服務
底下的架構示意圖應該能讓大家更明白兩者之間的明顯差異!
CDN的架構示意圖
企業的Proxy架構示意圖
Cloudflare雖然好用,但也不是萬能的!
Cloudflare是目前CDN服務中最廣為人知的,其它常見的CDN服務還有像是老牌的Akamai、AWS的Cloudfront、Google的Cloud CDN和微軟的Azure CDN等等…
Cloudflare的設定是最簡單的,因為它主要是透過DNS的掌控來快速完成CDN的部署,不必像其它家的CDN部署那麼麻煩,再加上其可免費享用部份服務,因此是最被優先考量的CDN方案。
對於大多數使用CDN的人來說主要是兩點考量:
- 速度,增加用戶連線至網站的連線速度
- 安全,用來防護網站的資安,尤其是DDoS和L7的攻擊
當然CDN也不是萬能、更不是完美的,使用CDN時要注意幾點:
- 營運成本增加,因為免費的版本總是功能額度有限,若要付費時就會知道很痛
- 除錯難度增加,直接連線網站的大都是CDN的Proxy Server,但也有可能是駭客的IP
- 仍有公開IP位置,使用CDN的網站仍然會有公開對外的IP,一樣可能會被駭客攻擊
- 網站報表的影響,由於用戶端的IP位置都是CDN的Proxy主機,會造成某些報表異常
所以若是CDN業者有提供報表(付費版才會比較詳細),建議可納入參考~