比特幣節點網路配置與安全加固指南
涵蓋靜態 IP 配置、防火牆設定、SSH 安全強化、RPC 加密、Tor 洋蔥網路設定等進階網路與安全配置。
比特幣節點網路配置與安全加固指南
概述
運行比特幣節點不僅需要合適的硬體,更需要正確的網路配置和安全加固。本指南涵蓋從基礎網路設定到進階安全防護的全部內容。
網路基礎配置
1. 靜態 IP 配置
建議為比特幣節點分配固定 IP:
Ubuntu 設定靜態 IP
# 編輯網路配置
sudo nano /etc/netplan/01-netcfg.yaml
# 範例配置
network:
version: 2
renderer: networkd
ethernets:
eth0:
addresses:
- 192.168.1.100/24
gateway4: 192.168.1.1
nameservers:
addresses:
- 8.8.8.8
- 8.8.4.4
2. 防火牆設定
UFW 防火牆配置(Ubuntu)
# 安裝 UFW
sudo apt install ufw
# 設定預設規則
sudo ufw default deny incoming
sudo ufw default allow outgoing
# 允許 SSH(遠端管理)
sudo ufw allow 22/tcp
# 允許比特幣節點通訊
sudo ufw allow 8333/tcp # 主網
sudo ufw allow 18333/tcp # 測試網
# 啟用防火牆
sudo ufw enable
# 檢查狀態
sudo ufw status verbose
iptables 高級規則
# 允許已建立的連線
sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# 限制比特幣連接數(防 DDoS)
sudo iptables -A INPUT -p tcp --dport 8333 -m connlimit --connlimit-above 50 -j REJECT
# 限制連線速率
sudo iptables -A INPUT -p tcp --dport 8333 -m hashlimit --hashlimit-above 10/min --hashlimit-burst 5 --hashlimit-mode srcip --hashlimit-name bitcoin_limit -j DROP
# 記錄被阻擋的連線
sudo iptables -A INPUT -j LOG --log-prefix "BitcoinBlock: "
3. 路由器端口轉發
在路由器上設置端口轉發:
| 服務 | 端口 | 協定 | 說明 |
|---|---|---|---|
| Bitcoin Core | 8333 | TCP | 主網 P2P |
| Bitcoin Core | 8334 | TCP | 主網 RPC |
| Bitcoin Core | 18333 | TCP | 測試網 P2P |
| Lightning | 9735 | TCP | 閃電網路 |
4. DNS 設定
使用可靠的 DNS 伺服器:
# bitcoin.conf
dnsseed=1
dns=1
# 自訂 DNS 伺服器
addnode=seed.bitcoin.sipa.be
addnode=dnsseed.bluematt.me
addnode=dnsseed.bitcoin.dashjr.org
addnode=seed.bitcoinstats.com
addnode=seed.btc.petertodd.org
安全加固
1. SSH 安全強化
SSH 密鑰認證
# 生成 SSH 密鑰對
ssh-keygen -t ed25519 -C "bitcoin-node"
# 複製公鑰到伺服器
ssh-copy-id user@your-server-ip
# 禁用密碼認證
sudo nano /etc/ssh/sshd_config
# 修改以下內容
PasswordAuthentication no
PermitRootLogin no
PubkeyAuthentication yes
# 重啟 SSH
sudo systemctl restart sshd
SSH 額外安全
# sshd_config 強化
Port 2222 # 更換預設端口
MaxAuthTries 3 # 限制登入嘗試
ClientAliveInterval 300 # 閒置 timeout
AllowUsers bitcoinuser # 限制登入用戶
2. 比特幣 RPC 安全
基本安全配置
# bitcoin.conf
server=1
daemon=1
# RPC 訪問控制
rpcuser=bitcoinuser
rpcpassword=超強密碼(至少 20 字元)
# 限制 RPC 訪問
rpcbind=127.0.0.1 # 只允許本機訪問
# rpcbind=192.168.1.100 # 如需區網訪問
# SSL/TLS 加密(推薦)
rpcssl=1
使用 SSH 隧道訪問 RPC
# 本機建立 SSH 隧道
ssh -N -L 8332:localhost:8332 user@bitcoin-node
# 通過隧道訪問 RPC
bitcoin-cli -rpcconnect=127.0.0.1 -rpcport=8332 getblockchaininfo
3. 隔離環境運行
使用 Docker 隔離
# 安裝 Docker
sudo apt install docker.io
# 運行比特幣節點
docker run -d \
--name bitcoin-node \
-v /home/bitcoin/.bitcoin:/root/.bitcoin \
-p 8333:8333 \
-p 8334:8334 \
-p 28332:28332 \
bitcoin/bitcoin:latest \
bitcoind -daemon -printtoconsole
AppArmor/SELinux 配置
# Ubuntu AppArmor 配置
sudo apt install apparmor-profiles
# 比特幣相關配置
sudo aa-status | grep bitcoin
4. 入侵檢測
Fail2ban 防暴力破解
# 安裝
sudo apt install fail2ban
# 配置
sudo nano /etc/fail2ban/jail.local
# 比特幣相關規則
[bitcoin-rpc]
enabled = true
port = 8334
filter = bitcoin-rpc
logpath = /home/bitcoin/.bitcoin/debug.log
maxretry = 3
bantime = 3600
日誌監控
# 監視比特幣日誌
tail -f ~/.bitcoin/debug.log | grep -i "error\|warning\|suspicious"
# 系統日誌
sudo journalctl -u bitcoind -f
5. 自動更新
# 設定自動安全更新(Ubuntu)
sudo apt install unattended-upgrades
sudo dpkg-reconfigure -plow unattended-upgrades
# 或者手動更新腳本
#!/bin/bash
echo "Starting Bitcoin Core update..."
sudo systemctl stop bitcoind
cd /tmp
wget https://bitcoin.org/bin/bitcoin-core-27.0/bitcoin-27.0-x86_64-linux-gnu.tar.gz
tar -xzf bitcoin-27.0-x86_64-linux-gnu.tar.gz
sudo cp -r bitcoin-27.0/bin/* /usr/local/bin/
sudo systemctl start bitcoind
網路優化
1. 頻寬限制
# bitcoin.conf
# 限制上傳頻寬(KB/s)
maxuploadtarget=5000
# 限制連線數
maxconnections=50
maxconnectionsfromonereIP=5
2. Tor 洋蔥網路
# 安裝 Tor
sudo apt install tor
# 配置 Tor
sudo nano /etc/tor/torrc
# 添加以下內容
ControlPort 9051
CookieAuthentication 1
CookieAuthFileGroupReadable 1
# bitcoin.conf
# 通過 Tor 連接
proxy=127.0.0.1:9050
listen=1
bind=127.0.0.1
# 添加洋蔥節點
onion=127.0.0.1:8334
3. IPv6 配置
# bitcoin.conf
# 允許 IPv6 連接
bind=::
listenonion=::
監控與維護
1. 健康檢查腳本
#!/bin/bash
# check-node.sh
# 檢查比特幣服務狀態
if ! pgrep -x "bitcoind" > /dev/null; then
echo "比特幣節點未運行!"
# 發送通知
curl -X POST "https://通知服務.com/notify" -d "message=比特幣節點停止"
exit 1
fi
# 檢查同步狀態
BLOCKS=$(bitcoin-cli getblockcount)
echo "當前區塊高度: $BLOCKS"
# 檢查連接數
PEERS=$(bitcoin-cli getconnectioncount)
echo "連接節點數: $PEERS"
if [ $PEERS -lt 5 ]; then
echo "警告:連接節點數過少!"
fi
2. 自動化備份
# 自動備份錢包
#!/bin/bash
BACKUP_DIR="/backup/bitcoin"
DATE=$(date +%Y%m%d)
mkdir -p $BACKUP_DIR
cp ~/.bitcoin/wallet.dat $BACKUP_DIR/wallet-$DATE.dat
gzip $BACKUP_DIR/wallet-$DATE.dat
# 清理舊備份(保留 7 天)
find $BACKUP_DIR -name "wallet-*.dat.gz" -mtime +7 -delete
3. 效能監控
# 監視資源使用
watch -n 5 'echo "=== CPU ===" && top -bn1 | head -5 && echo "=== Memory ===" && free -h && echo "=== Disk ===" && df -h | grep bitcoin'
常見問題
Q: 需要開啟哪些端口?
A: 至少 8333(比特幣 P2P)。如需 RPC 管理,開啟 8334。閃電節點需要 9735。
Q: 可以隱藏比特幣節點嗎?
A: 可以通過 Tor 匿名化節點身份,但不建議完全隱藏,這有助於網路健康。
Q: 如何防止 DDoS 攻擊?
A: 設置防火牆限制連線數,使用 CDN/DDoS 防護服務,考慮使用 Tor。
Q: RPC 需要密碼嗎?
A: 絕對需要!使用強密碼,永遠不要通過不安全的網路暴露 RPC 端口。
結論
比特幣節點的網路配置和安全加固是持續的工作:
- 使用防火牆限制訪問
- SSH 使用密鑰認證
- RPC 接口要加密保護
- 定期更新軟體
- 建立監控和備份機制
相關文章
相關文章
- 比特幣節點快速部署 — 從零開始部署比特幣完整節點的完整教學。
- 比特幣節點安全強化指南 — 防火牆設定、安全儲存與節點隔離的實作建議。
- 比特幣節點防火牆配置完整指南 — 詳細介紹比特幣節點的防火牆配置,包括 iptables、ufw、firewalld 設定,以及 Tor 節點安全配置。
- Bitcoin Core 節點運作 — 運行完整節點,理解比特幣網路的運作機制。
- 比特幣節點監控完整指南 — 深入介紹如何自建比特幣節點的監控系統,涵蓋腳本自動化、警報設定和儀表板建置。
延伸閱讀與來源
這篇文章對您有幫助嗎?
請告訴我們如何改進:
0 人覺得有帮助
評論
發表評論
注意:由於這是靜態網站,您的評論將儲存在本地瀏覽器中,不會公開顯示。
目前尚無評論,成為第一個發表評論的人吧!