MikroTik RouterOS 的可控性非常的高,並且有內建 Script 功能,如果內建找不到的功能,大部分都可以用 Script 做出來。
如果 Script 也無法做出來,可以透過程式呼叫 MikroTik RouterOS API + VM,所以基本上是沒有任何限制的,只要你寫得出來皆可。
MikroTik RouterOS 的官方教學都只提到 外網負載平衡,並沒有實際運用在 內網負載平衡,Web Load Balancer 可以實作 L4 或 L7 ,本篇實作 L4 的 Web Load Balancer。
要做 Load Balancer 需要分配封包到不同機器,MikroTik RouterOS 提供兩種封包分配方式:
NTH:
如果有兩台伺服器,第一個封包會分配到第一台,第二個封包會分配到第二台,第三個封包會分配到第一台,以此類推。
PCC:
如果有兩台伺服器,用戶進入會依照 Source IP、Source Port、Destination IP、Destination Port 產生一組 hash,依照這組 hash 固定分配到第一台或第二台。
上敘兩種方法 NTH 及 PCC,會發現 NTH 並不適合作 Web Load Balancer,這樣會造成 session 異常,所以必須採用 PCC 方式,以下就採用 PCC 進行設定。
下圖為範例結構:
WAN:1.1.1.1
MikroTik RouterOS LAN:192.168.1.1
Web Server1:192.168.1.2
Web Server2:192.168.1.3
※ 實作以下範例,請確定 NAT 已設定正常,就是 Web Server 可以正常上網,否則可能會無法運作。
Let's Encrypt 是一個於2015年三季度推出的數位憑證認證機構,將通過旨在消除當前手動建立和安裝憑證的複雜過程的自動化流程,為安全網站提供免費的SSL/TLS憑證。Let's Encrypt 憑證簽發為每三個月一次,所以 90 天必須更新一次,可以設定排成自動更新,所以不必擔心。
申請 Let's Encrypt 憑證必須驗證網站是否正常,所以網站需要能正常存取,不可離線申請憑證。
首先必須下載憑證軟體:https://github.com/Lone-Coder/letsencrypt-win-simple/releases
修改網站 web.config,因為 Let's Encrypt 會產生驗證檔案到網站目錄內,但檔案開頭為 . 所以需要修改 web.config 才能存取檔案。
<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <staticContent> <mimeMap fileExtension="." mimeType="text/plain" /> </staticContent> </system.webServer> </configuration>
將憑證軟體解壓縮,執行
letsencrypt.exe --accepttos --manualhost 網域名稱 --webroot 網站資料夾路徑 //例如 letsencrypt.exe --accepttos --manualhost www.ez2o.com --webroot D:\WebRoot
本篇增加 Zen Load Balancer 的 SSL 安全性
安裝可以參考:
https://www.ez2o.com/Blog/Post/Free-Zen-Load-Balancer-Setup
基本設定可以參考:
https://www.ez2o.com/Blog/Post/Free-Zen-Load-Balancer-Web-Server
HTTPS設定可以參考:
https://www.ez2o.com/Blog/Post/Free-Zen-Load-Balancer-HTTPS
開始 SSL 檢測網站:https://www.ssllabs.com/ssltest/
發現得分為 F,Cipher Strength 不到 60 分
本篇使用 Zen Load Balancer 新增 Https Server,以下將說明如何 安裝憑證、新增伺服器、增加安全性。
安裝可以參考:
https://www.ez2o.com/Blog/Post/Free-Zen-Load-Balancer-Setup
基本設定可以參考:
https://www.ez2o.com/Blog/Post/Free-Zen-Load-Balancer-Web-Server
開啟 Zen Load Balancer Master 管理後台,切換到 Manage> Certificates,點擊下圖框選的圖示,上傳憑證
Load Balancer 可以備援其他網路設備,但如果 Load Balancer 故障也會造成服務掛點,此時就需要建置 HA, High Availability 高可靠性,簡單來說就是有兩台 Load Balancer 設備,當 Master 故障時自動切換到 Slave 讓運作不會中斷。
Zen Load Balancer Community Edition 版本就提供了 HA 功能,真是佛心啊!
安裝可以參考:
https://www.ez2o.com/Blog/Post/Free-Zen-Load-Balancer-Setup
基本設定可以參考:
https://www.ez2o.com/Blog/Post/Free-Zen-Load-Balancer-Web-Server
本篇使用兩台 Zen Load Balancer 建置 HA,依照下圖結構為範例。
上圖代表有兩台 Zen Load Balancer 設備,一台 Master 一台 Slave,Master IP 為 192.168.100.36,Slave IP 為 192.168.100.37,兩台共用 192.168.100.35,正常時 Master 持有 192.168.100.35,當 Master 異常時 Slave 持有 192.168.100.35,這樣就可以達到 HA 效果。
網頁伺服器過多人就會造成卡住,此時就須要有多台伺服器才能應付需求,要如何整合伺服器資源,就需要透過 Load Balancer 負載平衡 裝置,自動分配資源到各台伺服器。
安裝可以參考上篇:
https://www.ez2o.com/Blog/Post/Free-Zen-Load-Balancer-Setup
本篇使用 Zen Load Balancer 分配 Http Server 流量,依照下圖結構為範例。
網頁伺服器過多人就會造成卡住,此時就須要有多台伺服器才能應付需求,要如何整合伺服器資源,就需要透過 Load Balancer 負載平衡 裝置,自動分配資源到各台伺服器。
Load Balancer 通常搭配硬體裝置販賣,流量需求越大價格越貴,一台要價十到百萬都有,本篇就介紹免費的 Zen Load Balancer 是一個開放的 TCP、UDP、HTTP 及 HTPPS 負載平衡器,提供了 L7 內容交換以及 L4 負載平衡。Zen Load Balancer 提供了完善的網頁操作介面,我們可以利用網頁管理介面進行設定,也可以利用其圖表瞭解伺服器的運作相關資訊。
首先須到官網下載 Zen Load Balancer Community Edition 此為免費版,另外也有付費版 Zen Load Balancer Enterprise Edition。
官方網址:https://www.zenloadbalancer.com/community/downloads/
GOOGLE 對於 https 的網站會提高評分,所以掛上 SSL(Secure Sockets Layer) 會有助於搜尋效果,也會提高網站安全度。
https 加密經過了好幾代的演化,有 SSL1.0、SSL2.0、SSL3.0、TLS1.0、TLS1.1、TLS1.2、TLS1.3。
目前已知 SSL1.0、SSL2.0、SSL3.0 都有含有弱密碼,所以伺服器都會將 SSL 關閉,只保留 TLS 協定。
傳輸層安全協議(英語:Transport Layer Security,縮寫:TLS),及其前身安全通訊協定(Secure Sockets Layer,縮寫:SSL)是一種安全協定,目的是為網際網路通訊,提供安全及資料完整性保障。網景公司(Netscape)在1994年推出首版網頁瀏覽器,網景領航員時,推出HTTPS協定,以SSL進行加密,這是SSL的起源。IETF將SSL進行標準化,1999年公布了第一版TLS標準檔案。隨後又公布了 RFC 5246 (2008年8月)與 RFC 6176 (2011年3月)。在瀏覽器、電子郵件、即時通訊、VoIP、網路傳真等應用程式中,廣泛支援這個協定。主要的網站,如Google、Facebook等也以這個協定來建立安全連線,傳送資料。目前已成為網際網路上保密通訊的工業標準。
SSL包含記錄層(Record Layer)和傳輸層,記錄層協定確定了傳輸層資料的封裝格式。傳輸層安全協議使用X.509認證,之後利用非對稱加密演算來對通訊方做身分認證,之後交換對稱金鑰作為會談金鑰(Session key)。這個會談金鑰是用來將通訊兩方交換的資料做加密,保證兩個應用間通訊的保密性和可靠性,使客戶與伺服器應用之間的通訊不被攻擊者竊聽。
詳細可以參考:https://zh.wikipedia.org/wiki/SSL
買憑證的第一考慮因該都會是安全度,憑證分為 DV、OV、EV 三種。
DV:只需要驗證網址所有權
OV:驗證網址所有權 及 公司登記資料
EV:驗證網址所有權 及 公司登記資料,網址列會呈現綠色,並且包含公司名稱
第二個考慮為價格
Q1: 為什麼台灣賣的相同憑證比國外貴,是否有安全度不相同?
A1: 安全度相同,就是賣個服務......
本篇要使用 Node.js 快速在 Windows 建立 Web Server 網頁伺服器,首先必須到官網下載 Node.js 程式。
下載網址:https://nodejs.org/download/
依照作業系統下載所需版本。