20 CentOS-serverhærdningssikkerhedstip - Del 1


Denne vejledning dækker kun generelle sikkerhedstip til CentOS 8/7, som kan bruges til at hærde systemet. Tipene til tjeklisten er hovedsageligt beregnet til at blive brugt på forskellige typer bare-metal-servere eller på maskiner (fysiske eller virtuelle), der leverer netværkstjenester.

Nogle af tipene kan dog også med succes anvendes på maskiner til almindelige formål, såsom stationære computere, bærbare computere og kortstørrede enkeltkortcomputere (Raspberry Pi).

  • CentOS 8 minimal installation
  • CentOS 7 minimal installation

1. Fysisk beskyttelse

Lås din adgang til serverrum, brug racksikring og videoovervågning. Vær opmærksom på, at enhver fysisk adgang til serverrum kan udsætte din maskine for alvorlige sikkerhedsproblemer.

BIOS-adgangskoder kan ændres ved at nulstille jumpere på bundkortet eller ved at frakoble CMOS-batteriet. En ubuden gæst kan også stjæle harddiskene eller direkte vedhæfte nye harddiske til bundkortets grænseflader (SATA, SCSI osv.), Starte op med en Linux live distro og klone eller kopiere data uden at efterlade noget software spor.

2. Reducer spionageeffekt

I tilfælde af meget følsomme data, skal du sandsynligvis bruge avanceret fysisk beskyttelse, såsom at placere og låse serveren i en TEMPEST-løsning for at minimere virkningen af spionering af systemet via radio eller elektriske utætheder.

3. Sikker BIOS/UEFI

Start processen med hærdning af din maskine ved at sikre BIOS/UEFI-indstillinger, indstil især en BIOS/UEFI-adgangskode og deaktiver bootmedieenheder (CD, DVD, deaktiver USB-understøttelse) for at forhindre uautoriserede brugere i at ændre systemets BIOS-indstillinger eller ændre opstartsenhedsprioritet og opstart af maskinen fra et alternativt medium.

For at anvende denne type ændringer på din maskine skal du konsultere bundkortets producentmanual for specifikke instruktioner.

4. Sikker Boot Loader

Indstil en GRUB-adgangskode for at forhindre ondsindede brugere i at manipulere med kernens opstartssekvens eller køre niveauer, redigere kerneparametre eller starte systemet i en enkeltbrugertilstand for at skade dit system og nulstille root-adgangskoden for at få privilegeret kontrol.

5. Brug separate diskpartitioner

Når du installerer CentOS på systemer beregnet som produktionsservere, skal du bruge dedikerede partitioner eller dedikerede harddiske til følgende dele af systemet:

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

6. Brug LVM og RAID til redundans og filsystemvækst

/ Var-partitionen er det sted, hvor logbeskeder skrives til disken. Denne del af systemet kan eksponentielt vokse i størrelse på stærkt trafikservere, der udsætter netværkstjenester såsom webservere eller filservere.

Brug således en stor partition til/var eller overvej at opsætte denne partition ved hjælp af logiske diskenheder (LVM) eller kombinere flere fysiske diske til en større virtuel RAID 0-enhed for at opretholde store datamængder. For data skal redundans overvejes at bruge LVM-layoutet oven på RAID 1-niveauet.

Følg vores nyttige vejledninger for at konfigurere LVM eller RAID på diskene:

  1. Opsæt disklagring med LVM i Linux
  2. Opret LVM-diske ved hjælp af vgcreate, lvcreate og lvextend
  3. Kombiner flere diske til et stort virtuelt lager
  4. Opret RAID 1 ved hjælp af to diske i Linux

7. Rediger fstab-indstillinger til sikre datapartitioner

Separate partitioner beregnet til lagring af data og forhindre udførelse af programmer, enhedsfiler eller setuid-bit på denne type partitioner ved at tilføje følgende muligheder til fstab-filen som illustreret i nedenstående uddrag:

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

For at forhindre privilegiereskalering og vilkårlig udførelse af script oprettes en separat partition for/tmp og monteres som nosuid, nodev og noexec.

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

8. Krypter harddiskene på blokniveau med LUKS

For at beskytte følsomme datasnok i tilfælde af fysisk adgang til maskinens harddiske. Jeg foreslår, at du lærer, hvordan du krypterer disk ved at læse vores artikel Linux Hard Disk Data Encryption med LUKS.

9. Brug PGP og offentlig nøglekryptografi

For at kryptere diske skal du bruge PGP og Public-Key Cryptography eller OpenSSL-kommando til at kryptere og dekryptere følsomme filer med en adgangskode som vist i denne artikel Konfigurer krypteret Linux-systemlagring.

10. Installer kun den krævede minimumsmængde af pakker

