Linux herding: en 15-trinns sjekkliste for en sikker Linux-server

Gus Khawaja

De fleste antar At Linux er sikkert, og det er en falsk antagelse. Tenk deg at din bærbare er stjålet uten først å bli herdet. En tyv vil trolig anta at brukernavnet ditt er «root» og passordet ditt er «toor» siden det er standardpassordet På Kali, og de fleste fortsetter å bruke det. Gjør du? Jeg håper ikke det.

de negative karriereimplikasjonene ved å velge å ikke herde Kali Linux-verten din er alvorlige, så jeg deler de nødvendige trinnene for å gjøre Linux-verten sikker, inkludert hvordan jeg bruker penetrasjonstesting og Kali Linux for å få jobben gjort. Det er viktig å merke seg at mens De er mange distribusjoner (AKA distros) Av Linux, og hver er forskjellig fra kommandolinjeperspektivet, er logikken den samme. Bruk følgende tips for å herde Din Egen Linux-boks.

1-Dokument vertsinformasjonen

Hver gang Du jobber Med En Ny Linux-herdingsjobb, må Du opprette et nytt dokument som har alle sjekklisteelementene som er oppført i dette innlegget, og du må krysse av hvert element du brukte. Videre, på toppen av dokumentet, må du inkludere Linux-vertsinformasjonen:

  • maskinnavn
  • IP-adresse
  • Mac-adresse
  • Navnet på personen som gjør herdingen (mest sannsynlig deg)
  • Dato
  • Ressursnummer (hvis du jobber for et selskap, må du inkludere ressursnummeret som firmaet bruker til å merke verter.)

2-BIOS protection

DU må beskytte VERTENS BIOS med et passord, slik at sluttbrukeren ikke kan endre og overstyre sikkerhetsinnstillingene i BIOS. Hver datamaskinprodusent har et annet sett med nøkler for Å gå INN I BIOS-modus, så handler det om å finne konfigurasjonen der du angir administrasjonspassordet.

Deretter må du deaktivere oppstart fra eksterne medieenheter (USB/CD/DVD). Hvis du utelater å endre denne innstillingen, kan alle bruke EN USB-pinne som inneholder et oppstartbart OPERATIVSYSTEM og har tilgang TIL OS-dataene dine.

+ Vil du vite mer Om Linux? Lær mer med Pluralsight, en teknologi læringsplattform. Lær Linux nå. +

de nyeste serverens hovedkort har en intern webserver hvor du kan få tilgang til dem eksternt. Pass på å endre standardpassordet på administrasjonssiden eller deaktiver det hvis det er mulig.

3-harddiskkryptering (konfidensialitet)

De Fleste Linux-distribusjoner lar deg kryptere diskene dine før installasjonen. Diskkryptering er viktig i tilfelle tyveri fordi personen som stjal datamaskinen din ikke vil kunne lese dataene dine hvis de kobler harddisken til maskinen.

I bildet nedenfor, velg det tredje alternativet fra listen: Guidet-bruk hele disken og sett opp kryptert LVM (LVM står for logical volume manager.)

Hvis Linux-distribusjonen din ikke støtter kryptering, kan Du gå med en programvare som TrueCrypt.

4-Diskbeskyttelse (tilgjengelighet)

Sikkerhetskopier har så mange fordeler i tilfelle et skadet system, feil I OS-oppdateringen. For viktige servere, backup må overføres offsite i tilfelle en katastrofe. Backup må også håndteres. For eksempel, hvor lenge vil du beholde de gamle sikkerhetskopiene? Når trenger du å sikkerhetskopiere systemet ditt (hver dag, hver uke…)?

Kritiske systemer skal deles inn i forskjellige partisjoner for:

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

Porsjonsdisker gir deg mulighet til ytelse og sikkerhet i tilfelle en systemfeil. På bildet nedenfor kan du se muligheten til å skille partisjoner i Kali Linux under installasjonen.

5-Lås oppstartsmappen

oppstartsmappen inneholder viktige filer relatert Til Linux-kjernen, så du må sørge for at denne katalogen er låst ned til skrivebeskyttede tillatelser ved å følge de neste enkle trinnene. Først åpner du» fstab » – filen.

deretter legger du til den siste linjen uthevet nederst.

når du er ferdig med å redigere filen, må du sette eieren ved å utføre følgende kommando:

#chown root:root /etc/fstab

Deretter setter jeg få tillatelser for å sikre oppstartsinnstillingene:

  • Angi eier og gruppe av / etc / grub.conf til roten brukeren:

#chown root:root /etc/grub.conf

  • Sett tillatelse på / etc / grub.conf fil for å lese og skrive for root bare:

#chmod og-rwx /etc/grub.conf

  • Krever godkjenning for enkeltbrukermodus:

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

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

6-Deaktiver USB-bruk

