Å konfigurere serveren på en sikker måte er en av de viktigste oppgavene for systemadministratorer. Dette gjelder ikke bare for selvadministrerte servere, men også for leid maskinvare. Tiltak som passordbeskyttelse, solide SSH-innstillinger og regelmessige oppdateringer utgjør en helhetlig sikkerhetspakke.

Hvem har ansvaret for sikker serverkonfigurasjon?

Å drifte din egen server gir maksimal frihet når det gjelder konfigurering. Et godt alternativ er root-servere, som mange leverandører tilbyr og som gir tilgang til root-kontoen. I begge tilfeller ligger ansvaret for viktige oppgaver som installasjon, strukturering og vedlikehold helt og holdent hos leietakeren. Feil i root-området kan føre til alvorlige problemer. Men ved å følge de riktige prosedyrene kan man legge et ideelt grunnlag for en pålitelig, ytelsessterk og sikker server.

Slik sikrer du serveren din trinn for trinn

Uansett om du ønsker å sikre en Windows-, Ubuntu- eller Debian-server, finnes det flere generelle tiltak som kan bidra til å legge et solid sikkerhetsgrunnlag. Nedenfor oppsummerer vi de viktigste tiltakene.

Trinn 1: Utfør en minimumsinstallasjon

Selv før du begynner å iverksette sikkerhetstiltak og konfigurere serveren, kan du påvirke prosjektets fremtidige sikkerhetspotensial. Uansett om du bruker et Windows- eller Linux-operativsystem, bør du følge dette prinsippet under installasjonen: Serveren bør kun inneholde den programvaren den trenger for å utføre oppgavene sine.

Årsaken er at hvert program som installeres utgjør en potensiell sikkerhetsrisiko og kan påvirke ytelsen negativt. For å minimere sårbarheter bør du kun installere nødvendige systemkomponenter og utelukkende bruke programvare fra tredjeparter som er verifisert.

Trinn 2: Opprett et sterkt passord

Etter installasjonen bør det første du gjør være å angi et sterkt administratorpassord (Windows) eller root-passord (Linux). Som standard er det ikke angitt noen verdi, så administratorkontoen forblir sperret inntil du oppgir et passord. De fleste operativsystemer ber deg om å opprette en konto med passord umiddelbart etter installasjonen, og denne vil fungere som din administrator- eller root-pålogging.

Hvis du har leid en Linux-server fra en leverandør og fått tildelt en eksisterende root-pålogging, må du endre passordet umiddelbart. Logg inn på serveren via SSH og skriv inn følgende kommando i terminalen:

passwd
bash

Når du har opprettet et sikkert passord, må du bekrefte det. Sørg for å velge et passord som er så langt som mulig og inneholder en blanding av bokstaver, spesialtegn og tall. Det anbefales også å bruke en passordbehandler for å lagre passordet på en sikker måte, slik at du enkelt kan hente det frem ved behov.

Trinn 3: Endre SSH-porten

Som standard bruker SSH-tilgang TCP/UDP-port 22, som er forhåndskonfigurert under systeminstallasjonen. Hackere retter ofte sine automatiserte innloggingsforsøk mot denne porten. For å redusere risikoen for uautorisert tilgang bør du tildele en annen port til krypterte eksterne tilkoblinger.

For å gjøre dette må du redigere SSH-konfigurasjonsfilen sshd_config ved hjelp av en hvilken som helst tekstredigerer. Hvis du for eksempel vil bruke redigeringsprogrammet nano, kjører du følgende kommando:

nano /etc/ssh/sshd_config
bash

Finn linjen merket «Port» og erstatt portnummer 22 med et nummer etter eget valg. Husk at det finnes flere andre standardporter som er reservert for ulike tjenester (f.eks. port 80 for HTTP).

Note

Før endringene i filen sshd_config trer i kraft, må du starte SSH-tjenesten på nytt. I Debian gjør du dette ved hjelp av kommandoen etc/init.d/ssh restart. Ubuntu-brukere starter tjenesten på nytt med service ssh restart.

Trinn 4: Deaktiver SSH-pålogging for administratorkontoer

