Salt la conținut

Setări cookie-uri

Alegeți pentru fiecare tip ce cookie-uri permiteți. Puteți modifica oricând alegerea prin Setări cookie-uri, în partea de jos a fiecărei pagini. Declarație de confidențialitate

Necesare

Mereu active

Necesare pentru autentificare, pentru păstrarea coșului și pentru a vă reține alegerile. Acestea sunt mereu active.

Ce cookie-uri?
  • weboke_sessie, weboke_klant, weboke_remember: sesiunea și menținerea autentificării
  • weboke_basket: coșul de cumpărături
  • wkBtwIncl: afișarea prețurilor cu sau fără TVA
  • wok_cookies: alegerea privind cookie-urile, 12 luni

Măsoară ce reclamă duce la o vizită sau o comandă, ca să nu plătim pentru reclame care nu aduc nimic.

Ce cookie-uri?
  • Google Ads prin Google Tag Manager (_gcl_au, _gcl_aw), până la 90 de zile
  • OpenAI Ads, reclame în ChatGPT
  • wok_aff: prin ce partener ați ajuns la noi (program de afiliere), 60 de zile

4,6

Țară și limbă

Fiecare țară are propriul site, cu prețurile și TVA-ul pentru țara respectivă.

Vedeți

Hardening și principiile CIS

Modulul 10: Rămâneți în siguranță · Timp de citire: 11 minute

Obiectivul lecției: După această lecție puteți explica ce este hardeningul și ce principii stau la baza lui, știți ce sunt CIS Benchmarks și cum le folosiți cu judecată și vă puteți verifica serverul în mod sistematic cu Lynis.

Noțiuni cheie: hardening, suprafață de atac, instalare minimă, privilegii minime (least privilege), apărare stratificată (defense in depth), CIS Benchmarks, Level 1 și Level 2, CIS Controls, Lynis, hardening index, AppArmor, SELinux, sysctl, sincronizarea timpului

Ce este hardeningul?

O instalare nouă de Debian sau Ubuntu este destul de sigură, dar este gândită să funcționeze în cât mai multe situații. Hardeningul (întărirea securității) înseamnă adaptarea serverului exact la modul în care îl folosiți dumneavoastră: eliminați tot ce nu vă trebuie și faceți mai strict tot ce poate fi mai strict, fără ca propriile servicii să nu mai funcționeze.

În modulele anterioare ați făcut deja acest lucru, pas cu pas: SSH cu chei (modulul 2), un utilizator obișnuit cu sudo (modulul 3), actualizări automate (modulul 4), un firewall și fail2ban (modulul 5), servicii care rulează sub utilizatori proprii (modulul 6). Această lecție pune aceste măsuri separate într-un cadru comun, astfel încât să vedeți ce mai lipsește.

Patru principii

1. O suprafață de atac mică. Ce nu există nu se poate strica. Fiecare serviciu instalat, fiecare port deschis, fiecare cont este o posibilă cale de intrare (lecția 5.1). Instalați doar minimul necesar și eliminați ce nu mai folosiți:

anna@web1:~$ systemctl list-units --type=service --state=running
anna@web1:~$ sudo ss -tulpn
anna@web1:~$ apt list --installed | wc -l

Dacă rulează un serviciu pe care nu îl cunoașteți, aflați ce face (lecția 6.1). Dacă nu aveți nevoie de el, eliminați pachetul.

2. Privilegii minime. Fiecare utilizator și fiecare program primește doar permisiunile de care are nevoie (lecția 3.2). Nu lucrați zilnic ca root, rulați serviciile sub utilizatori proprii, dați utilizatorilor de baze de date permisiuni doar pe propria bază de date și nu folosiți niciodată chmod 777.

3. Apărare stratificată. Porniți de la ideea că o măsură poate eșua. O bază de date care ascultă doar pe 127.0.0.1 și se află în spatele unui firewall și are o parolă puternică rămâne sigură chiar dacă una dintre cele trei măsuri cade din greșeală. Acest principiu se numește defense in depth.

4. Să știți ce se întâmplă. Hardeningul nu înseamnă doar să închideți, ci și să vedeți: jurnale care sunt păstrate (lecția 6.2), monitorizare care vă anunță (lecția 8.3) și backupuri cu care puteți reveni (modulul 8). Fără acestea, observați o intruziune abia când este prea târziu.