Avhengig av hvor kritisk systemet ditt er, er det noen ganger nødvendig å deaktivere USB-pinner på Linux-verten. Det er flere måter å nekte bruken AV USB-lagring; her er en populær:

Åpne «svartelisten.conf » fil ved hjelp av din favoritt tekst editor:

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

når filen åpnes, legg deretter til følgende linje på slutten av filen (lagre og lukk):

blacklist usb_storage

etter dette, åpne rc.lokal fil:

#nano /etc/rc.local

Til slutt legger du til følgende to linjer:

modprobe -r usb_storage

exit 0

7-System update

Det første du må gjøre etter første oppstart er å oppdatere systemet; dette bør være et enkelt trinn. Vanligvis åpner du terminalvinduet og utfører de riktige kommandoene. I Kali Linux oppnår du dette ved å utføre kommandoene i bildet nedenfor:

8-Sjekk de installerte pakkene

List alle pakker installert På Linux OS og fjern de unødvendige. Du må være veldig streng hvis verten du prøver å herde er en server fordi servere trenger minst antall applikasjoner og tjenester installert på dem. Her er et eksempel på hvordan du lister pakkene som er installert På Kali Linux:

Husk at deaktivering av unødvendige tjenester vil redusere angrepsflaten, så det er viktig å fjerne følgende eldre tjenester hvis du fant dem installert på Linux-serveren:

  • Telnet server
  • RSH server
  • NIS server
  • TFTP server
  • DISKUSJONSSERVER

9-Se etter åpne porter

Det Er en kritisk oppgave Å Identifisere åpne tilkoblinger til internett. I Kali Linux bruker jeg følgende kommando for å se noen skjulte åpne porter:

10-Sikker SSH

Ja, FAKTISK SSH er sikker, men du må også herde denne tjenesten. Først av alt, hvis DU kan deaktivere SSH, er det et problem løst. Men hvis du vil bruke den, må du endre standardkonfigurasjonen TIL SSH. For å gjøre det, bla til / etc / ssh og åpne filen» sshd_config » ved hjelp av din favoritt tekstredigerer.

  • Endre standard portnummer 22 til noe annet, f. eks. 99.
  • Kontroller at root ikke kan logge inn eksternt VIA SSH:

PermitRootLogin no

  • Tillat noen spesifikke brukere:

AllowUsers

listen kan gå av og på, men disse bør være nok til å begynne med. For eksempel legger noen selskaper bannere for å avskrekke angripere og fraråde dem fra å fortsette videre. Jeg oppfordrer deg til å sjekke håndboken TIL SSH for å forstå alle konfigurasjonene i denne filen, eller du kan besøke dette nettstedet for mer informasjon.

her er noen flere alternativer som du må sørge for at finnes i» sshd_config » fil:

  • Protokoll2
  • IgnoreRhosts til ja
  • HostbasedAuthentication nei
  • Permitemptypassord nei
  • X11Forwarding nei
  • Maxauthteries 5
  • Cifre aes128-ctr,Aes192-Ctr,Aes256-Ctr
  • clientaliveinterval 900
  • clientalivecountmax 0
  • usepam Ja

Sett Til Slutt Tillatelsene På Sshd_config-Filen Slik At Bare Rotbrukere kan endre innholdet:

#chown root:root /etc/ssh/sshd_config

#chmod 600 /etc/ssh/sshd_config

11- Aktiver SELinux

Security Enhanced Linux Er En kjernesikkerhetsmekanisme for å støtte sikkerhetspolicy for adgangskontroll. SELinux har tre konfigurasjonsmoduser:

  • Deaktivert: Slått av
  • Tillatelse: Skriver ut advarsler
  • Håndheving: Policyen håndheves

Åpne config-filen ved hjelp av et tekstredigeringsprogram:

#nano /etc/selinux/config

Sørg For at politikken følges:

SELINUX=enforcing

12- Nettverksparametere

Sikring Av Linux-vertsnettverksaktiviteter er en viktig oppgave. Ikke alltid anta at brannmuren vil ta vare på alt. Her er noen viktige funksjoner du bør vurdere for å sikre vertsnettverket ditt:

– Deaktiver IP-Videresending ved å sette nettet.ipv4.ip_forward parameter til 0 i » / etc / sysctl.conf»

– Aktiver Dårlig Feilmelding Beskyttelse ved å sette nettet.ipv4.icmp_ignore_bogus_error_responses parameter til 1 i » / etc / sysctl.conf »

jeg anbefaler på Det sterkeste å bruke Linux-Brannmuren ved å bruke iptable-reglene og filtrere alle innkommende, utgående og videresendte pakker. Konfigurere iptables-reglene vil ta litt tid, men det er verdt smerten.

13- Passordpolicyer

