Teknologi

VPS-sikkerhet: de 10 første innstillingene

Vi går gjennom innstillingene for SSH, brannmur, fail2ban og oppdateringer på en ny virtuell server i riktig rekkefølge, med fungerende kommandoer og vanlige feil.

Aurora YazılımRedaksjonen 6 min lesetid
VPS-sikkerhet: de 10 første innstillingene
Hva bør du gjøre først for VPS-sikkerhet?

Det første du gjør for VPS-sikkerhet, er å oppdatere systemet, opprette en bruker med sudo-rettigheter i stedet for root og sette opp pålogging med SSH-nøkkel. Deretter deaktiverer du pålogging med root og passord over SSH, åpner bare nødvendige porter i brannmuren, installerer fail2ban, aktiverer automatiske sikkerhetsoppdateringer og planlegger jevnlig sikkerhetskopiering.

Hvor starter VPS-sikkerhet?

En nylig opprettet virtuell server er et mål for automatiske skannere fra det øyeblikket den kobles til internett. Disse botene angriper ikke et bestemt selskap, men prøver alle maskiner med åpen SSH-port og svakt passord. Det er helt vanlig at serverloggene allerede i de første timene viser tusenvis av påloggingsforsøk.

Derfor starter VPS-sikkerhet med noen grunnleggende innstillinger i den første timen etter oppsettet. De ti stegene under er skrevet for servere basert på Ubuntu og Debian; selv om pakkehåndterer og tjenestenavn er annerledes i andre distribusjoner, er logikken den samme.

Hvis serveradministrasjon er nytt for deg, eller du driver nettstedet sammen med et utviklerteam, bør du avklare fra starten hvem som har ansvar for disse stegene. Sikkerhetsinnstillinger er ikke noe man gjør én gang og glemmer, men en prosess som krever jevnlig vedlikehold.

Dette bør du vite før du begynner

Før du går i gang, må du ha følgende: serverens IP-adresse, den første root- eller administratortilgangen du fikk fra leverandøren, og en terminal på din egen datamaskin. På Windows 10 og 11 følger OpenSSH-klienten med i PowerShell; på macOS og Linux er Terminal nok.

Det er også en god vane å lagre kommandoene i en notatfil mens du jobber. Når du vet hvilken innstilling du endret og når, blir det enklere å finne årsaken hvis det oppstår et problem senere, og du kan gjenta det samme oppsettet på en ny server. Hvis du står fast under oppsettet, kan du ta kontakt med teamet vårt via siden kontakt.

System- og brukerinnstillinger

De to første stegene er å fjerne kjente sårbarheter fra serveren og å gjøre den daglige jobben med en annen konto enn root.

1. Oppdater systemet

Leverandørens ferdige image kan være laget for flere måneder siden. Det første du gjør, er å oppdatere alle pakker med de nyeste sikkerhetsoppdateringene. Hvis det kom en kjerneoppdatering, starter du serveren på nytt.

bash
sudo apt update && sudo apt upgrade -y
sudo reboot

2. Opprett en bruker med sudo-rettigheter

Å jobbe med root-kontoen betyr at en enkelt feil kommando kan påvirke hele systemet. Opprett en egen bruker og legg den til i sudo-gruppen; bruk administratorrettigheter bare når det trengs.

bash
sudo adduser yonetici
sudo usermod -aG sudo yonetici

SSH-sikkerhet

SSH er serverens inngangsdør. For SSH-sikkerhet er de to mest effektive stegene å bruke nøkkel i stedet for passord og å deaktivere pålogging som root.

3. Sett opp pålogging med SSH-nøkkel

Lag et nøkkelpar på din egen datamaskin og kopier den offentlige nøkkelen til serveren. På macOS og Linux gjør kommandoen ssh-copy-id dette i ett steg; på Windows kan du overføre den offentlige nøkkelen til serveren med PowerShell. Å gi nøkkelen en passordfrase (passphrase) gir ekstra beskyttelse selv om datamaskinen din skulle bli kompromittert.

bashmacOS / Linux
ssh-keygen -t ed25519
ssh-copy-id yonetici@SUNUCU_IP
powershellWindows PowerShell
ssh-keygen -t ed25519
type $env:USERPROFILE\.ssh\id_ed25519.pub | ssh yonetici@SUNUCU_IP "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"

4. Deaktiver pålogging som root og med passord

Når du har bekreftet i en andre terminal at pålogging med nøkkel fungerer, strammer du inn SSH-konfigurasjonen. Å teste konfigurasjonen før endringen trer i kraft hindrer at én feil linje stopper tjenesten.

Pass på: på noen skybilder kan ekstra filer i mappen /etc/ssh/sshd_config.d/ åpne passordpålogging igjen. Kontroller også denne mappen etter at du har gjort innstillingen.

bashI /etc/ssh/sshd_config
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
bashTest og start på nytt
sudo sshd -t
sudo systemctl restart ssh

Brannmur og Fail2ban

Bare portene som faktisk tilbyr tjenester utad, bør være åpne på serveren. Riktige brannmurinnstillinger gjør angrepsflaten mindre, mens fail2ban automatisk blokkerer adresser som prøver gjentatte ganger.

5. Aktiver brannmuren

På Ubuntu gir UFW et enkelt grensesnitt over iptables. Tillat SSH først, og aktiver deretter brannmuren; hvis rekkefølgen er motsatt, mister du tilkoblingen.

bash
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow OpenSSH
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
sudo ufw status verbose

6. Installer Fail2ban

Fail2ban overvåker loggene og blokkerer IP-adresser med gjentatte mislykkede påloggingsforsøk i en bestemt tid. Gjør innstillingene i filen jail.local, som ikke blir overskrevet ved oppdateringer, ikke direkte i hovedfilen.