For å sikre serveren din ytterligere, anbefales det å deaktivere SSH-pålogging for root- eller administratorkontoen. Hvis ikke kan en angriper, dersom vedkommende får tak i passordet, bruke kontoen til å få ekstern tilgang.

Før du iverksetter dette tiltaket, må du sørge for at det finnes minst én annen konto som kan koble seg til serveren, for å unngå at du låser deg selv ute. På Linux-systemer oppretter du en slik konto ved hjelp av følgende kommando:

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

Dette oppretter en eksempelbrukerkonto med navnet «user1». Deretter må du opprette et sikkert passord for kontoen:

passwd user1
bash

Test om påloggingen med den opprettede brukerkontoen fungerer. Hvis det lykkes, fortsett med hovedoppgaven: å deaktivere root-kontoen. Åpne SSH-konfigurasjonsfilen sshd_config igjen med din foretrukne tekstbehandler. Finn oppføringen PermitRootLogin yes og erstatt den med PermitRootLogin no. Etter at SSH-tjenesten er startet på nytt, vil det ikke lenger være mulig å få ekstern tilgang via root-kontoen.

Ved å bruke oppføringen AllowGroups i konfigurasjonsfilen kan du også angi hvilke brukere som har lov til å koble seg til via SSH. For å gjøre dette oppretter du ganske enkelt en gruppe (addgroup) og legger til de ønskede brukerne i den (adduser). Deretter angir du navnetden valgte gruppen i sshd_config (f.eks. AllowGroups ssh_users).

Trinn 5: Konfigurer e-postvarsler for SSH-pålogginger

Uansett hvilke konkrete tiltak du iverksetter for å sikre SSH-tilgangen, bør du kontinuerlig overvåke all ekstern aktivitet i etterkant. Dette sikrer at du kan kontrollere at SSH-tjenesten på serveren din er riktig sikret og oppdage uautoriserte innloggingsforsøk på et tidlig stadium, slik at du kan reagere på riktig måte. Et enkelt shell-skript kan automatisk sende en varslings-e-post til din adresse etter hver vellykket ekstern innlogging på serveren din.

Her er et eksempel på et skript /opt/shell-login.sh for Linux, som du enkelt kan lage selv:

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

Deretter legger du til følgende linje i filen /etc/profile:

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

Denne oppføringen sikrer at skriptet kjøres og sender en varslings-e-post til den angitte adressen hver gang det skjer en SSH-pålogging. For å oppnå dette må skriptet tildeles tillatelsen 755 (lese- og kjøringsrettigheter for alle brukere, samt skriverettigheter for eieren). Du kan angi denne tillatelsen med følgende kommando:

chmod 755 /opt/shell-login.sh
bash

Trinn 6: Blokker ubrukte porter

Åpne porter utgjør vanligvis ikke noen vesentlig sikkerhetsrisiko, da de er avgjørende for kommunikasjonen med ulike tjenester og applikasjoner. For eksempel er portene 80 og 443 nødvendige for HTTP- og HTTPS-tilkoblinger, og det samme gjelder den SSH-porten du har valgt. Disse grensesnittene kan imidlertid bli sårbarheter hvis de tilknyttede programmene har sikkerhetsfeil som angripere kan utnytte.

Hvis du har utført en minimal systeminstallasjon og kun installert et begrenset antall tredjepartsprogrammer, bør antallet ekstra nødvendige porter være lavt. For å beskytte serveren din mot angrep bør du blokkere alle unødvendige åpne porter i brannmurinnstillingene. De fleste store operativsystemer har som standard programvare for pakkefiltrering, for eksempel iptables. Dette verktøyet lar deg definere regler for å regulere datatrafikken, blant annet ved å angi hvilke porter som skal tillates og hvilke som skal blokkeres.

Trinn 7: Oppdater programvaren regelmessig

Kjente sikkerhetshull i applikasjoner blir vanligvis raskt utbedret gjennom oppdateringer. Ved å holde deg oppdatert om oppdateringer for operativsystemet og de installerte applikasjonene, og installere dem umiddelbart, sikrer du optimal beskyttelse for serveren din. De fleste serversystemer har også funksjoner som automatisk laster ned og installerer viktige sikkerhetsoppdateringer i bakgrunnen.

