Polkadot波卡链:验证节点的安全性和可用性方面

栏目: 编程工具 · 发布时间: 6年前

内容简介:在本文中,我将在验证节点的安全性和可用性方面讨论两个主题。我知道,这里介绍的技巧仅仅涵盖了POS验证节点的“安全性和可用性”冰山一角。不过,我发现它们对于您的测试实例提供最小的安全性和可用性是有用的。在互联网上公开区块链或加密服务会吸引攻击者试图攻击您的系统。所以最好准备好采取任何措施来降低被危害的风险。在运行我的polkadot验证节点时,我观察到大量的攻击者试图强行使用我的ssh密码。

在本文中,我将在验证节点的安全性和可用性方面讨论两个主题。我知道,这里介绍的技巧仅仅涵盖了POS验证节点的“安全性和可用性”冰山一角。不过,我发现它们对于您的测试实例提供最小的安全性和可用性是有用的。

保护验证节点

在互联网上公开区块链或加密服务会吸引攻击者试图攻击您的系统。所以最好准备好采取任何措施来降低被危害的风险。

在运行我的polkadot验证节点时,我观察到大量的攻击者试图强行使用我的ssh密码。

我做的第一件事就是安装SSHGuard。那么什么是SSHGuard?正如Andrew Schartzmeyer在他的博客中所描述的那样:

sshguard监控服务器的日志记录活动。当日志显示有人在攻击时,sshguard会作出相应防护措施阻止攻击。

在我们的例子中,我们使用它来保护我们的SSH端口,安装过程非常简单,默认情况下,它将开始检查Ubuntu服务器上的/var/log/auth.log(其中记录了SSH攻击等) )。

在Ubuntu服务器上运行以下命令以安装SSHGuard,它将使用iptables作为系统防火墙。 iptables是一个用于配置和管理内核netfilter模块的程序。

apt-get update apt-get install -y sshguard

当sshguard阻止任何恶意用户(通过阻止其IP地址)时,它将使用sshguard链。准备好sshguard链并确保在检测到新的传入连接时也会触发链,最后重新启动sshguard。

Polkadot波卡链:验证节点的安全性和可用性方面

在下面的示例中,sshguard在4次登录尝试失败后开始阻止一次尝试,如果攻击者继续攻击,则会逐渐增加阻止时间。

Polkadot波卡链:验证节点的安全性和可用性方面

要查看被阻止的IP地址,请运行以下命令:

Polkadot波卡链:验证节点的安全性和可用性方面

通过这个简单的设置,您可以确保您的明智的sshd端口受到保护,以防愚蠢的攻击者试图侵入您的系统。

polkadot验证节点的进入端口

哪个端口,是polkadot验证器所需要的。验证节点需要三个入站端口:

  1. 30333用于Peer2Peer协议的端口;
  2. 9933用于RPC;
  3. 9944用于WebSocket(WS)通信;

理想情况下,验证节点将只公开这三个端口以及允许您登录系统的sshd端口。

polkadot验证节点的出端口

关于保护以及验证程序的出站端口的一些想法。如security.stackexchange线程中所述

https://security.stackexchange.com/questions/24310/why-block-outgoing-network-traffic-with-a-firewall

进入流量阻塞只能阻止未经请求的流量到达您的内部网络。但是,如果您在内部计算机上收到恶意软件(通过运行不受信任的可执行文件或利用漏洞),您仍然会受到攻击。

通过阻止恶意软件连接到命令和控制服务器或清除数据,阻止传出流量有助于限制损坏。

因此,在生产验证程序节点中,这可能被认为是至关重要的,但要注意:

在高度安全环境中,出站过滤的想法似乎是一个自然的过程。然而,这是一项非常庞大和复杂的事情。

为了说明这一点,我通过分析验证节点的通信模式运行了一个快速练习。

为此,我使用了优秀的工具Wire Shark。