Undgå at installere ubetydelige eller unødvendige programmer, applikationer eller tjenester for at undgå sårbarheder i pakken. Dette kan mindske risikoen for, at kompromiset med et stykke software kan føre til kompromittering af andre applikationer, dele af systemet eller endda filsystemer, hvilket til sidst resulterer i datakorruption eller datatab.

11. Opdater systemet ofte

Opdater systemet regelmæssigt. Hold Linux-kernen synkroniseret med de nyeste sikkerhedsrettelser og al den installerede software opdateret med de nyeste versioner ved at udstede kommandoen nedenfor:

# yum update

12. Deaktiver Ctrl + Alt + Del

For at forhindre brugere i at genstarte serveren, når de har fysisk adgang til et tastatur eller via et Remote Console-program eller en virtualiseret konsol (KVM, virtualiseringssoftwaregrænseflade), skal du deaktivere Ctrl + Alt + Del -tasten sekvens ved at udføre nedenstående kommando.

# systemctl mask ctrl-alt-del.target 

13. Fjern unødvendige softwarepakker

Installer minimal software, der kræves til din maskine. Installer aldrig ekstra programmer eller tjenester. Installer kun pakker fra pålidelige eller officielle arkiver. Brug minimal installation af systemet, hvis maskinen er bestemt til at køre hele sit liv som server.

Bekræft installerede pakker ved hjælp af en af følgende kommandoer:

# rpm -qa

Lav en lokal liste over alle installerede pakker.

# yum list installed >> installed.txt

Se listen over ubrugelig software, og slet en pakke ved at udstede nedenstående kommando:

# yum remove package_name

14. Genstart Systemd Services efter Daemon-opdateringer

Brug nedenstående kommandoeksempel til at genstarte en systemd-tjeneste for at anvende nye opdateringer.

# systemctl restart httpd.service

15. Fjern unødvendige tjenester

Identificer de tjenester, der lytter til bestemte porte, ved hjælp af følgende ss-kommando.

# ss -tulpn

Hvis du vil liste alle installerede tjenester med deres outputstatus, skal du kommandoen nedenfor:

# systemctl list-units -t service

For eksempel kommer CentOS standard minimal installation med Postfix-dæmon installeret som standard, som kører under navnet på en master under port 25. Fjern Postfix-netværkstjeneste, hvis din maskine ikke bruges som en mailserver.

# yum remove postfix

16. Krypter transmitterede data

Brug ikke usikrede protokoller til fjernadgang eller filoverførsel, såsom Telnet, FTP eller andre almindelige tekst-høje protokoller, såsom SMTP, HTTP, NFS eller SMB, som som standard ikke krypterer godkendelsessessioner eller sendte data.

Brug kun scp til filoverførsler og SSH eller VNC over SSH-tunneller til fjernkonsolforbindelser eller GUI-adgang.

For at tunnelere en VNC-konsol via SSH skal du bruge nedenstående eksempel, som videresender VNC-porten 5901 fra den eksterne maskine til din lokale maskine:

# ssh -L 5902:localhost:5901 remote_machine

Kør nedenstående kommando på den lokale maskine for at virtuel forbindelse til det eksterne slutpunkt.

# vncviewer localhost:5902

17. Scanning af netværksport

Udfør ekstern portkontrol ved hjælp af Nmap-værktøjet fra et eksternt system via LAN. Denne type scanning kan bruges til at verificere netværkssårbarheder eller teste firewallreglerne.

# nmap -sT -O 192.168.1.10

18. Pakkefiltrerings Firewall

Brug firewalld-værktøjet til at beskytte systemporte, åbne eller lukke bestemte serviceporte, især velkendte porte (<1024).

Installere, starte, aktivere og liste firewallreglerne ved at udstede nedenstående kommandoer:

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

19. Undersøg protokolpakker med Tcpdump

Brug tcpdump-værktøjet til at snuse netværkspakker lokalt og inspicere deres indhold for mistænkelig trafik (kilde-destinationsporte, TCP/IP-protokoller, lag to-trafik, usædvanlige ARP-anmodninger).

For en bedre analyse af den tcpdump-erobrede fil skal du bruge et mere avanceret program såsom Wireshark.

# tcpdump -i eno16777736 -w tcpdump.pcap

20. Forhindre DNS-angreb

Undersøg indholdet af din resolver, typisk /etc/resolv.conf-fil, der definerer IP-adressen på de DNS-servere, den skal bruge til at søge på domænenavne, for at undgå man-i-midten-angreb, unødvendig trafik til rod DNS-servere, spoof eller opret et DOS-angreb.

Dette er kun den første del. I den næste del diskuterer vi andre sikkerhedstip til CentOS 8/7.