CIS Benchmarks

Center for Internet Security (CIS) este o organizație americană non-profit care realizează CIS Benchmarks: liste detaliate cu setări recomandate pentru fiecare produs, întocmite de voluntari din domeniul securității. Există peste o sută, inclusiv pentru Debian Linux și Ubuntu Linux, separat pentru fiecare versiune. Puteți descărca gratuit fișierele pdf pentru uz necomercial, după ce vă creați un cont.

Un benchmark pentru Linux conține sute de recomandări, fiecare cu o explicație, o metodă de verificare și o metodă de configurare. Ele sunt împărțite în profiluri:

  • Level 1: măsuri de bază pe care le puteți introduce destul de repede, cu un beneficiu clar de securitate, fără ca serverul să devină mult mai greu de folosit. Pentru majoritatea serverelor, acesta este obiectivul.
  • Level 2: măsuri suplimentare pentru medii în care securitatea are prioritate (apărare stratificată). Pot costa funcționalitate sau viteză și, chiar după CIS, pot face rău dacă le aplicați fără atenție.

Pentru Linux există profiluri separate pentru servere și pentru stații de lucru.

Exemple de subiecte dintr-un benchmark pentru Linux: partiții separate pentru /tmp și /var/log, dezactivarea sistemelor de fișiere și a protocoalelor de rețea nefolosite, sincronizarea timpului, jurnalizarea de audit, setările SSH (pe multe le cunoașteți din lecția 2.2), politica de parole, permisiunile pe fișierele importante și firewall-ul.

Pe lângă Benchmarks există CIS Controls (acum versiunea 8.1): nu sunt setări pentru fiecare produs, ci o listă de optsprezece grupuri de măsuri pentru o organizație întreagă, cum ar fi "inventarul software-ului", "gestionarea vulnerabilităților" și "recuperarea datelor". Pentru un singur server, Benchmarks sunt mai utile; Controls vă ajută când vă gândiți la întreaga dumneavoastră firmă.

Folosiți un benchmark cu judecată

Un benchmark nu este un buton pe care îl apăsați. Câteva reguli:

  • Mai întâi înțelegeți, apoi aplicați. Fiecare recomandare are o explicație. Dacă nu înțelegeți de ce, nu o aplicați încă.
  • Câte un lucru odată și testați. O setare strictă pentru kernel sau pentru rețea vă poate strica aplicația. Faceți un snapshot, schimbați un singur lucru și verificați că totul funcționează în continuare.
  • Nu totul este pentru dumneavoastră. O recomandare pentru o partiție /var/log separată este greu de pus în practică pe un VPS existent și aduce puțin. Alegeți conștient și notați de ce nu faceți un anumit lucru.
  • Aveți grijă cu scripturile de hardening gata făcute de pe internet care aplică "tot ce cere CIS" dintr-o dată. Ele pot modifica SSH, firewall-ul sau jurnalele astfel încât să vă blocați singur accesul, iar după aceea nu mai știți ce s-a schimbat.

Lynis: un audit din interior

Lynis este un program gratuit, open-source (GPL), realizat de CISOfy, care vă parcurge serverul din interior și oferă avertismente și sugestii pentru fiecare subiect. Nu modifică nimic de unul singur; doar raportează.

