20 de sfaturi de securitate pentru consolidarea serverului CentOS - Partea 1


Acest tutorial acoperă numai sfaturi generale de securitate pentru CentOS 8/7 care pot fi folosite pentru a consolida sistemul. Sfaturile listei de verificare sunt destinate să fie utilizate în principal pe diferite tipuri de servere bare-metal sau pe mașini (fizice sau virtuale) care oferă servicii de rețea.

Cu toate acestea, unele dintre sfaturi pot fi aplicate cu succes și la mașinile de uz general, cum ar fi desktop-uri, laptop-uri și computere cu o singură placă de dimensiunea unui card (Raspberry Pi).

Cerințe

  • Instalare minimă CentOS 8
  • Instalare minimă CentOS 7

1. Protecție fizică

Blocați accesul la camerele de servere, utilizați blocarea rafturilor și supravegherea video. Luați în considerare faptul că orice acces fizic la camerele serverului vă poate expune mașina la probleme serioase de securitate.

Parolele BIOS pot fi schimbate prin resetarea jumperilor de pe placa de bază sau prin deconectarea bateriei CMOS. De asemenea, un intrus poate fura hard disk-urile sau atașa direct noi hard disk-uri la interfețele plăcii de bază (SATA, SCSI, etc), poate porni cu o distribuție live Linux și poate clona sau copia datele fără a lăsa urme software.

2. Reduceți impactul spionajului

În cazul datelor extrem de sensibile, probabil că ar trebui să utilizați protecție fizică avansată, cum ar fi plasarea și blocarea serverului într-o soluție TEMPEST, pentru a minimiza impactul spionării sistemului prin radio sau emisii de scurgeri electrice.

3. BIOS/UEFI securizat

Începeți procesul de întărire a mașinii prin securizarea setărilor BIOS/UEFI, în special setați o parolă BIOS/UEFI și dezactivați dispozitivele media de pornire (CD, DVD, dezactivați suportul USB) în pentru a preveni orice utilizator neautorizat să modifice setările BIOS-ului sistemului sau să modifice prioritatea dispozitivului de pornire și să pornească mașina de pe un mediu alternativ.

Pentru a aplica acest tip de modificare mașinii dvs., trebuie să consultați manualul producătorului plăcii de bază pentru instrucțiuni specifice.

4. Secure Boot Loader

Setați o parolă GRUB pentru a preveni utilizatorii rău intenționați să modifice secvența de pornire a nucleului sau nivelurile de rulare, să editeze parametrii nucleului sau să pornească sistemul într-un mod cu utilizator unic pentru a vă deteriora sistemul și a reseta rădăcina. parola pentru a obține control privilegiat.

5. Utilizați partiții separate pentru disc

Când instalați CentOS pe sisteme destinate ca servere de producție, utilizați partiții dedicate sau hard disk-uri dedicate pentru următoarele părți ale sistemului:

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

6. Utilizați LVM și RAID pentru redundanță și creșterea sistemului de fișiere

Partiția /var este locul în care mesajele de jurnal sunt scrise pe disc. Această parte a sistemului poate crește exponențial în dimensiune pe serverele cu trafic intens care expun servicii de rețea, cum ar fi serverele web sau serverele de fișiere.

Astfel, utilizați o partiție mare pentru /var sau luați în considerare configurarea acestei partiții folosind volume logice (LVM) sau combinați mai multe discuri fizice într-un singur dispozitiv virtual RAID 0 mai mare pentru a susține cantități de date. Pentru date, redundanța luați în considerare utilizarea aspectului LVM peste nivelul RAID 1.

Pentru a configura LVM sau RAID pe discuri, urmați ghidurile noastre utile:

  1. Configurați stocarea pe disc cu LVM în Linux
  2. Creați discuri LVM utilizând vgcreate, lvcreate și lvextend
  3. Combinați mai multe discuri într-un singur spațiu de stocare virtual mare
  4. Creați RAID 1 utilizând două discuri în Linux

7. Modificați opțiunile fstab pentru a securiza partițiile de date

Separați partițiile destinate stocării datelor și împiedicați executarea programelor, fișierelor dispozitivului sau a biților setuid pe acest tip de partiții adăugând următoarele opțiuni la fișierul fstab, așa cum este ilustrat mai jos extras:

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

Pentru a preveni escaladarea privilegiilor și execuția arbitrară de script, creați o partiție separată pentru /tmp și montați-o ca nosuid, nodev și noexec .

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

8. Criptați hard disk-urile la nivel de bloc cu LUKS

Pentru a proteja snoopingul datelor sensibile în cazul accesului fizic la hard disk-urile mașinii. Vă sugerez să învățați cum să criptați discul citind articolul nostru Linux Hard Disk Data Encryption with LUKS.

9. Utilizați PGP și criptografia cu cheie publică

Pentru a cripta discurile, utilizați comanda PGP și Public-Key Cryptography sau OpenSSL pentru a cripta și decripta fișierele sensibile cu o parolă, așa cum se arată în acest articol Configurați stocarea sistem criptată Linux.

