Cloudflare深入介紹

最近在認真經營這個網誌,所以也研究了一下CDN,目前我這個網站位於美國,有用Cloudflare的快取服務;以下來詳細介紹它的原理、提供的服務。

簡介:

Cloudflare是一個基於CDN(內容傳遞網路)的服務,此類服務的原理是當訪客造訪你的網站時,會透過CDN服務的機器代理,多了一層代理,可以幫你儲存一些網站資料,而CDN的快取分布於全球,自然會比使用者直接存取你的網站還要快;而且這層代理還可以幫你清洗網路流量、優化你的網頁程式碼、防禦惡意的DDOS攻擊(Cloudflare有成功幫香港抵禦過來自祖國的DDOS攻擊),甚至提供SSL憑證的服務。Cloudflare目前有免費版的方案,對於個人網站來說已經足夠,對於更高階的服務,例如在快取下顯示EV SSL證書等有提供企業方案,但是我想一般用戶應該用不太到。

介紹:

本分類將以功能作為介紹依據,盡量解釋每個選項的功能以及影響,畢竟有時候讀懂了說明但是還是不知道開下去會發生甚麼事情。

DNS:

DNS頁籤可以提供使用者管理DNS紀錄,右邊橘色的雲可以讓你自訂該子域是否要經過Cloudflare的服務,若是有提供mail、FTP或是非http/https的服務而且需要真實IP的話,是不能讓雲變成橘色的,因為Cloudflare只能幫你處理網頁存取。

比較特別的功能是DNSSEC,可以確保用戶是連接至授權的DNS伺服器,關於這個可以看看我的另一篇文章:DNSSEC的工作原理

安全:

來介紹安全分頁中的各項設定,這邊主要還是和SSL脫不了關係。

SSL:

SSL是現代網際網路中安全的基石,Cloudflare可以幫你處理加密內容,當然這代表了你需要完全信任Cloudflare可以安全的處理你的憑證,對於安全性要求極高的網站,Cloudflare提供了獨家的無私鑰SS服務,Cloudflare無須知道網站的機密而同樣可以安全的加速請求,當然貴得要死;Cloudflare提供了四種SSL模式:

    • Flexible SSL(靈活的SSL):
      在這個模式下,用戶僅有在與Cloudflare通訊時有受到SSL保護,而在Cloudflare與伺服器通訊是並未受到保護,而使用這種只做半套的方式欺騙使用者網站是安全的這件事,我認為不應該出現。只要伺服器支援SSL,該模式可以很方便的免費轉移到更安全的SSL模式。
    • Full SSL(完全SSL):
      在這種模式下,只要伺服器隨便安裝一張證書就可以了;無須任何的認證,在這種模式下與伺服器的通信是加密但不安全的,因為Cloudflare並不會驗證伺服器身分,所以這種模式僅能防範竊聽,但是無法防範中間人攻擊。
    • Full SSL Strict(完全且嚴格的SSL):
      在這個模式下,伺服器本身需要配置有效的SSL證書,除了依循一般管道購買憑證外,也可以免費自Cloudflare簽發證書,由Cloudflare簽發的證書僅受到Cloudflare承認,但是足夠保護你的伺服器到Cloudflare之間的通訊安全。

Edge Certificates(末端憑證):

這裡可以設定呈現給用戶的憑證,預設是共用的憑證;可以花錢加購獨立的憑證,在商業方案中可以上傳自己的證書,以在用戶的電腦上面顯示EV擴展驗證的綠色瀏覽列。

Origin Certificates(原生憑證):

在此,用戶可以向Cloudflare申請自我簽屬憑證,以提供Cloudflare驗證伺服器使否正確,這項服務是免費的,我建議在搞定這個之後將SSL模式升級成嚴格。

HTTP Strict Transport Security (HSTS):

這項設置可以強制用戶得用https瀏覽你的網站,避免自作聰明的用戶擅作主張的點選忽略安全性警告;當然具有技術的用戶還是可以繞過它。要注意的是這項功能是在用戶存取你的網站時透過瀏覽器實作,所以第一次訪問的用戶是沒有用的,而取消此功能後還要等它過期才會失效,所以啟用後就醫定要確保SSL是能用的。

Authenticated Origin Pulls:

此功能可以在Cloudflare存取你的伺服器時出示憑證,以避免用戶繞過Cloudflare的安全機制存取你的網站。

Opportunistic Encryption(可選的加密):

啟用此功能後將會告知用戶的瀏覽器可以使用SSL進行連線,但是仍會保持未加密的連線,以供瀏覽器自行選擇是否使用https。

TLS 1.3:

就是目前https的最新版本,在這裡提供了0-RTT的選項,啟用該選項以加快網站載入速度。

Automatic HTTPS Rewrites(自動HTTPS重寫):

這項選項可以解決混合的內容錯誤,將網頁中所有的請求都改寫成https,以確保安全性,然而若是連結本身不支援https,這項功能也無能為力。

Firewall(防火牆):

管理誰可以連接到網站,透過IP、國家或自訂規則。

Security Level(安全等級):

Cloudflare提供了數種模式來應對遭遇到的狀況。

  • Essentially off(基本上關閉):
    只針對最高風險的訪客要求圖靈測試
  • Low(低):
    針對較中度威脅的訪客要求圖靈測試
  • Medium(中):
    針對較中度威脅與最高風險的訪客要求圖靈測試
  • High高:
    對14天內出現攻擊行為的訪客要求圖靈測試
  • I’m Under Attack!(我正在被攻擊!):
    只應該被使用在正在遭受DDOS攻擊的網站;首次進入的訪客會看到一個「我不是機器人」的挑戰,同時分析他們的流量和行為,以確保他們是真正的人類訪問您的網站。

注意:我正在被攻擊!模式可能會影響您網域上的某些操作。例如,它可能會阻止對您的API的訪問。您可以使用頁面規則為網域的任何部分設置自定義安全級別。

Challenge Passage(挑戰有效期):

定義了用戶完成一次圖靈測驗後多久內有效。

防火牆設定:

可以自行指定訪客來源與訪問的網頁分別需要接受那些程度的安全檢查;分為下列數種安全等級:

    • Block(阻止):確保永遠不允許IP地址訪問您的網站
    • CAPTCHA:指定的IP地址將在被允許訪問您的網站之前顯示CAPTCHA
    • JavaScript Challenge (挑戰):JavaScript挑戰頁面需要訪問者等待5秒鐘,而Cloudflare會確定訪問者是否來自真實的瀏覽器(而非爬蟲)。挑戰需要訪問者的瀏覽器來回答數學問題,這需要一點時間來計算。一旦成功回答,瀏覽器將被白名單,挑戰有效期內不會再次受到挑戰。
    • Witelist(白名單):確保IP地址永遠不會被阻止訪問您的網站

Speed(速度):

在該選項下免費版只能夠使用Auto Minify的功能(Beta的先放著不管),該選項可以壓縮又列的三種文件的大小,以加快網頁速度。

在〈Cloudflare深入介紹〉中有 1 則留言

發佈留言