溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何保護(hù)你的以太坊網(wǎng)絡(luò)節(jié)點(diǎn)RPC免受黑客攻擊

發(fā)布時(shí)間:2021-12-22 15:10:49 來(lái)源:億速云 閱讀:178 作者:柒染 欄目:互聯(lián)網(wǎng)科技

本篇文章給大家分享的是有關(guān)如何保護(hù)你的以太坊網(wǎng)絡(luò)節(jié)點(diǎn)RPC免受黑客攻擊,小編覺(jué)得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說(shuō),跟著小編一起來(lái)看看吧。

最近朋友的以太坊節(jié)點(diǎn)遭到黑客攻擊,存儲(chǔ)在Geth錢包中的以太幣通過(guò)暴露的RPC端口命令被轉(zhuǎn)移出去,Transfer可以在下面看到。

如何保護(hù)你的以太坊網(wǎng)絡(luò)節(jié)點(diǎn)RPC免受黑客攻擊

下圖顯示了最近向黑客帳戶的轉(zhuǎn)移:

如何保護(hù)你的以太坊網(wǎng)絡(luò)節(jié)點(diǎn)RPC免受黑客攻擊

保護(hù)計(jì)算機(jī)系統(tǒng)傳統(tǒng)上是一場(chǎng)斗智斗勇,Gosser說(shuō)”穿透者試圖找到漏洞,設(shè)計(jì)師試圖關(guān)閉它們。”

與大多數(shù)比特幣客戶端不同,默認(rèn)情況下,大多數(shù)以太坊客戶端RPC不受密碼保護(hù)。

盡管如此,有多種方法可以保護(hù)以太坊節(jié)點(diǎn)RPC。

其中一些方法包括:

  • 1.為帳戶選擇一個(gè)強(qiáng)密碼。

  • 2.使用Nginx作為反向代理和HTTP基本身份驗(yàn)證。

  • 3.使用UFW設(shè)置防火墻。

安裝以太坊客戶端

以太坊有兩個(gè)主要客戶Parity和Geth。安裝任何一個(gè)都可以很好地與以太坊網(wǎng)絡(luò)進(jìn)行交互。

配置節(jié)點(diǎn)

從來(lái)沒(méi)有這樣做過(guò)!!!

在GETH節(jié)點(diǎn)上啟用RPC訪問(wèn)時(shí),不允許在解鎖帳戶的情況下允許對(duì)RPC進(jìn)行外部訪問(wèn)。例如:

$ geth — rpc — rpcaddr 0.0.0.0 — rpcport 8545 — rpcapi “db, eth, net, web3, personal” — ipcapi “admin,eth,debug,personal,web3” — unlock <addrs>

你基本上允許外部訪問(wèn)你的以太坊帳戶,并且當(dāng)你解鎖帳戶時(shí),攻擊者可以輕松轉(zhuǎn)出存儲(chǔ)在你錢包中的以太幣。

保護(hù)你的以太坊節(jié)點(diǎn)

1.為帳戶選擇強(qiáng)隨機(jī)密碼

在Parity或Geth上創(chuàng)建帳戶時(shí),請(qǐng)選擇一個(gè)強(qiáng)大的隨機(jī)密碼??梢詮囊韵抡军c(diǎn)生成密碼:

  • https://passwordsgenerator.net/

  • https://lastpass.com/generatepassword.php

  • https://www.random.org/passwords/

2.使用Nginx HTTP基本身份驗(yàn)證
  • 安裝Nginx

你需要在服務(wù)器上安裝和配置Nginx,你可以按照此Nginx文章進(jìn)行操作。

  • 設(shè)置HTTP Auth基本憑據(jù)

在此步驟中,你將為運(yùn)行該節(jié)點(diǎn)的用戶創(chuàng)建密碼。

該密碼和關(guān)聯(lián)的用戶名將存儲(chǔ)在你指定的文件中。密碼將被加密,文件名可以是你喜歡的任何名稱。

$ sudo htpasswd -c /etc/nginx/.htpasswd nginx

你可以檢查新創(chuàng)建的文件的內(nèi)容以查看用戶名和哈希密碼。

$ cat /etc/nginx/.htpasswd
  • 更新Nginx配置

現(xiàn)在我們已經(jīng)創(chuàng)建了HTTP基本身份驗(yàn)證憑據(jù),下一步是更新Nginx配置以查看它。

$ sudo nano /etc/nginx/sites-available/default

更新文件以包含這些內(nèi)容:

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;
 }
}
  • 測(cè)試

要應(yīng)用更改,請(qǐng)先重新加載Nginx。

$ sudo service nginx reload

你現(xiàn)在可以訪問(wèn)RPC URL

http://<USERNAME>:<PASSWORD>@mydomain.com

你還可以安裝可以從letsencrypt獲得的免費(fèi)SSL證書,你可以在此處找到該教程。

3.使用UFW設(shè)置防火墻

UFW或Uncomplicated Firewall是iptables的一個(gè)接口,旨在簡(jiǎn)化配置防火墻的過(guò)程。

  • 安裝UFW

$ sudo apt-get install ufw
  • 設(shè)置默認(rèn)策略

$ sudo ufw default deny incoming
$ sudo ufw default allow outgoing
  • 允許以太網(wǎng)網(wǎng)絡(luò)端口

我們還將啟用以太坊網(wǎng)絡(luò),以便我們的節(jié)點(diǎn)能夠與公共區(qū)塊鏈網(wǎng)絡(luò)進(jìn)行通信和同步。

以太坊網(wǎng)絡(luò)端口是30303,

$ sudo ufw allow 30303
  • 啟用RPC端口

我們只允許從我們的可信節(jié)點(diǎn)連接到我們的以太坊客戶端。以太坊端口的默認(rèn)RPC端口為8545。

$ sudo ufw allow from <IP addr> to any port 8545

例如,如果我的外部服務(wù)器IP地址是192.148.16.1,設(shè)置:

$ sudo ufw allow from 192.148.16.1 to any port 8545

如果你使用的是與8545不同的不同RPC端口,則應(yīng)指定它。

  • 啟用UFW

啟用UFW

$ sudo ufw enable
  • 允許其他連接

你也可以根據(jù)需要啟用其他端口,例如:HTTP 端口80,使用此命令可以允許HTTP連接(未加密的Web服務(wù)器使用的連接):

$ sudo ufw allow http

你的防火墻現(xiàn)在應(yīng)配置為允許連接到以太坊RPC和網(wǎng)絡(luò)端口。確保允許服務(wù)器需要的任何其他傳入連接,同時(shí)限制任何不必要的連接,以便你的服務(wù)器功能和安全。

以上就是如何保護(hù)你的以太坊網(wǎng)絡(luò)節(jié)點(diǎn)RPC免受黑客攻擊,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見(jiàn)到或用到的。希望你能通過(guò)這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

rpc
AI