folk gjenbruker ofte passordene sine, noe som er en dårlig sikkerhetspraksis. De gamle passordene lagres i filen «/ etc / security / opasswd». Vi skal bruke pam-modulen til å administrere Sikkerhetspolitikkene Til Linux-verten. Under en debian distro, åpne filen » / etc / pam.d / felles-passord » ved hjelp av en tekstredigerer og legg til følgende to linjer:

auth sufficient pam_unix.so likeauth nullok

password sufficient pam_unix.so remember=4 (vil ikke tillate brukere å gjenbruke de fire siste passordene.)

en annen passordpolicy som bør tvinges er sterke passord. PAM modulen tilbyr en pam_cracklib som beskytter serveren din fra ordbok og brute-force angrep. For å utføre denne oppgaven, åpne filen / etc / pam.d / system-auth ved hjelp av en tekst editor og legge til følgende linje:

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

Linux vil ha passordet for å unngå å lagre det i klartekst, så du må sørge for å definere en sikker passordhashingalgoritme SHA512.

En annen interessant funksjonalitet er å låse kontoen etter fem mislykkede forsøk. For å få dette til å skje, må du åpne filen » / etc / pam.d / passord-auth » og legg til 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 ferdige ennå; ett ekstra trinn er nødvendig. Åpne filen » / etc / pam.d / system-auth» og sørg for at du har følgende linjer lagt til:

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

etter fem mislykkede forsøk kan bare en administrator låse opp kontoen ved å bruke følgende kommando:

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

en annen god praksis er også å angi at passordet skal utløpe etter 90 dager, for å utføre denne oppgaven må du:

  • Sett parameteren PASS_MAX_DAYS til 90 i » /etc / login.defs»
  • Endre den aktive brukeren ved å utføre følgende kommando :

#chage --maxdays 90 <user>

det neste tipset for å forbedre passordpolicyene er å begrense tilgangen til su-kommandoen ved å sette pam_wheel.so parametere i » / etc / pam.d / su»:

auth kreves pam_wheel.so use_uid

det siste tipset for passordpolicy er å deaktivere systemkontoer for ikke-rotbrukere ved å bruke følgende bash-skript:

#!/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-Tillatelser og verifikasjoner

Forbered deg mentalt fordi dette kommer til å bli en lang liste. Men tillatelser er en av de viktigste og kritiske oppgavene for å oppnå sikkerhetsmålet på En Linux-vert.

#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

Sett høyre og tillatelser på «/var/spool / cron» for «root crontab»

#chown root:root <crontabfile>

#chmod og-rwx <crontabfile>

Sett Bruker / Gruppe Eier Og Tillatelse på» passwd » fil

#chmod 644 /etc/passwd

#chown root:root /etc/passwd

Angi Bruker / Gruppeeier og Tillatelse på» gruppe «- filen

#chmod 644 /etc/group

#chown root:root /etc/group

Angi Bruker / Gruppeeier Og Tillatelse på» skygge «- filen

#chmod 600 /etc/shadow

#chown root:root /etc/shadow

Angi Bruker / Gruppe Eier Og Tillatelse på» gshadow » – filen

#chmod 600 /etc/gshadow

#chown root:root /etc/gshadow

15- Ekstra prosessherding

for dette siste elementet i listen, inkluderer jeg noen ekstra tips som bør vurderes når du herdes En Linux-vert.

først begrenser du kjernedumper etter:

  • Legge til hard core 0 til » / etc / security / limits.conf » fil
  • Legge til fs.suid_dumpable = 0 til » /etc / sysctl.conf » fil

For det Andre, konfigurer Exec Shield ved:

  • Legge til kjernen.exec-shield = 1 til » /etc / sysctl.conf » fil

Tredje, aktiver randomisert Virtuelt Minne Region Plassering av:

  • Legge til kjernen.randomize_va_space = 2 til » / etc / sysctl.conf » fil

Final words

i dette korte innlegget dekket vi mange viktige konfigurasjoner for Linux-sikkerhet. Men vi har nettopp riper overflaten Av Linux-herding-det er mange komplekse, nitty-gritty konfigurasjoner. For å lære mer om hvordan du kan herde Linux-serverne dine for bedre sikkerhet, sjekk ut mine kurs På Pluralsight.

Gus Khawaja er sikkerhetskonsulent Og forfatter Hos Pluralsight. Han jobber innen sikkerhet, IT og webapplikasjonsutvikling og skaper kurs For Pluralsight. Gus har levert OG utviklet IT-løsninger for bedrifter Over Hele Canada. Etter mange års erfaring innen datavitenskap har han vendt oppmerksomheten mot cybersikkerhet og betydningen som sikkerhet bringer til dette minefeltet. Hans lidenskap for etisk hacking blandet med hans bakgrunn i programmering og det gjør ham til en klok Swiss Army Knife profesjonell i informatikk feltet.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert.