您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關如何保護你的以太坊網絡節點RPC免受黑客攻擊,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
最近朋友的以太坊節點遭到黑客攻擊,存儲在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>
你基本上允許外部訪問你的以太坊帳戶,并且當你解鎖帳戶時,攻擊者可以輕松轉出存儲在你錢包中的以太幣。
在Parity或Geth上創建帳戶時,請選擇一個強大的隨機密碼。可以從以下站點生成密碼:
https://passwordsgenerator.net/
https://lastpass.com/generatepassword.php
https://www.random.org/passwords/
安裝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證書,你可以在此處找到該教程。
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免受黑客攻擊,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。