您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關(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可以在下面看到。
下圖顯示了最近向黑客帳戶的轉(zhuǎn)移:
保護(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)行交互。
從來(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ǔ)在你錢包中的以太幣。
在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/
安裝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證書,你可以在此處找到該教程。
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è)資訊頻道。
免責(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)容。