Linux VPS-palvelimen käyttöönotto, suojaus ja optimointi
Tämä opas käy läpi RHEL-pohjaisen VPS-palvelimen turvallisen käyttöönoton vaihe vaiheelta. Jokainen komento on selitetty, jotta tiedät mitä teet ja miksi.
Ennen kuin aloitat
Uusi VPS-palvelin on verkossa näkyvä kohde heti käynnistymisestä lähtien. Automatisoidut botit skannaavat koko internetin jatkuvasti ja löytävät palvelimesi muutamassa minuutissa. Tämän takia suojaus pitää tehdä ennen kuin asennat mitään muuta.
Tarvitset:
- VPS-palvelimen IP-osoitteen
- Root-salasanan (jonka sait palveluntarjoajalta
- Terminaalin omalla koneellasi.
1. Kirjaudu sisään ja päivitä järjestelmä
Kirjaudu palvelimelle ensimmäistä kertaa root-käyttäjänä. Tämä on ainoa kerta kun käytät root-tunnusta suoraan.
ssh root@PALVELIMEN_IP
Päivitä järjestelmä heti. Monet palvelinmurrot hyödyntävät tunnettuja haavoittuvuuksia, jotka olisi voitu estää pelkällä päivityksellä.
dnf update -y # päivitä kaikki paketit uusimpaan versioon (-y hyväksyy automaattisesti)
2. Luo uusi käyttäjä
Root-käyttäjällä on rajattomat oikeudet. Jos hyökkääjä pääsee sisään rootina, koko palvelin on välittömästi vaarantunut. Luodaan tavallinen käyttäjä päivittäiseen käyttöön.
adduser kayttaja # luo uusi käyttäjä
passwd kayttaja # aseta salasana (RHEL ei kysy sitä automaattisesti)
Anna käyttäjälle wheel-oikeudet.
usermod -aG wheel kayttaja # lisää käyttäjä wheel-ryhmään
Vaihda uuteen käyttäjään ja varmista että sudo toimii:
su - kayttaja
sudo whoami # pitäisi tulostaa: root
3. SSH-avainpari
Salasanakirjautuminen on altis brute-force-hyökkäyksille, joissa botti kokeilee tuhansia salasanoja sekunnissa. SSH-avainpari on kryptografisesti turvallinen vaihtoehto – ilman oikeaa avainta sisään ei pääse.
Tee tämä omalla koneellasi, ei palvelimella.
ssh-keygen -t ed25519 -C "oma@email.com" # luo avainpari
Kopioi julkinen avain palvelimelle:
ssh-copy-id kayttaja@PALVELIMEN_IP # lisää avaimen palvelimelle
4. Palomuuri
Palomuuri päättää mikä verkkoliikenne palvelimelle sallitaan.
Ensimmäisenä asennetaan palomuuri
sudo dnf install firewalld -y
sudo systemctl enable firewalld # käynnistä automaattisesti bootissa
Avaa tarvittavat portit. Muista käyttää samaa SSH-porttia jonka valitsit vaiheessa 4.
sudo firewall-cmd --permanent --add-port=2222/tcp # SSH (oma portti)
sudo firewall-cmd --permanent --add-service=http # HTTP
sudo firewall-cmd --permanent --add-service=https # HTTPS
sudo systemctl start firewalld # käynnistä heti
Lataa asetukset.
sudo firewall-cmd --reload # ottaa muutokset käyttöön
Tarkista tila.
sudo firewall-cmd --list-all # näyttää aktiiviset säännöt
5. SSH-asetusten koventaminen
Jotta nano komennot toimivat tässä ympäristössä, pitää asentaa nano.
sudo dnf install nano -y
Nyt kun avainkirjautuminen toimii, lukitaan SSH tiukemmalle.
sudo nano /etc/ssh/sshd_config
Etsi ja muuta:
Port 2222 # vaihda oletusportti 22 → vähentää bottiskannauksia
PermitRootLogin no # estä root-kirjautuminen kokonaan
PasswordAuthentication no # estä salasanakirjautuminen
PubkeyAuthentication yes # varmista että avainkirjautuminen on käytössä
Käynnistä SSH uudelleen.
sudo systemctl restart sshd
Tärkeää!
Älä sulje nykyistä yhteyttä ennen kuin olet testannut uuden portin toimivan. Avaa uusi terminaali-ikkuna ja kokeile kirjautua.
ssh -p 2222 kayttaja@PALVELIMEN_IP
6. Fail2ban
Fail2ban estää automaattisesti IP-osoitteet, jotka yrittävät kirjautua väärillä tunnuksilla.
Asennus vaatii EPEL-repositorion.
sudo dnf install epel-release -y
sudo dnf install fail2ban -y
Luodaan paikallinen konfiguraatiotiedosto. Käytetään jail.local-tiedostoa eikä muokata jail.conf-tiedostoa suoraan, koska päivitykset saattaisivat ylikirjoittaa sen.
sudo nano /etc/fail2ban/jail.local
Kirjoita tiedostoon seuraava. Muista vaihtaa portti vastaamaan valitsemaasi SSH-porttia.
[DEFAULT]
bantime = 1h # IP estetään tunniksi
findtime = 10m # tarkasteluaika
maxretry = 5 # sallittujen virheiden määrä
[sshd]
enabled = true
port = 2222 # SSH-porttisi
Käynnistä Fail2ban ja aseta se käynnistymään automaattisesti.
sudo systemctl enable fail2ban # käynnistyy automaattisesti
sudo systemctl start fail2ban # käynnistä heti
sudo fail2ban-client status sshd # tarkista tila
7. Automaattiset tietoturvapäivitykset
Manuaalinen päivittäminen unohtuu helposti.
sudo dnf install dnf-automatic -y
Ota käyttöön.
sudo systemctl enable --now dnf-automatic.timer # ajastettu päivitys
Halutessasi muokkaa asetuksia.
sudo nano /etc/dnf/automatic.conf
Tiedoston sisällä.
apply_updates = yes # asentaa päivitykset automaattisesti
8. Swap-muisti
VPS-palvelimilla on usein rajallisesti RAM-muistia. Swap on levytilaa, jota käytetään varamuistina kun RAM loppuu. ilman sitä palvelin voi kaatua liikennepiikkien aikana. Luodaan 2 gigatavun swap-tiedosto. Muuta kokoa tarpeen mukaan pienelle palvelimelle 1G riittää, isommalle voi laittaa 4G.
sudo fallocate -l 2G /swapfile # varaa 2 gigatavua levyltä
sudo chmod 600 /swapfile # vain root saa käyttää
sudo mkswap /swapfile # alustaa swapiksi
sudo swapon /swapfile # ottaa käyttöön
Tee asetuksesta pysyvä lisäämällä swap /etc/fstab-tiedostoon, joka määrittää mitä otetaan käyttöön käynnistyksen yhteydessä.
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
Optimointi.
echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p # lataa asetukset heti
9. Varmuuskopiot
Tietoturvakovennukset eivät auta jos kovalevy hajoaa tai poistat vahingossa tärkeän hakemiston. Varmuuskopiot ovat välttämättömät.
Asennetaan rsync, joka on tehokas työkalu tiedostojen kopiointiin.
sudo dnf install rsync -y
Luodaan skripti joka kopioi tärkeimmät hakemistot automaattisesti. Skripti tallentaa kopiot päivättyihin kansioihin ja siivoaa yli 30 päivää vanhat versiot automaattisesti.
sudo nano /usr/local/bin/varmuuskopio.sh
Kirjoita tiedostoon:
#!/bin/bash
PAIVAMAARA=$(date +%Y-%m-%d) # tämän päivän päivämäärä
KOHDE="/backup/$PAIVAMAARA" # kohdekansio
mkdir -p $KOHDE # luo kansio jos puuttuu
rsync -av /etc/ $KOHDE/etc/ # järjestelmäasetukset
rsync -av /var/www/ $KOHDE/www/ # web-sisältö
rsync -av /home/ $KOHDE/home/ # käyttäjät
find /backup -maxdepth 1 -type d -mtime +30 -exec rm -rf {} \; # poista yli 30pv vanhat
Anna skriptille suoritusoikeudet ja ajasta se pyörimään joka yö kello 03:00.
sudo chmod +x /usr/local/bin/varmuuskopio.sh
sudo crontab -e
Lisää cron-editorin loppuun tämä rivi ja tallenna:
0 3 * * * /usr/local/bin/varmuuskopio.sh # aja joka yö klo 03:00
10. Tarkistuslista
sudo firewall-cmd --list-all # palomuuri päällä ja säännöt oikein?
sudo systemctl status sshd # SSH toimii?
sudo systemctl status fail2ban # Fail2ban toimii?
sudo swapon --show # swap aktiivinen?
sudo systemctl status dnf-automatic.timer # automaattiset päivitykset OK?


