如何保护你的以太坊网络节点RPC免受黑客攻击

本篇文章给大家分享的是有关如何保护你的以太坊网络节点RPC免受黑客攻击,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

最近朋友的以太坊节点遭到黑客攻击,存储在Geth钱包中的以太币通过暴露的RPC端口命令被转移出去,Transfer可以在下面看到。

如何保护你的以太坊网络节点RPC免受黑客攻击

下图显示了最近向黑客帐户的转移:

如何保护你的以太坊网络节点RPC免受黑客攻击

保护计算机系统传统上是一场斗智斗勇,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://<USERNAME>:<PASSWORD>@mydomain.com

你还可以安装可以从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和网络端口。确保允许服务器需要的任何其他传入连接,同时限制任何不必要的连接,以便你的服务器功能和安全。

以上就是如何保护你的以太坊网络节点RPC免受黑客攻击,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注亿速云行业资讯频道。

原创文章,作者:kepupublish,如若转载,请注明出处:https://blog.ytso.com/230710.html

(0)
上一篇 2022年1月15日
下一篇 2022年1月15日

相关推荐

发表回复

登录后才能评论