anna@web1:~$ sudo apt install lynis
anna@web1:~$ sudo lynis audit system
...
  -[ Lynis 3.x Results ]-

  Warnings (1):
  ----------------------------
  ! Found one or more vulnerable packages. [PKGS-7392]

  Suggestions (34):
  ----------------------------
  * Consider hardening SSH configuration [SSH-7408]
      - Details  : AllowTcpForwarding (set YES to NO)
  ...
  Lynis security scan details:

  Hardening index : 66 [#############       ]
  Tests performed : 262

Cum citiți raportul:

  • Warnings sunt lucruri pe care chiar trebuie să le verificați, cum ar fi pachete cu vulnerabilități cunoscute (înseamnă că aveți actualizări neinstalate, lecția 4.1).
  • Suggestions sunt recomandări. Multe sunt utile, unele nu se potrivesc serverului dumneavoastră. De exemplu, o sugestie de a dezactiva AllowTcpForwarding vă strică tunelurile SSH (lecția 2.3). Alegeți conștient.
  • Fiecare mesaj are un cod între paranteze, de exemplu [SSH-7408]. Cu acesta căutați în jurnalul /var/log/lynis.log ce anume a fost testat.
  • Hardening index este un număr de până la 100. Este un indicator de direcție, nu o notă pe care să o urmăriți cu orice preț. O creștere după modificările dumneavoastră arată că faceți progrese; 100 nu este un obiectiv.

Versiunea Lynis din depozitul de pachete al distribuției dumneavoastră poate fi puțin mai veche. Pentru un prim audit, acest lucru nu este o problemă.

Încă trei subiecte, pe scurt

  • AppArmor și SELinux sunt straturi suplimentare de securitate în kernel care stabilesc, pentru fiecare program, ce are voie să facă. Debian și Ubuntu folosesc AppArmor, activat implicit; AlmaLinux și Rocky folosesc SELinux. Nu le dezactivați "pentru că ceva nu funcționează": căutați mesajul în journal și rezolvați problema în mod țintit.
  • sysctl configurează setări ale kernelului, de exemplu pentru rețea. Valorile implicite din Debian și Ubuntu sunt rezonabile. Dacă doriți să schimbați ceva, puneți modificarea într-un fișier propriu în /etc/sysctl.d/ (Debian 13 nu mai citește /etc/sysctl.conf).
  • Timpul: un server cu ora greșită face jurnalele inutilizabile și poate considera certificatele invalide. Verificați cu timedatectl că apare "System clock synchronized: yes".

În practică

La WebOké, ca la orice alt furnizor de VPS, securitatea din interiorul serverului o gestionați dumneavoastră: furnizorul se ocupă de hardware, de rețea și de platforma de virtualizare. Acest curs este de tip autoinstruire: nimeni nu vă supraveghează serverul. Înainte de o rundă de hardening, faceți un snapshot din panou și asigurați-vă că știți cum deschideți consola în cazul în care vă blocați totuși accesul.

Rezumat

  • Hardeningul înseamnă adaptarea serverului la propria utilizare: eliminați ce nu este necesar și faceți mai strict ce se poate.
  • Patru principii: o suprafață de atac mică, privilegii minime, apărare stratificată și vizibilitate asupra a ceea ce se întâmplă.
  • CIS Benchmarks oferă pentru fiecare produs sute de recomandări, în profilurile Level 1 (de bază) și Level 2 (strict); folosiți-le înțelegându-le, câte un pas odată.
  • Lynis vă verifică serverul din interior și oferă avertismente, sugestii și un hardening index; nu modifică nimic de unul singur.
  • Nu dezactivați AppArmor/SELinux; setările proprii pentru kernel merg în /etc/sysctl.d/; verificați sincronizarea timpului.

Test (quiz)

1. Care este ideea din spatele apărării stratificate (defense in depth)?



2. Care este diferența dintre Level 1 și Level 2 în CIS Benchmarks?



3. Lynis vă sugerează să dezactivați AllowTcpForwarding în SSH. Dumneavoastră folosiți tuneluri SSH pentru a ajunge la baza de date. Ce faceți?



4. Un coleg găsește pe internet un script care aplică pe server "toate recomandările CIS dintr-o dată". Care este cel mai mare risc?



5. Aplicația dumneavoastră nu funcționează, iar în journal apare un refuz din partea AppArmor. Care este abordarea corectă?



Exercițiu

Exercițiul O10.1: Un audit cu Lynis. Faceți un snapshot, instalați Lynis pe server și rulați sudo lynis audit system. Notați hardening index, toate avertismentele și cinci sugestii. Alegeți trei sugestii pe care le aplicați și una pe care în mod conștient nu o aplicați, împreună cu motivul. Apoi rulați auditul din nou și notați noul index.

Exercițiul O10.1: Un audit cu Lynis

Acest exercițiu îl faceți singur; nimeni nu îl verifică. Bifați ce ați făcut și marcați exercițiul ca finalizat.




Bifele și notițele dumneavoastră rămân doar în acest browser; nu le trimitem nicăieri. Dacă sunteți autentificat, păstrăm în Cursurile mele doar faptul că ați finalizat exercițiul.

Lecturi suplimentare

Un moment…

Configurați domeniile

Stabiliți pentru fiecare domeniu nameserverele, legătura cu hostingul și cine devine titularul.

Se încarcă domeniile…