Hvis du for eksempel skal sikre en Windows-server, kan du i delen «Windows Update» konfigurere spesifikke retningslinjer for automatiske oppdateringer. Dette innebærer å angi når og hvor ofte det skal søkes etter oppdateringer, om de skal installeres umiddelbart, og når systemet skal startes på nytt. Linux-systemer tilbyr verktøy som apt-listchanges eller apticron for å varsle deg daglig om nye tilgjengelige programvarepakker og laste dem ned. Andre skript, som unattended-upgrades, kan håndtere automatisk installasjon.

Note

Selv når du bruker en automatisk oppdateringsprosess, må du sørge for å holde oversikt over fullførte oppdateringer. Dette gjør det lettere å oppdage og løse feil som kan oppstå under oppdateringsprosessen.

Trinn 8: Beskytt Windows- og Linux-servere mot brute-force-angrep

En av de enkleste og vanligste angrepsmetodene er brute-force-angrep. Ved denne typen angrep bruker hackere verktøy for å gjentatte ganger prøve seg frem med ulike passord. Ved å innføre gode rutiner for passordhåndtering kan du redusere sannsynligheten for at denne metoden lykkes betydelig.

Hvis serveren din imidlertid tilbyr tjenester som krever brukerinnlogging, kan du ikke ta for gitt at alle brukere følger retningslinjene for sterke passord. Analyseverktøy kan bidra til å redusere denne risikoen: Løsninger som Fail2ban (Linux/POSIX-systemer) eller RdpGuard (Windows) overvåker serverloggfilene, oppdager uvanlig atferd og blokkerer mistenkelige IP-adresser. Du kan angi hvor mange mislykkede forsøk som skal tillates før blokkering, samt hvor lenge blokkeringen skal vare.

Trinn 9: Bruk overvåkingsverktøy

For å opprettholde serversikkerheten er det avgjørende å sikre at samspillet mellom maskinvare og programvare fungerer som forutsatt. Dette er ikke en engangsoppgave, men et kontinuerlig ansvar som krever stadig oppmerksomhet. Med det store antallet ulike systemprosesser er det lurt å ta i bruk overvåkingsverktøy helt fra starten av. Disse verktøyene sporer all serveraktivitet og varsler deg om avvik.

Et enkelt og brukervennlig program for dette formålet er Monit, som kan installeres via pakkehåndtereren på mange Linux-distribusjoner. Dette åpen kildekode-programmet (GNU-AGPL-lisens) kan overvåke prosesser, filer, skytjenester, verter, programmer eller skript, samt systemressurser som CPU- og minnebruk. For mer omfattende overvåking kan du vurdere Nagios, et åpen kildekode-verktøy tilgjengelig for Linux og Windows. Nagios kan også utvides med Nagios-plugins.

Trinn 10: Konfigurer sikkerhetskopiering

De anbefalte konfigurasjonstrinnene forbedrer sikkerheten på serveren din betydelig. Men selv de beste konfigurasjonene og grundig vedlikehold kan ikke garantere 100 % beskyttelse. En omfattende sikkerhetskopieringsstrategi er en avgjørende del av sikkerhetssystemet ditt, som gjør det mulig å gjenopprette filer i tilfelle datatap.

Det finnes mange pålitelige verktøy som kan hjelpe deg med å opprette og gjenopprette sikkerhetskopier. Et gratis alternativ er det åpne kildekode-synkroniseringsverktøyet rsync, som er kompatibelt med de fleste store plattformene (macOS, Windows, Linux). Dette verktøyet holder sikkerhetskopien din oppdatert i sanntid ved å speile alle endringer som gjøres i originaldataene.

I tillegg til en generell sikkerhetskopiering av serveren, må du sørge for å ta sikkerhetskopi av databasene dine også.

Note

For å oppnå maksimal sikkerhet bør du lagre sikkerhetskopiene på eksterne lagringsenheter (f.eks. bærbare harddisker eller ekstra servere) i stedet for på selve serveren som skal sikres.

Go to Main Menu