“Wireshark是世界上最重要、应用最广泛的网络协议分析仪。它可以让您在微观层面上了解您的网络上发生了什么,并且是许多商业和非盈利企业、政府机构和教育机构的事实(通常是法律上的)标准。”

为了获得WireShark的输入文件,我必须在我的验证器节点上运行tcpdump命令…

Polkadot波卡链:验证节点的安全性和可用性方面

并将其加载到Wire Shark中。 正如下面的截图所示。 验证节点使用了大量的出站端口。

Polkadot波卡链:验证节点的安全性和可用性方面

预计这将考虑到Validator将使用Peer2Peer通信方案,以便与其他网络中的45个验证节点进行通信。

为了保护出站端口,详细了解底层P2P库是如何工作的,这超出了本文的范围(考虑保护测试节点)。

不过,值得一提的是,支付卡行业数据安全标准只是要求提供信用卡的组织(也是某种验证器)这样做。

PCI DSS要求1.2.1的重点是组织制定政策和程序,将流量限制为业务目的的入站和出站绝对必要的流量。PCI要求1.2.1规定,“将入站和出站流量限制为持卡人数据环境所必需的流量,并明确拒绝所有其他流量。”PCI要求1.2.1的目标是将流量限制为仅必要的、所需的协议、端口或服务,并为所需的ELE提供商业理由。

那么在生产环境中运行Polkadot Validator节点的最低要求是什么。

那么,让我们切换到本文的第二个主题。

提高验证节点的可用性

我正在以7x24方式运行Validator POC-2节点,并试图将削减(由于我的节点不可用)减少到最小。

尽管如此,该进程不时会收到一个终止信号,导致必须启动该进程。

Polkadot波卡链:验证节点的安全性和可用性方面

为了自动执行此任务并将削减概率降至最低,我编写了一个小的cron作业脚本,每分钟执行一次。

要触发的脚本(monitorValidator.sh)将检查是否没有运行polkadot进程

Polkadot波卡链:验证节点的安全性和可用性方面

要安装crontab,请执行以下命令

Polkadot波卡链:验证节点的安全性和可用性方面

如果验证程序进程仍在运行,这将导致每60秒检查一次,否则将重新启动。

在公开报告中,为了协调在Web3空间中工作的团队的协作,一个问题是“为polkadot创建和运行节点集群服务”(https://github.com/w3f/web3 collaboration/issues/43),这将解决可用性问题。

Cosmos比Polkadot更为成熟,它涉及一些主题,其中包括:

  • 提供哨兵节点体系结构,这是一个基础设施示例,用于缓解GAIA/COSMOS集线器网络验证程序节点上的DDOS。

“为了缓解这个问题,在云环境中部署了多个分布式节点(哨兵节点)。由于易于扩展,很难对验证程序节点产生影响。新的哨兵节点可以在DDOS攻击期间出现,并且可以使用八卦网络将它们集成到事务流中。”

  • Tendermint HSM密钥管理系统(KMS)

“一种轻量级服务,旨在与GAIAD服务(理想情况下在单独的物理主机上)一起部署,它提供以下功能:

  • 对验证程序签名密钥的高可用性访问;
  • 即使在验证程序进程受到影响的情况下,也要防止双重签名;
  • 硬件安全模块存储验证程序密钥,可在主机损坏后继续使用”

今天就是这样,至少在验证程序冰山一角的表面上,您已经完成了第一步来确保和提高可用性。

在安全性和可用性的背景下,观察polkadot如何随着时间的推移而发展将是很有趣的。

本文转载自公众号:区块链研究实验室-海纳学院的内容将围绕:区块链技术,产品社群,经济模型等全方位的知识体系输出。

欢迎联系作者:csschan1120


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

The Creative Curve

The Creative Curve

Allen Gannett / Knopf Doubleday Publishing Group / 2018-6-12

Big data entrepreneur Allen Gannett overturns the mythology around creative genius, and reveals the science and secrets behind achieving breakout commercial success in any field. We have been s......一起来看看 《The Creative Curve》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具