内容简介:最近朋友的以太坊节点遭到黑客攻击,存储在Geth钱包中的以太币通过暴露的RPC端口命令被转移出去,Transfer可以在下面看到。下图显示了最近向黑客帐户的转移:
最近朋友的以太坊节点遭到黑客攻击,存储在Geth钱包中的以太币通过暴露的RPC端口命令被转移出去,Transfer可以在下面看到。
下图显示了最近向黑客帐户的转移:
保护计算机系统传统上是一场斗智斗勇,Gosser说”穿透者试图找到漏洞,设计师试图关闭它们。”
与大多数比特币客户端不同,默认情况下,大多数以太坊客户端RPC不受密码保护。
尽管如此,有多种方法可以保护以太坊节点RPC。
其中一些方法包括:
- 1.为帐户选择一个强密码。
- 2.使用Nginx作为反向代理和HTTP基本身份验证。
- 3.使用UFW设置防火墙。
安装以太坊客户端
以太坊有两个主要客户Parity和Geth。安装任何一个都可以很好地与以太坊网络进行交互。
你可以通过以下任一文章安装:
配置节点
从来没有这样做过!!!
在GETH节点上启用RPC访问时,不允许在解锁帐户的情况下允许对RPC进行外部访问。例如:
$ geth — rpc — rpcaddr 0.0.0.0 — rpcport 8545 — rpcapi “db, eth, net, web3, personal” — ipcapi “admin,eth,debug,personal,web3” — unlock <addrs>
你基本上允许外部访问你的以太坊帐户,并且当你解锁帐户时,攻击者可以轻松转出存储在你钱包中的以太币。
由于此错误而被黑客入侵的示例:
- 还有我的朋友:)
保护你的以太坊节点
1.为帐户选择强随机密码
在Parity或Geth上创建帐户时,请选择一个强大的随机密码。可以从以下站点生成密码:
- https://passwordsgenerator.net/
- https://lastpass.com/generatepassword.php
- https://www.random.org/passwords/
2.使用Nginx HTTP基本身份验证
- 安装Nginx
你需要在服务器上安装和配置Nginx,你可以按照此 Nginx文章 进行操作。
- 设置HTTP Auth基本凭据
在此步骤中,你将为运行该节点的用户创建密码。
该密码和关联的用户名将存储在你指定的文件中。密码将被加密,文件名可以是你喜欢的任何名称。
$ sudo htpasswd -c /etc/nginx/.htpasswd nginx
你可以检查新创建的文件的内容以查看用户名和哈希密码。
$ cat /etc/nginx/.htpasswd
- 更新Nginx配置
现在我们已经创建了HTTP基本身份验证凭据,下一步是更新Nginx配置以查看它。
$ sudo nano /etc/nginx/sites-available/default
更新文件以包含这些内容:
server { listen 80; listen [::]:80; # ADDED THESE TWO LINES FOR AUTHENTICATION auth_basic “Protected Ethereum client”; auth_basic_user_file /path/to/passwords; server_name example.com; location / { proxy_pass http://localhost:8545/; proxy_set_header Host $host; } }
- 测试
要应用更改,请先重新加载Nginx。
$ sudo service nginx reload
你现在可以访问RPC URL
http://
你还可以安装可以从letsencrypt获得的免费SSL证书,你可以在 此处 找到该教程。
3.使用UFW设置防火墙
UFW或Uncomplicated Firewall是iptables的一个接口,旨在简化配置防火墙的过程。
- 安装UFW
$ sudo apt-get install ufw
- 设置默认策略
$ sudo ufw default deny incoming $ sudo ufw default allow outgoing
- 允许以太网网络端口
我们还将启用以太坊网络,以便我们的节点能够与公共区块链网络进行通信和同步。
以太坊网络端口是30303,
$ sudo ufw allow 30303
- 启用RPC端口
我们只允许从我们的可信节点连接到我们的以太坊客户端。以太坊端口的默认RPC端口为8545。
$ sudo ufw allow from <IP addr> to any port 8545
例如,如果我的外部服务器IP地址是192.148.16.1,设置:
$ sudo ufw allow from 192.148.16.1 to any port 8545
如果你使用的是与8545不同的不同RPC端口,则应指定它。
- 启用UFW
启用UFW
$ sudo ufw enable
- 允许其他连接
你也可以根据需要启用其他端口,例如:HTTP 端口80,使用此命令可以允许HTTP连接(未加密的Web服务器使用的连接):
$ sudo ufw allow http
你的防火墙现在应配置为允许连接到以太坊RPC和网络端口。确保允许服务器需要的任何其他传入连接,同时限制任何不必要的连接,以便你的服务器功能和安全。
结论
安全性是区块链生态系统中的一个主要讨论。到处都有黑客想要偷走你的硬币。
如果你想学习区块链并在Blockchain Technologies建立职业生涯,那么请查看我们分享的一些以太坊、比特币、EOS、Fabric等区块链相关的交互式在线编程实战教程:
- java以太坊开发教程,主要是针对 java 和android程序员进行区块链以太坊开发的web3j详解。
- python以太坊,主要是针对 python 工程师使用web3.py进行区块链以太坊开发的详解。
- php以太坊,主要是介绍使用 php 进行智能合约开发交互,进行账号创建、交易、转账、代币开发以及过滤器和交易等内容。
- 以太坊入门教程,主要介绍智能合约与dapp应用开发,适合入门。
- 以太坊开发进阶教程,主要是介绍使用node.js、 mongodb 、区块链、ipfs实现去中心化电商DApp实战,适合进阶。
- ERC721以太坊通证实战,课程以一个数字艺术品创作与分享DApp的实战开发为主线,深入讲解以太坊非同质化通证的概念、标准与开发方案。内容包含ERC-721标准的自主实现,讲解OpenZeppelin合约代码库二次开发,实战项目采用Truffle,IPFS,实现了通证以及去中心化的通证交易所。
- C#以太坊,主要讲解如何使用C#开发基于.Net的以太坊应用,包括账户管理、状态与交易、智能合约开发与交互、过滤器和交易等。
- java比特币开发教程,本课程面向初学者,内容即涵盖比特币的核心概念,例如区块链存储、去中心化共识机制、密钥与脚本、交易与UTXO等,同时也详细讲解如何在Java代码中集成比特币支持功能,例如创建地址、管理钱包、构造裸交易等,是Java工程师不可多得的比特币开发学习课程。
- php比特币开发教程,本课程面向初学者,内容即涵盖比特币的核心概念,例如区块链存储、去中心化共识机制、密钥与脚本、交易与UTXO等,同时也详细讲解如何在Php代码中集成比特币支持功能,例如创建地址、管理钱包、构造裸交易等,是Php工程师不可多得的比特币开发学习课程。
- c#比特币开发教程,本课程面向初学者,内容即涵盖比特币的核心概念,例如区块链存储、去中心化共识机制、密钥与脚本、交易与UTXO等,同时也详细讲解如何在C#代码中集成比特币支持功能,例如创建地址、管理钱包、构造裸交易等,是C#工程师不可多得的比特币开发学习课程。
- EOS入门教程,本课程帮助你快速入门EOS区块链去中心化应用的开发,内容涵盖EOS工具链、账户与钱包、发行代币、智能合约开发与部署、使用代码与智能合约交互等核心知识点,最后综合运用各知识点完成一个便签DApp的开发。
- 深入浅出玩转EOS钱包开发 ,本课程以手机EOS钱包的完整开发过程为主线,深入学习EOS区块链应用开发,课程内容即涵盖账户、计算资源、智能合约、动作与交易等EOS区块链的核心概念,同时也讲解如何使用eosjs和eosjs-ecc开发包访问EOS区块链,以及如何在React前端应用中集成对EOS区块链的支持。课程内容深入浅出,非常适合前端工程师深入学习EOS区块链应用开发。
- Hyperledger Fabric 区块链开发详解 ,本课程面向初学者,内容即包含Hyperledger Fabric的身份证书与MSP服务、权限策略、信道配置与启动、链码通信接口等核心概念,也包含Fabric网络设计、nodejs链码与应用开发的操作实践,是Nodejs工程师学习Fabric区块链开发的最佳选择。
- Hyperledger Fabric java 区块链开发详解 ,课程面向初学者,内容即包含Hyperledger Fabric的身份证书与MSP服务、权限策略、信道配置与启动、链码通信接口等核心概念,也包含Fabric网络设计、java链码与应用开发的操作实践,是java工程师学习Fabric区块链开发的最佳选择。
- tendermint区块链开发详解 ,本课程适合希望使用tendermint进行区块链开发的工程师,课程内容即包括tendermint应用开发模型中的核心概念,例如ABCI接口、默克尔树、多版本状态库等,也包括代币发行等丰富的实操代码,是 go 语言工程师快速入门区块链开发的最佳选择。
汇智网原创翻译,转载请标明出处。这里是 如何保护你的以太网节点RPC免受黑客攻击?
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 如何确保工业以太网安全—从硬件开始
- 成本优化的工业以太网通信 就要这么做?| 智慧产品圈
- 华为极速以太网解决方案成功通过EANTC数据中心高性能测试
- 如何保护企业云免受勒索软件攻击?
- 如何保护Windows网络免受勒索软件攻击
- CompletableFuture 让你的代码免受阻塞之苦
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。