10. Instalați numai cantitatea minimă de pachete necesară

Evitați instalarea de programe, aplicații sau servicii neimportante sau inutile pentru a evita vulnerabilitățile pachetului. Acest lucru poate reduce riscul ca compromisul unei piese de software să poată duce la compromiterea altor aplicații, părți ale sistemului sau chiar sisteme de fișiere, ducând în final la coruperea sau pierderea datelor.

11. Actualizați frecvent sistemul

Actualizați sistemul în mod regulat. Păstrați nucleul Linux sincronizat cu cele mai recente corecții de securitate și cu tot software-ul instalat la zi cu cele mai recente versiuni, lansând comanda de mai jos:

# yum update

12. Dezactivați Ctrl+Alt+Del

Pentru a împiedica utilizatorii să repornească serverul după ce au acces fizic la o tastatură sau printr-o aplicație de consolă la distanță sau o consolă virtualizată (KVM, interfața software de virtualizare), ar trebui să dezactivați Ctrl+Alt +Del secvență de taste executând comanda de mai jos.

# systemctl mask ctrl-alt-del.target 

13. Eliminați pachetele software inutile

Instalați software-ul minim necesar pentru mașina dvs. Nu instalați niciodată programe sau servicii suplimentare. Instalați pachete numai din depozite de încredere sau oficiale. Utilizați instalarea minimă a sistemului în cazul în care mașina este destinată să ruleze întreaga viață ca server.

Verificați pachetele instalate folosind una dintre următoarele comenzi:

# rpm -qa

Faceți o listă locală a tuturor pachetelor instalate.

# yum list installed >> installed.txt

Consultați lista pentru software inutil și ștergeți un pachet lansând comanda de mai jos:

# yum remove package_name

14. Reporniți Systemd Services după actualizările Daemon

Utilizați exemplul de comandă de mai jos pentru a reporni un serviciu systemd pentru a aplica noi actualizări.

# systemctl restart httpd.service

15. Eliminați serviciile inutile

Identificați serviciile care ascultă pe anumite porturi folosind următoarea comandă ss.

# ss -tulpn

Pentru a lista toate serviciile instalate cu starea lor de ieșire, emiteți comanda de mai jos:

# systemctl list-units -t service

De exemplu, instalarea minimă implicită CentOS vine cu demonul Postfix instalat în mod implicit, care rulează sub numele unui master sub portul 25. Eliminați serviciul de rețea Postfix în cazul în care aparatul dvs. nu va fi folosit ca server de e-mail.

# yum remove postfix

16. Criptați datele transmise

Nu utilizați protocoale nesecurizate pentru accesul de la distanță sau transferul de fișiere, cum ar fi Telnet, FTP sau alte protocoale cu text simplu, cum ar fi SMTP, HTTP, NFS sau SMB care, prin implicit, nu criptează sesiunile de autentificare sau datele trimise.

Utilizați numai scp pentru transferuri de fișiere și SSH sau VNC prin tuneluri SSH pentru conexiuni la consolă la distanță sau acces GUI.

Pentru a tuneliza o consolă VNC prin SSH, utilizați exemplul de mai jos, care redirecționează portul VNC 5901 de la mașina de la distanță la mașina dvs. locală:

# ssh -L 5902:localhost:5901 remote_machine

Pe mașina locală, rulați comanda de mai jos pentru a vă conecta virtual la punctul final la distanță.

# vncviewer localhost:5902

17. Scanare porturi de rețea

Efectuați verificări externe de porturi utilizând instrumentul Nmap de la un sistem la distanță prin LAN. Acest tip de scanare poate fi folosit pentru a verifica vulnerabilitățile rețelei sau pentru a testa regulile paravanului de protecție.

# nmap -sT -O 192.168.1.10

18. Firewall de filtrare a pachetelor

Utilizați utilitarul firewalld pentru a proteja porturile sistemului, deschideți sau închideți anumite porturi de servicii, în special porturi binecunoscute (<1024).

Instalați, porniți, activați și enumerați regulile paravanului de protecție lansând comenzile de mai jos:

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

19. Inspectați pachetele de protocol cu Tcpdump

Utilizați utilitarul tcpdump pentru a detecta pachetele de rețea la nivel local și pentru a inspecta conținutul acestora pentru trafic suspect (porturi sursă-destinație, protocoale TCP/IP, trafic de nivel doi, solicitări ARP neobișnuite).

Pentru o analiză mai bună a fișierului tcpdump capturat, utilizați un program mai avansat, cum ar fi Wireshark.

# tcpdump -i eno16777736 -w tcpdump.pcap

20. Preveniți atacurile DNS

Inspectați conținutul rezolutorului, de obicei fișierul /etc/resolv.conf, care definește adresa IP a serverelor DNS pe care ar trebui să le folosească pentru a interoga numele de domenii, pentru a evita man-in-the -atacuri de mijloc, trafic inutil pentru serverele DNS root, falsificare sau crearea unui atac DOS.

Aceasta este doar prima parte. În partea următoare, vom discuta despre alte sfaturi de securitate pentru CentOS 8/7.