20 CentOS Server Hardening Sikkerhetstips - Del 1


Denne opplæringen dekker bare generelle sikkerhetstips for CentOS 8/7 som kan brukes til å herde systemet. Sjekklistetipsene er ment å brukes mest på ulike typer bare-metal-servere eller på maskiner (fysiske eller virtuelle) som tilbyr nettverkstjenester.

Noen av tipsene kan imidlertid med hell også brukes på maskiner for generell bruk, for eksempel stasjonære datamaskiner, bærbare datamaskiner og enkeltkortsdatamaskiner (Raspberry Pi).

Krav

  • CentOS 8 minimal installasjon
  • CentOS 7 minimal installasjon

1. Fysisk beskyttelse

Lås tilgangen til serverrommene dine, bruk stativlåsing og videoovervåking. Ta i betraktning at all fysisk tilgang til serverrom kan utsette maskinen din for alvorlige sikkerhetsproblemer.

BIOS-passord kan endres ved å tilbakestille jumpere på hovedkortet eller ved å koble fra CMOS-batteriet. En inntrenger kan også stjele harddiskene eller koble nye harddisker direkte til hovedkortgrensesnittene (SATA, SCSI, etc), starte opp med en Linux live distro og klone eller kopiere data uten å etterlate noe programvarespor.

2. Reduser spioneffekten

I tilfelle av svært sensitive data, bør du sannsynligvis bruke avansert fysisk beskyttelse som å plassere og låse serveren inn i et Faraday Cage eller bruke en militær TEMPEST-løsning for å minimere virkningen av å spionere systemet via radio eller elektrisk lekkasje.

3. Sikre BIOS/UEFI

Start prosessen med å herde maskinen ved å sikre BIOS/UEFI-innstillinger, spesielt angi et BIOS/UEFI-passord og deaktiver oppstartsmedieenheter (CD, DVD, deaktiver USB-støtte) i for å forhindre uautoriserte brukere i å endre system-BIOS-innstillingene eller endre oppstartsenhetens prioritet og starte opp maskinen fra et alternativt medium.

For å bruke denne typen endring på maskinen din må du konsultere hovedkortprodusentens håndbok for spesifikke instruksjoner.

4. Sikker oppstartslaster

Angi et GRUB-passord for å hindre ondsinnede brukere i å tukle med kjernens oppstartssekvens eller kjøre nivåer, redigere kjerneparametere eller starte systemet i en enkeltbrukermodus for å skade systemet ditt og tilbakestille roten passord for å få privilegert kontroll.

5. Bruk separate diskpartisjoner

Når du installerer CentOS på systemer ment som produksjonsservere, bruk dedikerte partisjoner eller dedikerte harddisker for følgende deler av systemet:

/(root) 
/boot  
/home  
/tmp 
/var 

6. Bruk LVM og RAID for redundans og filsystemvekst

/var-partisjonen er stedet der loggmeldinger skrives til disken. Denne delen av systemet kan eksponentielt vokse i størrelse på servere med stor trafikk som eksponerer nettverkstjenester som webservere eller filservere.

Bruk derfor en stor partisjon for /var eller vurder å sette opp denne partisjonen ved å bruke logiske volumer (LVM) eller kombiner flere fysiske disker til én større virtuell RAID 0-enhet for å opprettholde store mengder data. For data bør du vurdere redundans ved å bruke LVM-oppsettet på toppen av RAID 1-nivået.

For å sette opp LVM eller RAID på diskene, følg våre nyttige guider:

  1. Konfigurer disklagring med LVM i Linux
  2. Lag LVM-disker ved å bruke vgcreate, lvcreate og lvextend
  3. Kombiner flere disker til en stor virtuell lagring
  4. Lag RAID 1 ved å bruke to disker i Linux

7. Endre fstab-alternativer for å sikre datapartisjoner

Separate partisjoner beregnet for lagring av data og forhindre kjøring av programmer, enhetsfiler eller setuid bit på denne typen partisjoner ved å legge til følgende alternativer til fstab-filen som illustrert på nedenfor utdrag:

/dev/sda5 	 /nas          ext4    defaults,nosuid,nodev,noexec 1 2

For å forhindre rettighetseskalering og vilkårlig kjøring av skript oppretter du en separat partisjon for /tmp og monterer den som nosuid, nodev og noexec .

/dev/sda6  	/tmp         ext4    defaults,nosuid,nodev,noexec 0 0

8. Krypter harddiskene på blokknivå med LUKS

For å beskytte snoking av sensitive data i tilfelle fysisk tilgang til maskinharddisker. Jeg foreslår at du lærer hvordan du krypterer disk ved å lese artikkelen Linux Hard Disk Data Encryption with LUKS.

9. Bruk PGP og Public-Key Cryptography

For å kryptere disker, bruk PGP og Public-Key Cryptography eller OpenSSL-kommandoen for å kryptere og dekryptere sensitive filer med et passord som vist i denne artikkelen Konfigurer kryptert Linux-systemlagring.

