En 15-trins tjekliste til en sikker server

Gus Khajja

de fleste mennesker antager, at Linco er sikker, og det er en falsk antagelse. Forestil dig, at din bærbare computer bliver stjålet uden først at blive hærdet. En tyv antager sandsynligvis, at dit brugernavn er “root”, og din adgangskode er “toor”, da det er standardadgangskoden på Kali, og de fleste mennesker fortsætter med at bruge den. Gør du? Det håber jeg ikke.

de negative karriereimplikationer ved at vælge ikke at hærde din Host er alvorlige, så jeg vil dele de nødvendige skridt for at gøre din host sikker, herunder hvordan jeg bruger penetrationstest og Kali for at få arbejdet gjort. Det er vigtigt at bemærke, at selvom de er mange distributioner (AKA distros) af Linuks, og hver enkelt adskiller sig fra kommandolinjeperspektivet, er logikken den samme. Brug følgende tip til at hærde din egen Linuksboks.

1-dokument værtsoplysningerne

hver gang du arbejder på et nyt hærdningsjob, skal du oprette et nyt dokument, der indeholder alle de tjekliste-elementer, der er anført i dette indlæg, og du skal afkrydse hvert element, du har anvendt. Desuden skal du på toppen af dokumentet medtage host-oplysningerne:

  • Maskinnavn
  • IP-adresse
  • Mac-adresse
  • navn på den person, der gør hærdningen (sandsynligvis dig)
  • Dato
  • Aktivnummer (hvis du arbejder for en virksomhed, skal du medtage det aktivnummer, som din virksomhed bruger til tagging af værter .)

2-BIOS-beskyttelse

du skal beskytte værtens BIOS med en adgangskode, så slutbrugeren ikke kan ændre og tilsidesætte sikkerhedsindstillingerne i BIOS; det er vigtigt at holde dette område beskyttet mod ændringer. Hver computerproducent har et andet sæt nøgler til at gå ind i BIOS-tilstand, så er det et spørgsmål om at finde konfigurationen, hvor du indstiller den administrative adgangskode.

Dernæst skal du deaktivere opstart fra eksterne medieenheder (USB/CD/DVD). Hvis du undlader at ændre denne indstilling, kan alle bruge en USB-stick, der indeholder et bootbart operativsystem og kan få adgang til dine OS-data.

+ vil du vide mere om Linea? Lær mere med Pluralsight, en teknologi læringsplatform. Lær Linus nu. +

de nyeste servers bundkort har en intern internetserver, hvor du kan få adgang til dem eksternt. Sørg for at ændre standardadgangskoden på administratorsiden eller deaktivere den, hvis det er muligt.

3-Harddiskkryptering (fortrolighed)

de fleste distributioner giver dig mulighed for at kryptere dine diske før installation. Diskkryptering er vigtig i tilfælde af tyveri, fordi den person, der stjal din computer, ikke kan læse dine data, hvis de forbinder harddisken til deres maskine.

på billedet nedenfor skal du vælge den tredje mulighed fra listen: guidet-brug hele disken og opsæt krypteret LVM (LVM står for logical volume manager.)

hvis din distribution ikke understøtter kryptering, kan du vælge et program som TrueCrypt.

4-Diskbeskyttelse(tilgængelighed)

sikkerhedskopier har så mange fordele i tilfælde af et beskadiget system, fejl i OS-opdateringen. For vigtige servere skal sikkerhedskopien overføres offsite i tilfælde af en katastrofe. Backup skal også styres. For eksempel, hvor længe vil du beholde de gamle sikkerhedskopier? Hvornår skal du sikkerhedskopiere dit system (hver dag, hver uge …)?

kritiske systemer skal adskilles i forskellige partitioner for:

  • /
  • /boot
  • /usr
  • /home
  • /tmp
  • /var
  • /opt

portionering diske giver dig mulighed for ydeevne og sikkerhed i tilfælde af en systemfejl. På billedet nedenfor kan du se muligheden for at adskille partitioner i Kali Linuks under installationen.

5-Lås opstartsmappen

