Para sa pagpapatibay ng iyong server
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.
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
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.I-uncomment ang
#AuthorizedKeysFile
kung ito ay naka-comment (sa pamamagitan ng pagtanggal ng # sa unahan nito)Baguhin ang
KbdInteractiveAuthentication yes
saKbdInteractiveAuthentication no
at i-uncomment (sa pamamagitan ng pagtanggal ng#
sa unahan nito)Baguhin ang
PasswordAuthentication yes
saPasswordAuthentication no
at i-uncomment (sa pamamagitan ng pagtanggal ng#
sa unahan nito)Baguhin ang
#PermitRootLogin prohibit-password
saPermitRootLogin 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:
I-deny ang lahat ng papasok na trapiko bilang default
Payagan ang lahat ng lumalabas na trapiko bilang default
Payagan ang papasok na trapiko sa pamamagitan ng port <iyong_piniling_SSH_port> para sa SSH access
Payagan ang papasok na trapiko sa pamamagitan ng port 30303 para sa Nethermind upang makakonekta sa iba pang mga node
Payagan ang papasok na trapiko sa pamamagitan ng port 9000 para sa Teku upang makakonekta sa iba pang mga node
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+O
at 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+O
at 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";
Last updated