· 重要配置操作離線簽名
總體架構
由於現階段每一個Authority Node Operator (ANO) 可以運營兩個節點,所以該架構圖展示了 Authority Node A 以及 Authority Node B。
透過查閱當前 Factom 網路 ANO 節點部署的地理位置以及所選用的雲服務廠商,HashQuark研究團隊推薦選擇除 AWS 和 Google 之外的雲廠商在亞洲的機房進行部署,從地理位置及雲服務平臺兩方面增強 Factom 網路的去中心化能力。
DDoS 攻擊防範
為了應對可能的 DDoS 攻擊影響節點記賬,將 Authority Node 部署在內網中,利用Follower Node 進行同步區塊和驗證交易,且這兩個 Follower Node 的公網IP可不對外公開,以免同時遭遇 DDoS 攻擊。
透過部署同樣的Master Authority Node 和 Standby Authority Node 進行熱備,當 Master 節點故障時啟動 Standby 節點。此外,在 Federated Node 需要進行軟體升級時,為避免節點變為 offline 狀態,可藉助 Standby Node 方便地進行 brainswap 操作,保證整個區塊鏈網路的穩定性。
同時搭建日誌監控平臺進行收集、分析和視覺化處理,監控所有節點服務器的CPU負載、磁碟IO 、網路IO、程序數等系統健康程度關鍵指標。
入侵攻擊防範
一、保持主機服務單一,只啟動節點相關程序,避免一機多用;
二、防止全網掃描定位私密的 Follower Node,修改同步埠 8108 至全網最大存活數量的埠 80、443 或 22,以有效地抬高攻擊者定位成本;
三、關閉不相關的其他服務埠,只開放對應需要的埠,並在第三方雲服務上定製嚴格的安全規則(雲服務商控制檯和作業系統防火牆都需要設定此項);
四、更改 SSH 預設的 22 埠,配置 SSH 只允許用 key(並對 key 加密)登入,禁止密碼登入,並限制訪問 SSH 埠的 IP 只能為我方運維 IP;
五、在預算充足的情況下,推薦部署優秀的 HIDS(或參考開源的 OSSEC 相關做法),及時應對服務器被入侵。
節點軟硬體宕機防範
一、透過異地機房部署進行機房災備
二、對電房電源進行備用冗餘
三、庫存高損耗的關鍵硬體進行備份冗餘
四、每個 Authority Node 部署 Master 和 Standby
重要配置操作離線簽名
第一次建立節點身份資訊及金鑰時,自行從原始碼編譯 serveridentity 工具,在離線安全環境下生成安全金鑰與fullidentity.sh 後再複製至線上安全環境執行,並妥善儲存生成的Private keys,其中 level 4 秘鑰為最高安全等級。
當需要設定或更新 coinbase address 與 node efficiency 重要配置時,自行從原始碼編譯 factom-identity-cli 工具,在離線安全環境下生成執行指令碼,再複製至線上安全環境執行。
配置細節
Authority Node 在加入官方的 Docker Swarm 之前,從官方Github下載主網的安全證書新增在/etc/docker/daemon.json 中,並使用 non-root 賬號啟動 Docker服務,防止透過 Docker 提權獲取伺服器許可權。
Authority Node 需要開放的白名單埠:
- TCP/UDP埠 2376 開放給Factom官方 52.48.130.243 & 18.203.51.247 用於與Docker Swarm Master進行加密通訊
- TCP/UDP埠2222 開放給Factom官方 52.48.130.243 & 18.203.51.247,用於 Swarm 在 Authority Node 啟動的 filebeat container通訊
- 同步區塊TCP埠 8108開放給 Follower Node,並且定製配置項 MainSpecialPeers為這些 Follower Node
- RPC服務TCP埠8088 開放給Factom官方 52.48.130.243 & 18.203.51.247,用於除錯
- Control Panel監控頁面TCP埠8090 開放給Factom官方 52.48.130.243 & 18.203.51.247,用於異常監控
Follower Node 需要開放的白名單埠:
- 埠8108對公網開放用於同步區塊
從官方 GitHub 下載主網配置檔案 factomd.conf 和安全證書,以及從官方 Docker hub 下載的映象都需要確保安全,防止被篡改。
對外提供 RPC 服務的節點,透過開放8090埠,同時加上 TLS 證書及賬號密碼保護驗證。
對每個節點的 Control Panel 監控頁面8090埠,僅允許在內網環境透過VPN訪問,並且在將配置項ControlPanelSetting設定為 readonly。