opstartsmappen indeholder vigtige filer relateret til kernen, så du skal sørge for, at denne mappe er låst ned til skrivebeskyttede tilladelser ved at følge de næste enkle trin. Åbn først filen” fstab”.

tilføj derefter den sidste linje fremhævet i bunden.

når du er færdig med at redigere filen, skal du indstille ejeren ved at udføre følgende kommando:

#chown root:root /etc/fstab

dernæst sætter jeg nogle tilladelser til sikring af bootindstillingerne:

  • Indstil ejer og gruppe af /etc/grub.conf til rodbrugeren:

#chown root:root /etc/grub.conf

  • Indstil tilladelse på / etc / grub.conf-fil til kun at læse og skrive til root:

#chmod og-rwx /etc/grub.conf

  • Kræv godkendelse til enkeltbrugertilstand:

#sed -i "/SINGLE/s/sushell/sulogin/" /etc/sysconfig/init

#sed -i "/PROMPT/s/yes/no/" /etc/sysconfig/init

6-Deaktiver USB-brug

afhængigt af hvor kritisk dit system er, er det nogle gange nødvendigt at deaktivere USB-sticks-brugen på værten. Der er flere måder at nægte brugen af USB-lager; her er en populær:

Åbn “sortlisten.conf ” fil ved hjælp af din foretrukne teksteditor:

#nano /etc/modprobe.d/blacklist.conf

når filen åbnes, skal du tilføje følgende linje i slutningen af filen (Gem og luk):

blacklist usb_storage

efter dette skal du åbne rc.lokal fil:

#nano /etc/rc.local

til sidst skal du tilføje følgende to linjer:

modprobe -r usb_storage

exit 0

7-systemopdatering

den første ting at gøre efter den første opstart er at opdatere systemet; dette skal være et let trin. Generelt åbner du dit terminalvindue og udfører de relevante kommandoer. Du opnår dette ved at udføre kommandoerne på billedet nedenfor:

8-Tjek de installerede pakker

Angiv alle pakker, der er installeret på dit operativsystem, og fjern de unødvendige. Du skal være meget streng, hvis den vært, du prøver at hærde, er en server, fordi servere har brug for det mindste antal applikationer og tjenester, der er installeret på dem. Her er et eksempel på, hvordan du viser de pakker, der er installeret på Kali:

Husk, at deaktivering af unødvendige tjenester reducerer angrebsoverfladen, så det er vigtigt at fjerne følgende ældre tjenester, Hvis du fandt dem installeret på:

  • Telnet server
  • RSH server
  • NIS server
  • TFTP server
  • TALK server

9-Kontroller for åbne porte

identificering af åbne forbindelser til internettet er en kritisk mission. Jeg bruger følgende kommando til at få øje på eventuelle skjulte åbne porte:

10-sikker SSH

ja, faktisk er SSH sikker, men du skal også hærde denne service. Først og fremmest, hvis du kan deaktivere SSH, er det et problem løst. Men hvis du vil bruge det, skal du ændre standardkonfigurationen for SSH. For at gøre det skal du gå til /etc/ssh og åbne filen “sshd_config” ved hjælp af din foretrukne teksteditor.

  • Skift standardportnummer 22 til noget andet, f.eks. 99.
  • sørg for, at root ikke kan logge eksternt via SSH:

PermitRootLogin no

  • Tillad nogle specifikke brugere:

AllowUsers

listen kan fortsætte og fortsætte, men disse skal være nok til at starte med. For eksempel tilføjer nogle virksomheder bannere for at afskrække angribere og afskrække dem fra at fortsætte videre. Jeg opfordrer dig til at tjekke manualen til SSH for at forstå alle konfigurationerne i denne fil, eller du kan besøge dette sted for mere information.

her er nogle ekstra muligheder, som du skal sikre dig, at der findes i filen ” sshd_config:

  • Protokol2
  • IgnoreRhosts to yes
  • HostbasedAuthentication no
  • Permittemptypadsord no
  • H11tildelingsnr
  • Maksforsøg 5
  • Ciphers aes128-ctr,Aes192-Ctr,AES256-Ctr
  • clientaliveinterval 900
  • clientalivecountmaks 0
  • usepam Ja

