Serveri esmane turvamine

Uue serveri esimesed sammud määravad, kui turvaline see edaspidi on. See juhend katab põhilise kõvenduse (hardening) Ubuntu/Debiani serveris.

Eeltingimused

1. Uuenda süsteem

sudo apt update && sudo apt upgrade -y

Lülita sisse automaatsed turvauuendused:

sudo apt install unattended-upgrades -y
sudo dpkg-reconfigure --priority=low unattended-upgrades

2. Loo tavakasutaja (ära tööta root-ina)

adduser siim
usermod -aG sudo siim

Kopeeri SSH-võti uuele kasutajale ja kontrolli, et sisselogimine töötab, enne kui root-i sisselogimise keelad.

3. Kõventa SSH

Muuda /etc/ssh/sshd_config:

PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes

Kontrolli enne taaskäivitust

Veendu teises terminaliaknas, et saad tavakasutajaga võtmega sisse logida, enne kui SSH taaskäivitad. Muidu lukustad end välja.

sudo systemctl restart ssh
Vaheta SSH-port (valikuline)

Pordi vahetamine vähendab automaatsete botide müra (pole päris turve, aga aitab):

Port 2222
Ära unusta uut porti tulemüüris avada ja ~/.ssh/config-is määrata.

4. Seadista tulemüür (UFW)

sudo apt install ufw -y
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow OpenSSH        # või 'sudo ufw allow 2222/tcp' kui vahetasid pordi
sudo ufw allow 80,443/tcp     # veebiserver
sudo ufw enable

Kontrolli olekut:

sudo ufw status verbose

Hetzneri Cloud Firewall

Hetzneril on ka eraldi pilvepõhine tulemüür (Cloud Console). Saad kasutada mõlemat — pilve-tulemüür blokeerib liikluse juba enne serverit.

5. Paigalda fail2ban

fail2ban blokeerib IP-d, mis proovivad parooliga sisse murda:

sudo apt install fail2ban -y
sudo systemctl enable --now fail2ban

Loo /etc/fail2ban/jail.local:

[sshd]
enabled = true
maxretry = 3
bantime = 1h
findtime = 10m

Taaskäivita ja kontrolli:

sudo systemctl restart fail2ban
sudo fail2ban-client status sshd

6. Lisaseaded

  • Eemalda mittevajalikud teenused: sudo systemctl list-units --type=service
  • Ajasünk: veendu, et systemd-timesyncd või chrony töötab.
  • Logimine: kaalu logide saatmist eraldi serverisse (nt Graylog), et need serveri rikke korral alles jääksid.

Pärast seadistust kontrolli

  • Logi uuesti sisse uue tavakasutaja võtmega.
  • Veendu, et root-i sisselogimine on keelatud: ssh root@<ip> peab tõrkuma.
  • Vaata, et veebisait/teenused töötavad pärast tulemüüri sisselülitamist.

Kontroll-loend

  • Süsteem uuendatud, automaatuuendused sees
  • Tavakasutaja loodud, root-i sisselogimine keelatud
  • SSH paroolisisselogimine keelatud
  • UFW tulemüür sees, ainult vajalikud pordid avatud
  • fail2ban töötab
  • Üle kontrollitud, et teenused töötavad