bashInstallasjon
sudo apt install fail2ban -y
sudo systemctl enable --now fail2ban
ini/etc/fail2ban/jail.local
[sshd]
enabled = true
maxretry = 5
bantime = 1h
findtime = 10m
bashKontroll
sudo systemctl restart fail2ban
sudo fail2ban-client status sshd

Oppdateringer og tjenester

En stor del av sikkerhetshullene kommer fra programvare der oppdateringen for lengst er utgitt, men ikke installert. Hver unødvendig tjeneste som kjører, er også en egen risiko.

7. Automatiske sikkerhetsoppdateringer

Pakken unattended-upgrades installerer sikkerhetsoppdateringer uten at du må gripe inn. Større versjonsoppgraderinger gjør du derimot kontrollert og manuelt, etter at du har tatt backup.

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

8. Kontroller åpne porter og tjenester

List opp hvilken tjeneste som lytter på hvilken port. Tjenester som bare skal nås fra selve serveren, som databaser, bør lytte på 127.0.0.1 og ikke være åpne mot omverdenen. Slå av tjenester du ikke bruker.

bash
sudo ss -tulpn
sudo systemctl disable --now SERVIS_ADI

Overvåking og sikkerhetskopiering

Hvis du publiserer et nettsted på serveren, må HTTPS legges til disse stegene; installasjon og automatisk fornyelse av det gratis sertifikatet har vi forklart i artikkelen om installasjon av SSL-sertifikat.

9. Overvåk logger og ressurser

Den enkleste måten å oppdage et angrep på er loggene. Kontroller jevnlig SSH-påloggingene, diskbruken og uvanlig prosessorbruk. At serverens klokke er riktig, er også nødvendig for at loggene skal gi mening.

bash
sudo journalctl -u ssh --since today
df -h
timedatectl

10. Planlegg backup og øyeblikksbilder

Ingen sikkerhetstiltak er hundre prosent; siste forsvarslinje er sikkerhetskopien utenfor serveren. Bruk leverandørens funksjon for øyeblikksbilder, men stol ikke bare på den: send også database- og filbackuper til et eget lagringsområde, og test gjenoppretting jevnlig. For strategien kan du se guiden vår om hvordan ta backup.

Pass på hvis du bruker Docker

Porter som publiseres med Docker kan omgå UFW-reglene, fordi Docker redigerer iptables-reglene direkte. En databaseport som ser stengt ut i UFW, kan altså være tilgjengelig utenfra hvis den er publisert med docker run -p.

Løsningen er å binde containerporter som bare skal nås fra selve serveren, til 127.0.0.1 og bare åpne port 80 og 443 utad via en omvendt proxy (reverse proxy). Detaljer finner du i Dockers offisielle nettverksdokumentasjon.

bashEksempel på å binde porten bare til lokalt nettverk
docker run -d -p 127.0.0.1:5432:5432 postgres

Vanlige feil og neste steg

Disse ti stegene er en begynnelse. Selve applikasjonen som kjører på serveren, må også holdes oppdatert, administrasjonspaneler bør beskyttes med tofaktorgodkjenning, og en plan for rask respons ved mistenkelig aktivitet bør ligge klar. Hva du bør gjøre etter et angrep, har vi forklart steg for steg i artikkelen om hacket nettsted.

Hvis du ikke vil drive serveradministrasjonen med eget team, tar tjenesten vår hastighet og ytelse, som ser på hosting, sikkerhet og hastighet samlet, denne byrden. I prosjektene våre innen nettbutikkplattform, webdesign og bransjeløsninger planlegges serversikkerhet som en del av igangsettingen.

FeilResultatRiktig fremgangsmåte
Å aktivere UFW uten å tillate SSHDu mister tilgangen til serverenFørst ufw allow OpenSSH
Å deaktivere passordpålogging uten å teste nøkkelenDu låser deg selv uteTest i en andre terminal
Å la databasen stå åpen utadData som er direkte utsatt for angrepBind til 127.0.0.1
Å oppbevare backupen på samme serverBackupen går tapt sammen med serverenBruk et eget lagringsområde
Å utsette oppdateringer i månedsvisKjente sårbarheter blir stående åpneAutomatiske sikkerhetsoppdateringer

Vanlige spørsmål

01Øker det sikkerheten å endre SSH-porten?

Å endre standardporten 22 reduserer automatisk bottrafikk og støy i loggene, men er ikke et reelt sikkerhetstiltak. Den egentlige beskyttelsen kommer fra tiltak som pålogging med nøkkel, deaktivert passordpålogging og fail2ban. Hvis du endrer porten, må du huske å tillate den nye porten i brannmuren.

02Bør jeg bruke en administrert server eller administrere selv?

Hvis du behersker Linux-administrasjon og kan sette av tid til jevnlig vedlikehold, kan du administrere VPS-en selv. Hvis ikke, sørger en administrert tjeneste eller et erfarent team for at oppdateringer og overvåking ikke glipper; mangelfullt vedlikehold er den vanligste årsaken til sikkerhetshull.

03Hva gjør jeg hvis Fail2ban blokkerer meg selv?

Du kan logge inn på serveren via leverandørens webkonsoll og oppheve blokkeringen med kommandoen sudo fail2ban-client set sshd unbanip IP_ADRESI. Hvis du har en fast IP-adresse, kan du forhindre at det skjer igjen ved å legge den til i ignoreip-linjen i jail.local.

På en ny VPS gjør disse ti innstillingene det meste av automatiserte angrep verdiløst allerede fra første dag; sammen med jevnlige oppdateringer og en testet backup gir de et solid grunnlag. Hvis du vil administrere både sikkerheten og hastigheten til serveren din med målinger, kan du se tjenesten hastighet og ytelse fra Aurora.