endelig skal du indstille tilladelserne på sshd_config-filen, så kun Rodbrugere kan ændre dens indhold:

#chown root:root /etc/ssh/sshd_config

#chmod 600 /etc/ssh/sshd_config

11- Enable Selinup

Security Enhanced er en kernesikkerhedsmekanisme til understøttelse af adgangskontrolsikkerhedspolitik. Selinuks har tre konfigurationstilstande:

  • deaktiveret: slået fra
  • Permissive: udskriver advarsler
  • håndhævelse: politik håndhæves

åbn konfigurationsfilen ved hjælp af en teksteditor:

#nano /etc/selinux/config

og sørg for, at politikken håndhæves:

SELINUX=enforcing

12- netværksparametre

sikring af dine host-netværksaktiviteter er en vigtig opgave. Antag ikke altid, at din brandvæg tager sig af alt. Her er nogle vigtige funktioner, du skal overveje for at sikre dit værtsnetværk:

– Deaktiver IP-videresendelse ved at indstille nettet.ipv4.ip_fremad parameter til 0 i ” /etc / sysctl.conf”

– aktiver dårlig Fejlmeddelelsesbeskyttelse ved at indstille nettet.ipv4.icmp_ignore_bogus_error_responses parameter til 1 i ” /etc / sysctl.conf ”

jeg anbefaler på det kraftigste, at du anvender de iptable regler og filtrerer alle indgående, udgående og videresendte pakker. Det tager lidt tid at konfigurere dine iptables-regler, men det er smerten værd.

13- adgangskodepolitikker

folk genbruger ofte deres adgangskoder, hvilket er en dårlig sikkerhedspraksis. De gamle adgangskoder gemmes i filen “/etc/security/opassvd”. Vi vil bruge Pam-modulet til at styre sikkerhedspolitikkerne for værten. Under en debian-distro skal du åbne filen ” /etc / pam.d / common-adgangskode” ved hjælp af en teksteditor og tilføj følgende to linjer:

auth sufficient pam_unix.so likeauth nullok

password sufficient pam_unix.so remember=4 (tillader ikke brugere at genbruge de sidste fire adgangskoder.)

en anden adgangskodepolitik, der skal tvinges, er stærke adgangskoder. Pam-modulet tilbyder en pam_cracklib, der beskytter din server mod ordbog og brute-force-angreb. For at udføre denne opgave skal du åbne filen /etc/pam.d / system-auth ved hjælp af en teksteditor og tilføj følgende linje:

/lib/security/$ISA/pam_cracklib.so retry=3 minlen=8 lcredit=-1 ucredit=-2 dcredit=-2 ocredit=-1

så du skal sørge for at definere en sikker adgangskode hashing algoritme SHA512.

en anden interessant funktionalitet er at låse kontoen efter fem mislykkede forsøg. For at få dette til at ske, skal du åbne filen “/etc/pam.d / adgangskode-auth ” og tilføj følgende linjer:

auth required pam_env.so

auth required pam_faillock.so preauth audit silent deny=5 unlock_time=604800

auth pam_unix.so

auth pam_faillock.so authfail audit deny=5 unlock_time=604800

auth sufficient pam_faillock.so authsucc audit deny=5 unlock_time=604800

auth required pam_deny.so

vi er ikke færdige endnu; et ekstra skridt er nødvendigt. Åbn filen ” /etc / pam.d / system-auth ” og sørg for at have følgende linjer tilføjet:

auth required pam_env.so

auth required pam_faillock.so preauth audit silent deny=5 unlock_time=604800

auth pam_unix.so

auth pam_faillock.so authfail audit deny=5 unlock_time=604800

auth sufficient pam_faillock.so authsucc audit deny=5 unlock_time=604800

auth required pam_deny.so

efter fem mislykkede forsøg kan kun en administrator låse kontoen op ved hjælp af følgende kommando:

# /usr/sbin/faillock –user < userlocked> –reset

