Sådan sikrer du en server
At konfigurere din server sikkert er en af de vigtigste opgaver for administratorer. Dette gælder ikke kun for selvadministrerede servere, men også for lejet hardware. Foranstaltninger som adgangskodebeskyttelse, solide SSH-indstillinger og regelmæssige opdateringer udgør en omfattende sikkerhedspakke.
Hvem har ansvaret for at sikre, at serveren er konfigureret korrekt?
At hoste sin egen server giver maksimal frihed, når det kommer til konfiguration. Et godt alternativ er root-servere, som mange udbydere tilbyder og giver adgang til root-kontoen. I begge tilfælde påhviler kritiske opgaver som installation, opsætning og vedligeholdelse udelukkende lejeren. Fejl i root-området kan føre til alvorlige problemer. Men ved at følge de korrekte procedurer kan man skabe et ideelt grundlag for en pålidelig, højtydende og sikker server.
Sådan sikrer du din server trin for trin
Uanset om du vil sikre en Windows-, Ubuntu- eller Debian-server, kan der være flere generelle trin, der kan hjælpe med at skabe et solidt sikkerhedsgrundlag. Nedenfor har vi samlet de vigtigste trin.
Trin 1: Udfør en minimumsinstallation
Allerede inden du begynder at træffe sikkerhedsforanstaltninger og konfigurere din server, kan du påvirke dit projekts fremtidige sikkerhedspotentiale. Uanset om du bruger et Windows- eller Linux-operativsystem, bør du følge dette princip under installationen: Din server bør kun indeholde den software, den har brug for til at udføre sine opgaver.
Årsagen er, at hvert eneste installeret program udgør en potentiel sikkerhedsrisiko og kan påvirke ydeevnen negativt. For at minimere sårbarheder bør du kun installere de nødvendige systemkomponenter og udelukkende benytte verificeret tredjepartssoftware.
Trin 2: Vælg en stærk adgangskode
Efter installationen bør du som det første oprette en stærk administratoradgangskode (Windows) eller root-adgangskode (Linux). Som standard er der ikke angivet nogen værdi, så administratorkontoen forbliver spærret, indtil du indtaster en adgangskode. De fleste operativsystemer beder dig om at oprette en konto med en adgangskode umiddelbart efter installationen, som vil fungere som din administrator- eller root-login.
Hvis du har lejet din Linux-server hos en udbyder og har fået tildelt et eksisterende root-login, skal du straks ændre adgangskoden. Log ind på din server via SSH, og indtast følgende kommando i terminalen:
passwdbashNår du har oprettet din sikre adgangskode, skal du bekræfte den. Sørg for at vælge en adgangskode, der er så lang som muligt og indeholder en blanding af bogstaver, specialtegn og tal. Det anbefales også at bruge en adgangskodemanager til at gemme adgangskoden sikkert, så du nemt kan få fat i den, hvis det bliver nødvendigt.
Trin 3: Skift SSH-port
Som standard bruger SSH-adgang TCP/UDP-port 22, som er forudkonfigureret under systeminstallationen. Hackere retter ofte deres automatiske loginforsøg mod denne port. For at mindske risikoen for uautoriseret adgang bør du tildele en anden port til krypterede fjernforbindelser.
For at gøre dette skal du redigere SSH-konfigurationsfilen sshd_config ved hjælp af en vilkårlig teksteditor. Hvis du f.eks. vil bruge nano-editoren, skal du køre følgende kommando:
nano /etc/ssh/sshd_configbashFind den linje, der hedder »Port«, og udskift portnummer 22 med et nummer efter eget valg. Husk, at der findes en række andre standardporte, der er reserveret til forskellige tjenester (f.eks. port 80 til HTTP).
Inden ændringerne i filen sshd_config træder i kraft, skal du genstarte SSH-tjenesten. På Debian kan du gøre dette ved hjælp af kommandoen etc/init.d/ssh restart. Ubuntu-brugere skal genstarte tjenesten med service ssh restart.
Trin 4: Deaktiver SSH-login for administratorkonti
For yderligere at sikre din server anbefales det at deaktivere SSH-login for root- eller administratorkontoen. Ellers kan en hacker, hvis vedkommende får fat i adgangskoden, bruge kontoen til at få fjernadgang.
Inden du gennemfører denne handling, skal du sikre dig, at der findes mindst én anden konto, der kan oprette forbindelse til serveren, så du undgår at låse dig selv ude. På Linux-systemer opretter du en sådan konto ved hjælp af følgende kommando:
useradd -g users -d /home/user1 -m -s /bin/bash user1bashDette opretter en eksempelbrugerkonto med navnet »user1«. Tildel derefter kontoen en sikker adgangskode:
passwd user1bashPrøv at se, om det lykkes at logge ind med den oprettede brugerkonto. Hvis det lykkes, kan du fortsætte med hovedopgaven: at deaktivere root-kontoen. Åbn SSH-konfigurationsfilen sshd_config igen i dit foretrukne tekstredigeringsprogram. Find indtastningen PermitRootLogin yes, og udskift den med PermitRootLogin no. Når SSH-tjenesten er genstartet, vil det ikke længere være muligt at få fjernadgang via root-kontoen.
Ved hjælp af punkt AllowGroups i konfigurationsfilen kan du også angive, hvilke brugere der har tilladelse til at oprette forbindelse via SSH. Det gør du ved blot at oprette en gruppe (addgroup) og tilføje de ønskede brugere til den (adduser). Derefter skal du angive navnet på den valgte gruppe i punkt sshd_config (f.eks. AllowGroups ssh_users).
Trin 5: Konfigurer e-mail-beskeder ved SSH-login
Uanset hvilke konkrete foranstaltninger du træffer for at sikre SSH-adgangen, bør du løbende overvåge alle fjernaktiviteter efterfølgende. På den måde kan du kontrollere, at SSH-tjenesten på din server er korrekt sikret, og opdage uautoriserede adgangsforsøg i god tid, så du kan reagere hensigtsmæssigt. Et simpelt shell-script kan automatisk sende en e-mail-besked til din adresse efter hvert vellykket fjernlogin til din server.
Her er et eksempel på et script /opt/shell-login.sh til Linux, som du nemt selv kan lave:
#!/bin/bash
echo "Login on $(hostname) on $(date +%Y-%m-%d) at $(date +%H:%M)"
echo "User: $USER"
echo
fingertxtTilføj derefter følgende linje til filen /etc/profile:
/opt/shell-login.sh | mailx -s "SSH login on the server" youremail@example.comtxtDenne indstilling sikrer, at scriptet kører og sender en e-mail-besked til den angivne adresse, hver gang der foretages en SSH-login. For at dette skal fungere, skal scriptet have tilladelsen 755 (læse- og køreret for alle brugere samt skriveret for ejeren). Du kan indstille denne tilladelse med følgende kommando:
chmod 755 /opt/shell-login.shbashTrin 6: Blokér ubrugte porte
Åbne porte udgør generelt ikke en væsentlig sikkerhedsrisiko, da de er nødvendige for kommunikationen med forskellige tjenester og programmer. For eksempel er port 80 og 443 nødvendige for HTTP- og HTTPS-forbindelser, ligesom den SSH-port, du har valgt. Disse grænseflader kan dog blive til sårbarheder, hvis de tilknyttede programmer har sikkerhedsfejl, som angribere kan udnytte.
Hvis du har foretaget en minimal systeminstallation og kun har installeret et begrænset antal tredjepartsprogrammer, bør antallet af yderligere nødvendige porte være begrænset. For at beskytte din server mod angreb bør du blokere alle unødvendige åbne porte i dine firewall-indstillinger. De fleste større operativsystemer indeholder som standard software til pakkefiltrering, såsom iptables. Dette værktøj giver dig mulighed for at definere regler til regulering af datatrafikken, herunder angivelse af tilladte og blokerede porte.
Trin 7: Opdater softwaren regelmæssigt
Kendte sikkerhedsrisici i programmer løses typisk hurtigt gennem opdateringer. Ved at holde dig opdateret om opdateringer til dit operativsystem og dine installerede programmer og installere dem straks sikrer du optimal beskyttelse af din server. De fleste serversystemer har desuden funktioner, der automatisk henter og installerer vigtige sikkerhedsopdateringer i baggrunden.
Hvis du f.eks. skal sikre en Windows-server, kan du i afsnittet »Windows Update« konfigurere specifikke politikker for automatiske opdateringer. Her kan du bl.a. angive, hvornår og hvor ofte der skal søges efter opdateringer, om de skal installeres med det samme, og hvornår systemet skal genstartes. Linux-systemer tilbyder værktøjer som apt-listchanges eller shell-scriptet apticron, der dagligt giver dig besked om nye tilgængelige softwarepakker og downloader dem. Andre scripts som unattended-upgrades kan håndtere den automatiske installation.
Selv når du bruger en automatisk opdateringsproces, skal du sørge for at holde styr på de gennemførte opdateringer. Det gør det lettere at identificere og løse eventuelle fejl, der måtte opstå under opdateringsprocessen.
Trin 8: Beskyt Windows- og Linux-servere mod brute-force-angreb
En af de enkleste og mest udbredte angrebsmetoder er brute-force-angrebet. Ved denne type angreb bruger hackere værktøjer til gentagne gange at gætte på adgangskoder. Ved at indføre strenge retningslinjer for adgangskodehåndtering kan du reducere sandsynligheden for, at denne metode lykkes, betydeligt.
Hvis din server imidlertid tilbyder tjenester, der kræver brugerlogin, kan du ikke gå ud fra, at alle brugere følger retningslinjerne for stærke adgangskoder. Analyseværktøjer kan hjælpe med at mindske denne risiko: Løsninger som Fail2ban (Linux/POSIX-systemer) eller RdpGuard (Windows) overvåger serverens logfiler, registrerer usædvanlig adfærd og blokerer mistænkelige IP-adresser. Du kan indstille, hvor mange mislykkede forsøg der må forekomme, før der blokeres, samt hvor længe blokeringen skal vare.
Trin 9: Brug overvågningsværktøjer
For at opretholde serversikkerheden er det afgørende at sikre, at samspillet mellem hardware og software fungerer som det skal. Dette er ikke en engangsopgave, men et løbende ansvar, der kræver konstant opmærksomhed. I betragtning af det store antal forskellige systemprocesser anbefales det at anvende overvågningsværktøjer fra starten. Disse værktøjer overvåger alle serveraktiviteter og giver besked, hvis der opstår uregelmæssigheder.
Et enkelt og brugervenligt program til dette formål er Monit, som kan installeres via pakkehåndteringen på mange Linux-distributioner. Dette open source-program (GNU-AGPL-licens) kan overvåge processer, filer, cloud-tjenester, værter, programmer eller scripts samt systemressourcer som CPU- og hukommelsesforbrug. For en mere omfattende overvågning kan du overveje Nagios, et open source-værktøj, der er tilgængeligt til Linux og Windows. Nagios kan også udvides med Nagios-plugins.
Trin 10: Konfigurer sikkerhedskopier
De anbefalede konfigurationsskridt forbedrer din servers sikkerhed betydeligt. Men selv de bedste konfigurationer og omhyggelig vedligeholdelse kan ikke garantere 100 % beskyttelse. En omfattende sikkerhedskopieringsstrategi er en afgørende del af dit sikkerhedssystem, da den giver dig mulighed for at gendanne filer i tilfælde af datatab.
Der findes mange pålidelige værktøjer, der kan hjælpe dig med at oprette og gendanne sikkerhedskopier. Et gratis alternativ er open source-synkroniseringsværktøjet rsync, som er kompatibelt med de fleste større platforme (macOS, Windows, Linux). Dette værktøj holder din sikkerhedskopi opdateret i realtid ved at spejle alle ændringer, der foretages i de oprindelige data.
Ud over en generel sikkerhedskopiering af serveren skal du sørge for også at sikkerhedskopiere dine databaser.
For at opnå maksimal sikkerhed bør sikkerhedskopierne gemmes på eksterne lagringsenheder (f.eks. bærbare harddiske eller ekstra servere) i stedet for på den server, der skal sikres.