🇵🇭
Bitskwela x Lido CS Fleet: ETH Home Staking Guide
  • Simulan dito: Kunin ang iyong mga OAT at Mga Tungkulin
  • Ang Lido Community Staking Module
  • Mga Nilalaman
  • Mahalaga: 5 na Utos
  • Pag-unawa sa mga ETH Validators
    • Iba't ibang paraan ng pag-stake ng ETH
    • Mga Tungkulin at Responsibilidad ng Mga Operator ng Node
    • Gantimpala at parusa
    • Pagpili ng Iyong mga Kliyente
  • Setup ng Hardware at OS
    • ​​Setup Overview
    • Kinakailangang Hardware at System Requirements
    • Paggawa ng Iyong Hardware
    • Pamamahala sa Pag-uugnay at Seguridad
    • Installin ang OS
    • Para sa pagpapatibay ng iyong server
  • Installing & Configuring Clients
    • Validator Key Generation
    • Ihanda ang Operating System
    • Mag-set up at i-configure ang execution layer client (Nethermind)
    • Mag-set up at i-configure ang consensus layer client (Teku)
    • Mag-set up at i-configure ang validator client (Teku)
    • Mag-set up at i-configure ang MEV-boost
  • Monitoring, Maintenance, at Updates
    • Mag-set up ng monitoring suite
      • Mag-install at i-configure ang Prometheus
      • Mag-install at i-configure ang Node Exporter
      • Mag-install at i-configure ang Grafana
      • Google Uptime Check
      • Beaconcha.in App settings
  • Pagpapanatili at Pag-update
    • Pag-update ng Nethermind
    • Pag-update ng Teku
    • Pag-update ng monitoring suite
    • Pag-prune ng Nethermind
  • Pag-iipon ng Testnet ETH at Mainnet na Transisyon
    • Pag-iipon ng Testnet ETH sa iyong validator
    • Transisyon sa Mainnet
  • Mga Nakasanayang Praktis
    • Paghahadlang sa Slashing
    • Pagsasaayos ng Uptime at Performance
    • Pagsasaayos ng Seguridad
    • Pamamahala sa iyong withdrawal wallet
  • MGA TIPS
    • Advanced Networking
  • Mga Mapagkukunan
    • Listahan ng mga mapagkukunan
Powered by GitBook
On this page
  • Ikonfigura ang remote access gamit ang SSH keypair
  • Baguhin ang port ng SSH at i-disable ang remote password login
  • I-konfigure ang mga patakaran ng firewall
  • Mag-set up ng proteksyon laban sa brute force
  • Paganahin ang mga awtomatikong update para sa seguridad
  1. Setup ng Hardware at OS

Para sa pagpapatibay ng iyong server

PreviousInstallin ang OSNextValidator Key Generation

Last updated 1 year ago

Ikonfigura ang remote access gamit ang SSH keypair

Mag-generate ng SSH key pair

Sa iyong client machine (halimbawa, ang iyong laptop), buksan ang iyong terminal (sa Mac) o Windows Powershell (sa Windows) at patakbuhin ang sumusunod:

ssh-keygen -t ed25519 -C ethnode

Pindutin ang Enter at mag-set ng isang password upang i-encrypt ang iyong SSH private key.

Ang inaasahang output:

Idagdag ang SSH pubkey sa iyong Node

Samantalang nananatili ang pribadong bahagi ng SSH keypair sa iyong laptop, kailangan nating idagdag ang pampublikong bahagi ng key sa iyong Node.

Sa iyong laptop, patakbuhin ito:

ssh-copy-id -i ~/.ssh/id_ed25519.pub <username>@<node_IP_address>

Ilagay ang password ng iyong NUC device kapag hiningi.

Ilabas ang string ng SSH pubkey at kopyahin ito. Sa iyong laptop, patakbuhin ito:

cat ~/.ssh/id_ed25519.pub

Makikita mo ang kahalintulad na output sa ibaba:

ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBKRXS4XpZoBcuqvXVN2sRNNolKL+ZHy2Xnzx27Op3uY ethnode

SSH papunta sa iyong NUC at ipasok ang iyong password kapag hiningi:

ssh <username>@<node_IP_address> -v

Lumikha ng authorized SSH key file manu-mano.

sudo mkdir -p ~/.ssh
sudo nano ~/.ssh/authorized_keys

I-paste ang iyong kinopyang string ng SSH pubkey sa loob ng file ng authorized_keysat pindutin ang CTRL + O, enter, CTRL + X upang i-save ang file at lumabas.

Baguhin ang port ng SSH at i-disable ang remote password login

Maaari mong gawing mas mahirap para sa mga attacker na ma-access ang iyong node sa pamamagitan ng pagbabago ng iyong SSH port mula sa default na port 22.

Pumili ng isang bilang ng port sa pagitan ng 1024–49151 at suriin na hindi ito ginagamit sa pamamagitan ng pagpapatupad ng:

sudo ss -tulpn | grep <Chosen_SSH_Port_Number>

Inaasahang output: Wala. Halimbawa, Kung walang output, ibig sabihin na ang iyong piniling port ay malaya gamitin.

Susunod, babaguhin natin ang numero ng iyong SSH port at patitigilin ang remote password login nang sabay.

I-takbo ang sumusunod na command upang buksan ang file ng konfigurasyon ng SSH server.