en anden god praksis er også at indstille adgangskoden til at udløbe efter 90 dage, for at udføre denne opgave skal du:

  • Indstil parameteren PASS_MAKS_DAYS til 90 i “/etc/login.defs “
  • skift den aktive bruger ved at udføre følgende kommando :

#chage --maxdays 90 <user>

det næste tip til forbedring af adgangskodepolitikkerne er at begrænse adgangen til su-kommandoen ved at indstille pam_wheel.so parametre i ” /etc / pam.d / su”:

auth påkrævet pam_wheel.so use_uid

det sidste tip til adgangskodepolitik er at deaktivere systemkonti for ikke-root-brugere ved hjælp af følgende bash-script:

#!/bin/bash

for user in `awk -F: '( < 500) {print }' /etc/passwd`; do

if

then

/usr/sbin/usermod -L $user

if && &&

then /usr/sbin/usermod -s /sbin/nologin $user

fi

fi

done

14-tilladelser og verifikationer

forbered dig mentalt, fordi dette bliver en lang liste. Men tilladelser er en af de vigtigste og mest kritiske opgaver for at nå sikkerhedsmålet på en host.

#chown root:root /etc/anacrontab

#chmod og-rwx /etc/anacrontab

#chown root:root /etc/crontab

#chmod og-rwx /etc/crontab

#chown root:root /etc/cron.hourly

#chmod og-rwx /etc/cron.hourly

#chown root:root /etc/cron.daily

#chmod og-rwx /etc/cron.daily

#chown root:root /etc/cron.weekly

#chmod og-rwx /etc/cron.weekly

#chown root:root /etc/cron.monthly

#chmod og-rwx /etc/cron.monthly

#chown root:root /etc/cron.d

#chmod og-rwx /etc/cron.d

Indstil højre og tilladelser på “/ var / spool / cron” for “root crontab”

#chown root:root <crontabfile>

#chmod og-rwx <crontabfile>

Indstil bruger / Gruppeejer og tilladelse til” adgangskode ” – fil

#chmod 644 /etc/passwd

#chown root:root /etc/passwd

Indstil bruger / Gruppeejer og tilladelse på” gruppe “- filen

#chmod 644 /etc/group

#chown root:root /etc/group

Indstil bruger / gruppe ejer og tilladelse på” skygge “- filen

#chmod 600 /etc/shadow

#chown root:root /etc/shadow

Indstil bruger / Gruppeejer og tilladelse på” gshad ” – filen

#chmod 600 /etc/gshadow

#chown root:root /etc/gshadow

15- yderligere proceshærdning

for dette sidste punkt på listen inkluderer jeg nogle yderligere tip, der skal overvejes, når du hærder en Linukshost.

først skal du begrænse kernedumpene med:

  • tilføjelse af hard core 0 til “/etc/sikkerhed/grænser.conf ” fil
  • tilføjelse af fs.suid_dumpable = 0 til ” / etc / sysctl.conf ” fil

for det andet skal du konfigurere Eksekveringsskærm ved:

  • tilføjelse kerne.udfør-skjold = 1 til ” / etc / sysctl.conf ” fil

tredje, aktiver randomiseret virtuel Hukommelsesregion placering af:

  • tilføjelse kerne.randomise_va_space = 2 til ” / etc / sysctl.conf ” fil

afsluttende ord

i dette korte indlæg dækkede vi mange vigtige konfigurationer til links sikkerhed. Men vi har lige ridset overfladen af linukshærdning-der er mange komplekse, nitty-gritty konfigurationer. For at lære mere om, hvordan du hærder dine servere for bedre sikkerhed, tjek mine kurser på Pluralsight.

Gus er sikkerhedskonsulent og forfatter hos Pluralsight. Han arbejder inden for sikkerhed, IT og Internet applikationsudvikling og skaber kurser for Pluralsight. Gus har med succes leveret og udviklet IT-løsninger til virksomheder i hele Canada. Efter mange års erfaring inden for datalogi har han vendt opmærksomheden mod cybersikkerhed og den betydning, som sikkerhed bringer til dette minefelt. Hans passion for Etisk hacking blandet med hans baggrund i programmering, og det gør ham til en klog hærkniv professionel inden for datalogi.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.