7 trin til sikring af din server

denne primer vil introducere dig til grundlæggende serversikkerhed. Mens det fokuserer på Debian / Ubuntu, kan du anvende alt præsenteret her til andre distributioner. Jeg opfordrer dig også til at undersøge dette materiale og udvide det, hvor det er relevant.

Opdater din server

den første ting du skal gøre for at sikre din server er at opdatere de lokale arkiver og opgradere operativsystemet og installerede applikationer ved at anvende de nyeste programrettelser.

om Ubuntu og Debian:

$ sudo apt update && sudo apt upgrade -y

på Fedora, CentOS eller RHEL:

$ sudo dnf upgrade

Opret en ny privilegeret brugerkonto

opret derefter en ny brugerkonto. Du bør aldrig logge ind på din server som root. Opret i stedet din egen konto (“<bruger>”), giv den sudo-rettigheder, og brug den til at logge ind på din server.

Start med at oprette en ny bruger:

$ adduser <username>

Giv din nye brugerkonto sudo rettigheder ved at tilføje (-a) sudo group (- G) til brugerens gruppemedlemskab:

$ usermod -a -G sudo <username>

Upload din SSH-nøgle

du vil bruge en SSH-nøgle til at logge ind på din nye server. Du kan uploade din forudgenererede SSH-nøgle til din nye server ved hjælp af kommandoen ssh-copy-id:

$ ssh-copy-id <username>@ip_address

nu kan du logge ind på din nye server uden at skulle indtaste en adgangskode.

Secure SSH

Næste, gør disse tre ændringer:

  • Deaktiver SSH-adgangskodegodkendelse
  • Begræns root fra at logge ind eksternt
  • Begræns adgang til IPv4 eller IPv6

Åbn / etc / ssh / sshd_config ved hjælp af din valgte teksteditor og sørg for disse linjer:

PasswordAuthentication yes
PermitRootLogin yes

se sådan ud:

PasswordAuthentication no
PermitRootLogin no

begræns derefter SSH-tjenesten til enten IPv4 eller IPv6 ved at ændre indstillingen AddressFamily. For at ændre det til kun at bruge IPv4 (hvilket burde være fint for de fleste mennesker) gør denne ændring:

AddressFamily inet

genstart SSH-tjenesten for at aktivere dine ændringer. Bemærk, at det er en god ide at have to aktive forbindelser til din server, før du genstarter SSH-serveren. At have den ekstra forbindelse giver dig mulighed for at rette noget, hvis genstart går galt.

på Ubuntu:

$ sudo service sshd restart

på Fedora eller CentOS eller noget ved hjælp af Systemd:

$ sudo systemctl restart sshd

aktiver en brandvæg

nu skal du installere en brandvæg, aktivere den og konfigurere den kun for at tillade netværkstrafik, som du angiver. Det er en let at bruge interface til iptables, der i høj grad forenkler processen med at konfigurere en brandvæg.

du kan installere:

$ sudo apt install ufw

som standard benægter UFV alle indgående forbindelser og tillader alle udgående forbindelser. Dette betyder, at ethvert program på din server kan nå internettet, men alt, hvad der prøver at nå din server, kan ikke oprette forbindelse.

først skal du sørge for at logge ind ved at aktivere adgang til SSH, HTTP og HTTPS:

$ sudo ufw allow ssh
$ sudo ufw allow http
$ sudo ufw allow https

aktiver derefter UFV:

$ sudo ufw enable

du kan se, hvilke tjenester der er tilladt og nægtet med:

$ sudo ufw status

hvis du nogensinde vil deaktivere UFV, kan du gøre det ved at skrive:

$ sudo ufw disable

du kan også bruge brandmur-cmd, som allerede er installeret og integreret i nogle distributioner.

installer Fail2ban

Fail2ban er et program, der undersøger serverlogfiler på udkig efter gentagne eller automatiserede angreb. Hvis der findes nogen, vil det ændre brandmuren for at blokere angriberens IP-adresse enten permanent eller i et bestemt tidsrum.

du kan installere Fail2ban ved at skrive:

$ sudo apt install fail2ban -y

kopier derefter den medfølgende konfigurationsfil:

$ sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

og genstart Fail2ban:

$ sudo service fail2ban restart

det er alt, hvad der er til det. Programmet vil løbende undersøge logfilerne på udkig efter angreb. Efter et stykke tid vil appen opbygge en hel liste over forbudte IP-adresser. Du kan se denne liste ved at anmode om den aktuelle status for SSH-tjenesten med:

$ sudo fail2ban-client status ssh

Fjern ubrugte netværksvendte tjenester

næsten alle serveroperativsystemer leveres med et par netværksvendte tjenester aktiveret. Du vil beholde de fleste af dem. Der er dog nogle få, som du måske vil fjerne. Du kan se alle kørende netværkstjenester ved hjælp af ss-kommandoen:

$ sudo ss -atpu

udgangen fra ss vil variere afhængigt af dit operativsystem. Dette er et eksempel på, hvad du måske ser. Det viser, at SSH (sshd) og Ngniks (nginks) tjenester lytter og er klar til forbindelse:

tcp LISTEN 0 128 *:http *:* users:(("nginx",pid=22563,fd=7))
tcp LISTEN 0 128 *:ssh *:* users:(("sshd",pid=685,fd=3))

hvordan du fjerner en ubrugt tjeneste (“< servicenavn>”) vil variere afhængigt af dit operativsystem og den pakkehåndtering, den bruger.

for at fjerne en ubrugt tjeneste på Debian / Ubuntu:

$ sudo apt purge <service_name>

Sådan fjernes en ubrugt tjeneste på Red Hat / CentOS:

$ sudo yum remove <service_name>

Kør ss-atup igen for at kontrollere, at de ubrugte tjenester ikke længere er installeret og kører.

Final thoughts

denne tutorial præsenterer det absolutte minimum, der er nødvendigt for at hærde en server. Yderligere sikkerhedslag kan og bør aktiveres afhængigt af, hvordan en server bruges. Disse lag kan omfatte ting som individuelle applikationskonfigurationer, indtrængningsdetekteringsprogrammer og aktivering af adgangskontrol, f.eks.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.