sudo nano /etc/ssh/sshd_config
  1. Hanapin ang linya na Port 22 sa file. Baguhin ito sa iyong napiling numero ng port at pagkatapos tanggalin ang # prefix (kung mayroon) upang i-uncomment ang linya.

  2. I-uncomment ang #AuthorizedKeysFile kung ito ay naka-comment (sa pamamagitan ng pagtanggal ng # sa unahan nito)

  3. Baguhin ang KbdInteractiveAuthentication yes sa KbdInteractiveAuthentication no at i-uncomment (sa pamamagitan ng pagtanggal ng # sa unahan nito)

  4. Baguhin ang PasswordAuthentication yes sa PasswordAuthentication no at i-uncomment (sa pamamagitan ng pagtanggal ng # sa unahan nito)

  5. Baguhin ang #PermitRootLogin prohibit-password sa PermitRootLogin no, tanggalin ang # prefix.

Kapag tapos ka na, i-save gamit ang Ctrl+O at Enter, pagkatapos mag-exit gamit ang Ctrl+X.

Ngayon ay i-restart natin ang SSH server upang ma-register ang bagong mga setting:

sudo systemctl restart sshd

Ngayon ay maaari mo nang ma-access ang iyong node sa malayo gamit ang iyong SSH private key lamang.

Ang command para sa iyong SSH connection ay babaguhin nang kaunti mula noon sa:

ssh <username>@<node_IP_address> -p <new_port_no.> -i .ssh/id_ed25519 -v

I-konfigure ang mga patakaran ng firewall

Ang mga pangunahing patakaran na ipapatupad natin ay ang mga sumusunod:

  1. I-deny ang lahat ng papasok na trapiko bilang default

  2. Payagan ang lahat ng lumalabas na trapiko bilang default

  3. Payagan ang papasok na trapiko sa pamamagitan ng port <iyong_piniling_SSH_port> para sa SSH access

  4. Payagan ang papasok na trapiko sa pamamagitan ng port 30303 para sa Nethermind upang makakonekta sa iba pang mga node

  5. Payagan ang papasok na trapiko sa pamamagitan ng port 9000 para sa Teku upang makakonekta sa iba pang mga node

  6. Payagan ang papasok na trapiko sa pamamagitan ng port 3000 para sa Grafana upang maipakita ang mga monitoring dashboard para sa iyong node

sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow <your_chosen_SSH_port>/tcp
sudo ufw allow 30303
sudo ufw allow 9000
sudo ufw allow 3000

Sa mga konfigurasyong ito, mabibigyan mo ng harang ang lahat ngunit apat na posibleng bukas para sa mga potensyal na attacker na pumasok.

  • Ang mga Port 30303 at 9000 ay gagamitin ng Nethermind at Teku. Gagawa tayo ng mga account ng user na may disabled na root access para sa mga serbisyong ito.

  • Ang Port 3000 ay ma-access lamang sa loob ng iyong lokal na network (halimbawa, hindi ito inilalantad sa pampublikong internet).

  • Ang iyong piniling SSH port ay naka-seguro ng iyong SSH private key kaya't halos imposibleng buwagin ang access.

Paganahin ang firewall sa pamamagitan ng mga sumusunod na hakbang:

Pagkatapos paganahin ang firewall, suriin ang mga konfigurasyon bago magpatuloy.

sudo ufw enable
sudo ufw status numbered

You should see something similar to the screenshot below:

Mag-set up ng proteksyon laban sa brute force

Kahit na ang pagkakaroon natin ng SSH key access ay nangangahulugang kailangan ng isang mananalakay ng 25 milyong taon upang masubukan ang lahat ng mga kombinasyon, halina’t gumawa ng mas mahirap pa para sa kanila - sa pamamagitan ng pag-limit sa bilang ng mga pagtatangka sa bawat IP address sa 5 subok at pag-block sa kanila pagkatapos.

Mag-install ng software:

sudo apt install -y fail2ban

Buksan ang configuration file:

sudo nano /etc/fail2ban/jail.d/ssh.local

Idagdag ang sumusunod na nilalaman sa configuration file:

[sshd]
enabled = true
banaction = ufw
port = <your_chosen_SSH_port>
filter = sshd
logpath = %(sshd_log)s
maxretry = 5

Kapag tapos ka na, i-save at i-exit gamit ang Ctrl+Oat Enter, pagkatapos Ctrl+X.

Sa wakas, i-restart ang service:

sudo systemctl restart fail2ban

Paganahin ang mga awtomatikong update para sa seguridad

sudo apt update
sudo apt install -y unattended-upgrades update-notifier-common
sudo nano /etc/apt/apt.conf.d/20auto-upgrades

Idagdag ang sumusunod na nilalaman sa configuration file:

APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";
APT::Periodic::AutocleanInterval "7";
Unattended-Upgrade::Remove-Unused-Dependencies "true";
Unattended-Upgrade::Remove-New-Unused-Dependencies "true";
Unattended-Upgrade::Automatic-Reboot "true";
Unattended-Upgrade::Automatic-Reboot-Time "02:00";

Kapag tapos ka na, i-save at i-exit gamit ang Ctrl+Oat Enter, pagkatapos Ctrl+X.

Sa wakas, i-restart ang service:

sudo systemctl restart unattended-upgrades

Siguraduhing suriin ang mga talaan para sa anumang babala:

sudo cat /var/log/unattended-upgrades/unattended-upgrades.log

Kung nakakita ka ng mga sumusunod na babala, magpatuloy sa susunod na hakbang.

2024-02-01 04:48:24,012 WARNING System is on battery power, stopping
2024-02-01 06:19:01,972 WARNING System is on battery power, stopping
2024-02-01 17:53:48,650 WARNING System is on battery power, stopping

Kung ang iyong aparato ay tiyak na konektado sa isang pinagmumulan ng kuryente, baguhin ang file na 50unattended-upgrades nang direkta.

sudo nano /etc/apt/apt.conf.d/50unattended-upgrades

Hanapin ang sumusunod na linya at alisin ang // na nasa unahan upang ito ay maging epektibo.

// Unattended-Upgrade::OnlyOnACPower "false";