# Kuinka suojata palvelin

Palvelimen turvallinen konfigurointi on yksi järjestelmänvalvojien tärkeimmistä tehtävistä. Tämä koskee paitsi itse hallinnoitavia palvelimia myös vuokrattua laitteistoa. Salasanasuojaus, luotettavat SSH-asetukset ja säännölliset päivitykset muodostavat kattavan tietoturvapaketin.

## Kuka vastaa palvelimen turvallisesta konfiguroinnista?

Oman palvelimen ylläpito tarjoaa suurimman mahdollisen vapauden konfiguroinnissa. Hyvä vaihtoehto ovat [root-palvelimet](https://www.ionos.co.uk/servers/root-server "Affordable root servers from IONOS"), joita monet palveluntarjoajat tarjoavat ja joihin annetaan **root-käyttäjän oikeudet**. Molemmissa tapauksissa kriittiset tehtävät, kuten asennus, rakenne ja ylläpito, ovat kokonaan vuokraajan vastuulla. Virheet root-alueella voivat aiheuttaa vakavia ongelmia. Oikeiden menettelytapojen noudattaminen luo kuitenkin ihanteellisen perustan **luotettavalle**, **suorituskykyiselle** ja **turvalliselle palvelimelle**.

## Kuinka suojata palvelimesi vaihe vaiheelta

Haluatpa sitten suojata Windows-, Ubuntu- tai Debian-palvelimen, muutamalla yleispätevällä toimenpiteellä voit luoda **vankan tietoturvapohjan**. Seuraavassa esittelemme tärkeimmät vaiheet.

### Vaihe 1: Suorita perusasennus

Jo ennen kuin ryhdyt suojatoimiin ja palvelimen määrittämiseen, voit vaikuttaa projektisi tulevaisuuden tietoturvamahdollisuuksiin. Käytitpä sitten Windows- tai Linux-käyttöjärjestelmää, noudata tätä periaatetta asennuksen aikana: palvelimellasi tulisi olla vain ne ohjelmistot, joita se tarvitsee **tehtäviensä suorittamiseen**.

Syynä on se, että **jokainen asennettu sovellus aiheuttaa potentiaalisen tietoturvariskin** ja voi heikentää järjestelmän suorituskykyä. Haavoittuvuuksien minimoimiseksi kannattaa asentaa vain välttämättömät järjestelmäkomponentit ja käyttää yksinomaan **luotettavaksi todettuja kolmannen osapuolen ohjelmistoja**.

### Vaihe 2: Aseta vahva salasana

Asennuksen jälkeen sinun tulisi ensimmäiseksi asettaa vahva järjestelmänvalvojan salasana (Windows) tai root-salasana (Linux). Oletusarvoisesti salasanaa ei ole määritetty, joten järjestelmänvalvojan tili pysyy lukittuna, kunnes syötät salasanan. Useimmat käyttöjärjestelmät kehottavat sinua luomaan **salasanan sisältävän tilin** heti asennuksen jälkeen; tätä salasanaa käytetään järjestelmänvalvojan tai root-käyttäjän kirjautumiseen.

Jos olet vuokrannut Linux-palvelimesi palveluntarjoajalta ja saanut valmiiksi määritetyn pääkäyttäjän tunnuksen, vaihda salasana välittömästi. Kirjaudu palvelimeesi SSH:n kautta ja kirjoita terminaaliin seuraava komento:

```bash
passwd
```

Kun olet asettanut turvallisen salasanan, sinun on vahvistettava se. Varmista, että valitset mahdollisimman pitkän salasanan, joka sisältää sekä **kirjaimia**, **erikoismerkkejä** että **numeroita**. On myös suositeltavaa käyttää salasananhallintaohjelmaa, jotta voit tallentaa salasanan turvallisesti ja käyttää sitä tarvittaessa helposti.

Vinkki Jos Linux-järjestelmällesi on jo määritetty pääkäyttäjän salasana etkä tiedä sitä, voit vaihtaa sen **palautustilassa**. Käynnistä palautustila painamalla Shift-näppäintä käynnistysvaiheessa. Siirry ”root”-valikkokohdasta ”Root”-komentokehotteeseen, jossa sinulla on järjestelmänvalvojan oikeudet salasanan muuttamiseen.

### Vaihe 3: Muuta SSH-porttia

Oletusarvoisesti SSH-yhteys käyttää TCP/UDP-porttia 22, joka määritetään valmiiksi järjestelmän asennuksen yhteydessä. Hakkerit kohdistavat automaattiset kirjautumisyrityksensä usein juuri tähän porttiin. Vähennä luvattoman pääsyn riskiä määrittämällä **salatuille etäyhteyksille** eri portti.

Tätä varten muokkaa SSH-määritystiedostoa `sshd_config` millä tahansa tekstieditorilla. Jos haluat käyttää esimerkiksi nano-editoria, suorita seuraava komento:

```bash
nano /etc/ssh/sshd_config
```

Etsi rivi, jossa lukee ”Port”, ja korvaa portin numero 22 haluamallasi numerolla. Muista, että eri palveluille on varattu useita muita vakioportteja (esim. portti 80 HTTP:lle).

Huomio Ennen kuin tiedoston `sshd_config` muutokset astuvat voimaan, sinun on käynnistettävä SSH-palvelu uudelleen. [Debianissa](https://www.ionos.com/fi-fi/digitalguide/palvelin/osaaminen/debian-yleiskaeyttoeinen-jaerjestelmaeohjelmisto/) tämä tapahtuu komennolla `etc/init.d/ssh restart`. Ubuntu-käyttäjien tulee käynnistää palvelu uudelleen komennolla `service ssh restart`.

### Vaihe 4: Poista SSH-kirjautuminen käytöstä järjestelmänvalvojan tileillä

Palvelimen turvallisuuden parantamiseksi on suositeltavaa poistaa SSH-kirjautuminen käytöstä root- tai järjestelmänvalvojan tilillä. Muussa tapauksessa hyökkääjä voi käyttää tiliä etäkäyttöön, jos hän pääsee käsiksi salasanaan.

Ennen kuin otat tämän toimenpiteen käyttöön, varmista, että palvelimeen voi kirjautua **ainakin yhdellä muulla tilillä**, jotta et jää ulos järjestelmästä. Linux-järjestelmissä luo tällainen tili seuraavalla komennolla:

```bash
useradd -g users -d /home/user1 -m -s /bin/bash user1
```

Tämä luo esimerkkitilin nimeltä ”user1”. Määritä seuraavaksi tilille turvallinen salasana:

```bash
passwd user1
```

Tarkista, toimiiko kirjautuminen luodulla käyttäjätilillä. Jos kirjautuminen onnistuu, siirry päätehtävään: poista root-tili käytöstä. Avaa SSH-määritystiedosto `sshd_config` uudelleen haluamallasi tekstieditorilla. Etsi kohta `PermitRootLogin yes` ja korvaa se kohdalla `PermitRootLogin no`. Kun olet käynnistänyt SSH-palvelun uudelleen, **etäkäyttö root-tilillä ei enää ole mahdollista**.

Määrittämällä asetustiedoston kohdassa `AllowGroups` voit myös määrittää, mitkä käyttäjät saavat muodostaa yhteyden SSH:n kautta. Luo tätä varten **ryhmä** (`addgroup`) ja lisää siihen haluamasi käyttäjät (`adduser`). Lisää sitten valitun **ryhmän nimi** kohtaan `sshd_config` (esim. `AllowGroups ssh_users`).

Huomio Vaihtoehto root-tilien SSH-kirjautumisen poistamiselle käytöstä on kieltää salasanapohjainen kirjautuminen kokonaan ja käyttää sen sijaan julkisen avaimen todennusta SSH-avaimilla.

### Vaihe 5: Määritä sähköpostimuistutukset SSH-kirjautumisille

Riippumatta siitä, millaisia toimenpiteitä SSH-yhteyden suojaamiseksi toteutat, sinun tulisi seurata jatkuvasti kaikkia etätoimintoja niiden jälkeen. Näin voit varmistaa, että palvelimesi SSH-palvelu on suojattu asianmukaisesti, ja **havaita luvattomat kirjautumisyritykset varhaisessa vaiheessa**, jolloin voit reagoida tilanteeseen asianmukaisesti. Yksinkertainen shell-skripti voi lähettää automaattisesti ilmoituksen sähköpostitse osoitteeseesi aina, kun palvelimeesi on kirjauduttu etäyhteydellä.

Tässä on esimerkki skriptistä `/opt/shell-login.sh` Linuxille, jonka voit helposti luoda itse:

```txt
#!/bin/bash
echo "Login on $(hostname) on $(date +%Y-%m-%d) at $(date +%H:%M)"
echo "User: $USER"
echo
finger
```

Lisää seuraavaksi seuraava rivi tiedostoon `/etc/profile`:

```txt
/opt/shell-login.sh | mailx -s "SSH login on the server" youremail@example.com
```

Tämä asetus varmistaa, että skripti suoritetaan ja lähettää **ilmoitussähköpostin** määritettyyn osoitteeseen aina, kun SSH-kirjautuminen tapahtuu. Jotta tämä toimisi, skriptille on annettava käyttöoikeudet 755 (luku- ja suoritusoikeudet kaikille käyttäjille sekä kirjoitusoikeudet omistajalle). Voit määrittää nämä käyttöoikeudet seuraavalla komennolla:

```bash
chmod 755 /opt/shell-login.sh
```

Huomio Jos käyttäjä muodostaa SSH-yhteyden esimerkiksi WinSCP:n kaltaisella ohjelmalla, joka ei suorita täydellistä kirjautumista, kuvattu shell-skripti ei lähetä sähköpostia!

### Vaihe 6: Estä käyttämättömät portit

Avoimet portit eivät yleensä aiheuta merkittävää tietoturvariskiä, sillä ne ovat välttämättömiä viestinnälle eri palveluiden ja sovellusten kanssa. Esimerkiksi portit 80 ja 443 ovat välttämättömiä HTTP- ja HTTPS-yhteyksille, samoin kuin valitsemasi SSH-portti. Nämä rajapinnat voivat kuitenkin muuttua haavoittuvuuksiksi, jos **niihin liittyvissä ohjelmissa on tietoturva-aukkoja**, joita hyökkääjät voivat hyödyntää.

Vinkki Lue erillisestä artikkelistamme, miten voit testata porttisi, ja hanki yleiskuva kaikista avoimista porteista.

Jos olet suorittanut järjestelmän perusasennuksen ja asentanut vain muutamia kolmannen osapuolen sovelluksia, tarvittavien lisäporttien määrä on todennäköisesti pieni. Suojaaksesi palvelimesi hyökkäyksiltä sinun tulisi estää kaikki tarpeettomat avoimet portit palomuuriasetuksissasi. Useimmissa yleisimmissä käyttöjärjestelmissä on oletusarvoisesti mukana **pakettisuodatusohjelmisto**, kuten iptables. Tämän työkalun avulla voit määrittää sääntöjä dataliikenteen hallitsemiseksi, mukaan lukien **sallittujen ja estettyjen porttien määrittäminen**.

### Vaihe 7: Päivitä ohjelmisto säännöllisesti

Sovellusten**tunnetut tietoturva-aukot** korjataan yleensä nopeasti päivitysten avulla. Pysymällä ajan tasalla käyttöjärjestelmän ja asennettujen sovellusten päivityksistä sekä asentamalla ne viipymättä varmistat palvelimesi optimaalisen suojan. Useimmissa palvelinjärjestelmissä on myös ominaisuuksia, jotka **lataavat ja asentavat kriittiset tietoturvapäivitykset automaattisesti taustalla**.

Esimerkiksi, jos olet suojaamassa Windows-palvelinta, **Windows Update** -osiossa voit määrittää automaattisia päivityksiä koskevia erityisiä käytäntöjä. Tähän sisältyy sen määrittäminen, milloin ja kuinka usein päivityksiä tarkistetaan, **asennetaanko** ne **välittömästi** ja milloin järjestelmä käynnistetään uudelleen. Linux-järjestelmissä on käytettävissä työkaluja, kuten `apt-listchanges` tai `apticron`, jotka ilmoittavat päivittäin uusista saatavilla olevista ohjelmistopaketeista ja lataavat ne. Muita komentosarjoja, kuten `unattended-upgrades`, voidaan käyttää automaattiseen asennukseen.

Huomio Vaikka käytätkin automaattista päivitysprosessia, varmista, että pidät kirjaa suoritetuista päivityksistä. Tämä auttaa tunnistamaan ja korjaamaan päivitysprosessin aikana mahdollisesti ilmeneviä virheitä.

### Vaihe 8: Suojaa Windows- ja Linux-palvelimet brute force -hyökkäyksiltä

Yksi yksinkertaisimmista ja yleisimmistä hyökkäysmenetelmistä on brute force -hyökkäys. Tällaisessa hyökkäyksessä hakkerit käyttävät työkaluja, joilla ne kokeilevat salasanaa toistuvasti. Ottamalla käyttöön vahvat **salasananhallintakäytännöt** voit vähentää merkittävästi tämän menetelmän onnistumisen todennäköisyyttä.

Jos palvelimesi tarjoaa palveluja, jotka edellyttävät käyttäjien kirjautumista, et voi kuitenkaan olettaa, että kaikki käyttäjät noudattavat vahvojen salasanojen käytäntöjä. **Analyysityökalut** voivat auttaa vähentämään tätä riskiä: Fail2banin (Linux/POSIX-järjestelmät) tai RdpGuardin (Windows) kaltaiset ratkaisut valvovat palvelimen lokitiedostoja, havaitsevat epätavallista käyttäytymistä ja **estävät epäilyttävät IP-osoitteet**. Voit määrittää, kuinka monta epäonnistunutta kirjautumisyritystä sallitaan ennen estämistä, sekä eston keston.

Vinkki Turvallisuuden lisäämiseksi kannattaa harkita kaksivaiheisen todennuksen käyttöönottoa. Tässä menetelmässä tarvitaan salasanan lisäksi toinen todennustekijä, kuten älypuhelin, sirukortti tai TAN-lista.

### Vaihe 9: Käytä seurantatyökaluja

Palvelimen tietoturvan ylläpitämiseksi on ehdottoman tärkeää varmistaa, että **laitteiston ja ohjelmistojen välinen vuorovaikutus** toimii tarkoitetulla tavalla. Kyseessä ei ole kertaluonteinen tehtävä, vaan jatkuva vastuu, joka vaatii jatkuvaa huomiota. Koska **järjestelmässä** on lukuisia **erilaisia prosesseja**, on suositeltavaa ottaa valvontatyökalut käyttöön jo alusta alkaen. Nämä työkalut seuraavat kaikkea palvelimen toimintaa ja ilmoittavat poikkeamista.

Tähän tarkoitukseen sopiva selkeä ja helposti konfiguroitava ohjelma on Monit, joka voidaan asentaa pakettihallinnan kautta useisiin Linux-jakeluihin. Tämä avoimen lähdekoodin sovellus (GNU-AGPL-lisenssi) pystyy valvomaan **prosesseja**, **tiedostoja**, **pilvipalveluita**, **isäntäkoneita**, **ohjelmia** tai **skriptejä** sekä **järjestelmän resursseja**, kuten prosessorin ja muistin käyttöä. Kattavampaa valvontaa varten kannattaa harkita Nagiosia, avoimen lähdekoodin työkalua, joka on saatavilla Linuxille ja Windowsille. Nagiosia voidaan myös laajentaa Nagios-laajennuksilla.

### Vaihe 10: Varmuuskopioiden määrittäminen

Suositellut määritystoimenpiteet parantavat palvelimesi tietoturvaa merkittävästi. Edes parhaat määritykset ja huolellinen ylläpito eivät kuitenkaan voi taata 100-prosenttista suojaa. Kattava varmuuskopiointistrategia on keskeinen osa tietoturvajärjestelmääsi, sillä sen avulla voit palauttaa tiedostot tietojen menetyksen sattuessa.

Käytössäsi on monia luotettavia työkaluja varmuuskopioiden luomiseen ja palauttamiseen. Yksi ilmainen vaihtoehto on avoimen lähdekoodin synkronointityökalu [rsync](https://www.ionos.com/fi-fi/digitalguide/palvelin/tyoekalut/palvelimen-varmuuskopioiden-maeaerittaeminen-rsync-komennolla/), joka on yhteensopiva useimpien yleisimpien alustojen (macOS, Windows, Linux) kanssa. Tämä työkalu pitää varmuuskopiosi ajan tasalla reaaliajassa peilaamalla kaikki alkuperäisiin tietoihin tehdyt muutokset.

Yleisen palvelinvarmuuskopioinnin lisäksi varmista, että varmuuskopioit myös tietokannat.

Huomio Varmistaaksesi varmuuskopioiden turvallisuuden mahdollisimman hyvin, tallenna varmuuskopiot **ulkoisille tallennuslaitteille** (esim. kannettaville kiintolevyille tai lisäpalvelimille) sen sijaan, että tallentaisit ne suojattavalle palvelimelle.


This is a markdown version of: [https://www.ionos.com/fi-fi/digitalguide/palvelin/asetukset/palvelimen-suojaaminen-linuxin-oikea-konfigurointi-jne/](https://www.ionos.com/fi-fi/digitalguide/palvelin/asetukset/palvelimen-suojaaminen-linuxin-oikea-konfigurointi-jne/) for AI/LLM consumption.