HashQuark 部署 Factom ANO 安全方案参考
发布:中币网 时间:2019-07-11 00:38:14 加入收藏 打赏
Factom网络中的节点分为三类:Federated Node、Audit Node与Follower Node。其中,Federated Node 负责在区块链账本中记录交易数据,Audit Node 则只有读取的权限,负责检查和校验 Federated Node工作的合法性,并在必要时替换出现问题的 Federated Node,以确保全网的安全和稳定;Follower Node 作为普通节点,能够接收外部用户的数据上链请求并转发给 Federated Node。Federated Node 和 Audit Node 统称为 Authority Node, 二者都可以得到系统代币奖励。
HashQuark研究团队联合慢雾安全团队针对 Factom ANO 的安全部署做了一些思考,主要针对以下问题:
· 总体架构
· DDoS 攻击防范
· 入侵攻击防范
· 节点软硬件宕机防范
· 重要配置操作离线签名
总体架构
由于现阶段每一个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。
币搜:比特币领域的搜索引擎www.btcsearch.com
来源:玩币族
来源:中币网 https://www.zhongbi.net/news/blocknews/190621.html 声明:登载此文仅出于分享区块链知识,并不意味着赞同其观点或证实其描述。文章内容仅供参考,不构成投资建议。投资者据此操作,风险自担。 此文如侵犯到您的合法权益,请联系我们3111859717@qq.com,我们将第一时间处理。