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
  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";

Last updated