10. Installer kun det minste antallet pakker som kreves

Unngå å installere uviktige eller unødvendige programmer, applikasjoner eller tjenester for å unngå pakkesårbarheter. Dette kan redusere risikoen for at kompromittering av et stykke programvare kan føre til kompromittering av andre applikasjoner, deler av systemet eller til og med filsystemer, noe som til slutt resulterer i datakorrupsjon eller tap av data.

11. Oppdater systemet ofte

Oppdater systemet regelmessig. Hold Linux-kjernen synkronisert med de nyeste sikkerhetsoppdateringene og all installert programvare oppdatert med de nyeste versjonene ved å utstede kommandoen nedenfor:

yum update

12. Deaktiver Ctrl+Alt+Del

For å forhindre at brukere starter serveren på nytt når de har fysisk tilgang til et tastatur eller via en ekstern konsollapplikasjon eller en virtualisert konsoll (KVM, virtualiseringsprogramvaregrensesnitt) bør du deaktivere Ctrl+Alt +Del-tastsekvens ved å utføre kommandoen nedenfor.

systemctl mask ctrl-alt-del.target 

13. Fjern unødvendige programvarepakker

Installer minimalt med programvare som kreves for maskinen din. Installer aldri ekstra programmer eller tjenester. Installer pakker kun fra klarerte eller offisielle depoter. Bruk minimal installasjon av systemet i tilfelle maskinen er bestemt til å kjøre hele livet som server.

Bekreft installerte pakker med en av følgende kommandoer:

rpm -qa

Lag en lokal liste over alle installerte pakker.

yum list installed >> installed.txt

Se listen for ubrukelig programvare og slett en pakke ved å gi kommandoen nedenfor:

yum remove package_name

14. Start Systemd Services på nytt etter Daemon-oppdateringer

Bruk kommandoeksemplet nedenfor for å starte en systemd tjeneste på nytt for å bruke nye oppdateringer.

systemctl restart httpd.service

15. Fjern unødvendige tjenester

Identifiser tjenestene som lytter på bestemte porter ved å bruke følgende ss-kommando.

ss -tulpn

For å liste alle installerte tjenester med deres utdatastatus, utfør kommandoen nedenfor:

systemctl list-units -t service

For eksempel, CentOS standard minimal installasjon kommer med Postfix daemon installert som standard som kjører med navnet på en master under port 25. Fjern Postfix-nettverkstjenesten i tilfelle maskinen din ikke skal brukes som e-postserver.

yum remove postfix

16. Krypter overførte data

Ikke bruk usikrede protokoller for ekstern tilgang eller filoverføring som Telnet, FTP eller andre høye protokoller med ren tekst som SMTP, HTTP, NFS eller SMB som standard, krypterer ikke autentiseringsøktene eller sendte data.

Bruk bare sftp, scp for filoverføringer og SSH eller VNC over SSH-tunneler for eksterne konsolltilkoblinger eller GUI-tilgang.

For å tunnelere en VNC-konsoll via SSH, bruk eksemplet nedenfor som videresender VNC-porten 5901 fra den eksterne maskinen til din lokale maskin:

ssh -L 5902:localhost:5901 remote_machine

Kjør kommandoen nedenfor på den lokale maskinen for å få virtuell tilkobling til det eksterne endepunktet.

vncviewer localhost:5902

17. Nettverksportskanning

Utfør eksterne portkontroller ved å bruke Nmap-verktøyet fra et eksternt system over LAN. Denne typen skanning kan brukes til å bekrefte nettverkssårbarheter eller teste brannmurreglene.

nmap -sT -O 192.168.1.10

18. Pakkefiltrerende brannmur

Bruk brannmur-verktøyet for å beskytte systemportene, åpne eller lukke bestemte tjenesteporter, spesielt kjente porter (<1024).

Installer, start, aktiver og liste opp brannmurreglene ved å utstede kommandoene nedenfor:

yum install firewalld
systemctl start firewalld.service
systemctl enable firewalld.service
firewall-cmd --list-all

19. Inspiser protokollpakker med Tcpdump

Bruk tcpdump-verktøyet for å snuse nettverkspakker lokalt og inspisere innholdet deres for mistenkelig trafikk (kildedestinasjonsporter, TCP/IP-protokoller, lag to-trafikk, uvanlige ARP-forespørsler).

For en bedre analyse av tcpdump-filen, bruk et mer avansert program som Wireshark.

tcpdump -i eno16777736 -w tcpdump.pcap

20. Forhindre DNS-angrep

Inspiser innholdet i resolveren din, vanligvis /etc/resolv.conf-filen, som definerer IP-adressen til DNS-serverne den skal bruke for å søke etter domenenavn, for å unngå man-in-the -midtangrep, unødvendig trafikk for rot-DNS-servere, forfalske eller lage et DOS-angrep.

Dette er bare den første delen. I neste del vil vi diskutere andre sikkerhetstips for CentOS 8/7.