Prejsť na obsah

Nastavenia súborov cookie

Vyberte, aké druhy súborov cookie povolíte. Svoj výber môžete kedykoľvek zmeniť cez Nastavenia súborov cookie v dolnej časti každej stránky. Vyhlásenie o ochrane osobných údajov

Nevyhnutné

Vždy zapnuté

Potrebné na prihlásenie, uchovanie košíka a zapamätanie vašich volieb. Sú vždy zapnuté.

Ktoré súbory cookie?
  • weboke_sessie, weboke_klant, weboke_remember: vaša relácia a trvalé prihlásenie
  • weboke_basket: váš košík
  • wkBtwIncl: zobrazovanie cien s DPH alebo bez DPH
  • wok_cookies: váš výber súborov cookie, 12 mesiacov

Merajú, ktorá reklama vedie k návšteve alebo objednávke, aby sme neplatili za reklamy, ktoré nič neprinášajú.

Ktoré súbory cookie?
  • Google Ads cez Google Tag Manager (_gcl_au, _gcl_aw), najviac 90 dní
  • OpenAI Ads, reklamy v ChatGPT
  • wok_aff: ktorý partner vás k nám odporučil (partnerský program), 60 dní

4,6

Krajina a jazyk

Každá krajina má vlastný web s cenami a DPH danej krajiny.

Zobraziť

Hardening a princípy CIS

Modul 10: Zostaňte v bezpečí · Čas čítania: 11 minút

Cieľ lekcie: Po tejto lekcii dokážete vysvetliť, čo je hardening a aké princípy za ním stoja, budete vedieť, čo sú CIS Benchmarks a ako ich rozumne používať, a dokážete systematicky skontrolovať svoj server pomocou nástroja Lynis.

Kľúčové pojmy: hardening, útočná plocha, minimálna inštalácia, minimálne oprávnenia (least privilege), vrstvená obrana (defense in depth), CIS Benchmarks, Level 1 a Level 2, CIS Controls, Lynis, hardening index, AppArmor, SELinux, sysctl, synchronizácia času

Čo je hardening?

Čerstvá inštalácia Debianu alebo Ubuntu je pomerne bezpečná, no je pripravená tak, aby fungovala na čo najviac miestach. Hardening (spevnenie) znamená prispôsobiť server presne vášmu použitiu: odstrániť všetko, čo nepotrebujete, a sprísniť všetko, čo sa sprísniť dá, bez toho, aby sa pokazili vaše vlastné služby.

V predchádzajúcich moduloch ste to už robili kúsok po kúsku: SSH s kľúčmi (modul 2), bežný používateľ so sudo (modul 3), automatické aktualizácie (modul 4), firewall a fail2ban (modul 5), služby pod vlastnými používateľmi (modul 6). Táto lekcia zasadí tieto jednotlivé opatrenia do rámca, aby ste videli, čo ešte chýba.

Štyri princípy

1. Malá útočná plocha. Čo neexistuje, to sa nemôže pokaziť. Každá nainštalovaná služba, každý otvorený port, každý účet je možný vstup (lekcia 5.1). Inštalujte minimum a odstráňte to, čo už nepoužívate:

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

Ak beží služba, ktorú nepoznáte, zistite, čo robí (lekcia 6.1). Ak ju nepotrebujete, odstráňte balík.

2. Minimálne oprávnenia. Každý používateľ a každý program dostane len oprávnenia, ktoré potrebuje (lekcia 3.2). Žiadna každodenná práca ako root, služby pod vlastnými používateľmi, databázoví používatelia len s oprávneniami na vlastnú databázu, žiadne chmod 777.

3. Vrstvená obrana. Počítajte s tým, že jedno opatrenie zlyhá. Databáza, ktorá počúva len na 127.0.0.1 a je za firewallom a má silné heslo, je bezpečná aj vtedy, keď jedno z týchto troch opatrení omylom vypadne. Tomu sa hovorí defense in depth.

4. Vedieť, čo sa deje. Hardening nie je len zatváranie, ale aj prehľad: logy, ktoré sa uchovávajú (lekcia 6.2), monitorovanie, ktoré upozorní (lekcia 8.3), a zálohy, z ktorých sa dá obnoviť (modul 8). Bez toho si prienik všimnete, až keď je neskoro.

CIS Benchmarks

Center for Internet Security (CIS) je americká nezisková organizácia, ktorá vytvára CIS Benchmarks: rozsiahle zoznamy odporúčaných nastavení pre jednotlivé produkty, ktoré zostavujú dobrovoľníci zo sveta bezpečnosti. Existuje ich viac ako sto, aj pre Debian Linux a Ubuntu Linux, pre každú verziu zvlášť. PDF súbory si po vytvorení účtu môžete zadarmo stiahnuť na nekomerčné použitie.

Benchmark pre Linux obsahuje stovky odporúčaní, každé s vysvetlením, spôsobom kontroly a spôsobom nastavenia. Sú rozdelené do profilov:

  • Level 1: základné opatrenia, ktoré zavediete pomerne rýchlo, s jasným bezpečnostným prínosom a bez toho, aby bol server oveľa menej použiteľný. Pre väčšinu serverov je to cieľ.
  • Level 2: dodatočné opatrenia pre prostredia, kde je bezpečnosť na prvom mieste (vrstvená obrana). Môžu stáť funkcie alebo výkon a podľa samotného CIS môžu uškodiť, ak ich použijete bez rozmyslu.

Pri Linuxe existujú samostatné profily pre servery a pracovné stanice.

Príklady tém v benchmarku pre Linux: samostatné partície pre /tmp a /var/log, vypnutie nepoužívaných súborových systémov a sieťových protokolov, synchronizácia času, auditné logovanie, nastavenia SSH (mnohé poznáte z lekcie 2.2), politika hesiel, oprávnenia na dôležité súbory a firewall.

Okrem Benchmarks existujú aj CIS Controls (teraz verzia 8.1): nie nastavenia pre jednotlivé produkty, ale zoznam osemnástich skupín opatrení pre celú organizáciu, napríklad "inventár softvéru", "správa zraniteľností" a "obnova údajov". Pre jeden server sú užitočnejšie Benchmarks; Controls pomôžu, keď premýšľate o celej firme.

Používajte benchmark rozumne

Benchmark nie je tlačidlo, ktoré stlačíte. Niekoľko pravidiel:

  • Najprv pochopiť, až potom použiť. Každé odporúčanie má vysvetlenie. Ak nerozumiete, prečo, zatiaľ ho nepoužívajte.
  • Jedna vec naraz a testovanie. Prísne nastavenie jadra alebo siete môže pokaziť vašu aplikáciu. Vytvorte snapshot, zmeňte jednu vec a overte, že všetko stále funguje.
  • Nie všetko je pre vás. Odporúčanie na samostatnú partíciu /var/log je na existujúcom VPS ťažko realizovateľné a prinesie málo. Vyberajte vedome a zapíšte si, prečo niečo nerobíte.
  • Dávajte si pozor na hotové hardeningové skripty z internetu, ktoré naraz použijú "všetko z CIS". Môžu zmeniť SSH, firewall alebo logy tak, že sa sami zamknete mimo servera, a potom už neviete, čo sa zmenilo.

Lynis: audit zvnútra

Lynis je bezplatný open-source program (GPL) od spoločnosti CISOfy, ktorý prejde váš server zvnútra a ku každej téme dá varovania a návrhy. Sám nič nemení, len podáva správu.

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

Ako výsledok čítať:

  • Warnings sú veci, na ktoré sa naozaj musíte pozrieť, napríklad balíky so známymi zraniteľnosťami (vtedy máte nenainštalované aktualizácie, lekcia 4.1).
  • Suggestions sú odporúčania. Mnohé sú užitočné, niektoré sa k vášmu serveru nehodia. Návrh vypnúť AllowTcpForwarding napríklad pokazí vaše SSH tunely (lekcia 2.3). Vyberajte vedome.
  • Každé hlásenie má kód v hranatých zátvorkách, napríklad [SSH-7408]. Pomocou neho v logu /var/log/lynis.log zistíte, čo presne sa testovalo.
  • Hardening index je číslo do 100. Je to ukazovateľ smeru, nie známka, za ktorou sa treba hnať. Nárast po vašich úpravách ukazuje, že napredujete; 100 nie je cieľ.

Verzia Lynis v repozitári vašej distribúcie môže byť trochu staršia. Na prvý audit to nevadí.

Ešte tri témy v skratke

  • AppArmor a SELinux sú dodatočné bezpečnostné vrstvy v jadre, ktoré pre každý program určujú, čo smie robiť. Debian a Ubuntu používajú AppArmor, predvolene zapnutý; AlmaLinux a Rocky používajú SELinux. Nevypínajte ich, "pretože niečo nefunguje": nájdite hlásenie v journale a vyriešte problém cielene.
  • sysctl nastavuje parametre jadra, napríklad pre sieť. Predvolené hodnoty Debianu a Ubuntu sú rozumné. Ak chcete niečo zmeniť, uložte to do vlastného súboru v /etc/sysctl.d/ (Debian 13 už nečíta /etc/sysctl.conf).
  • Čas: server s nesprávnym časom robí logy nepoužiteľnými a môže považovať certifikáty za neplatné. Pomocou timedatectl skontrolujte, že sa zobrazuje "System clock synchronized: yes".

V praxi

Vo WebOké, rovnako ako u iných poskytovateľov VPS, spravujete bezpečnosť vo vnútri svojho servera sami: poskytovateľ sa stará o hardvér, sieť a virtualizačnú platformu. Tento kurz je svojpomoc: nikto vám na server nepozerá. Pred kolom hardeningu vytvorte v paneli snapshot a vedzte, ako otvoriť konzolu, ak sa predsa len zamknete mimo servera.

Zhrnutie

  • Hardening znamená prispôsobiť server vlastnému použitiu: odstrániť, čo nie je potrebné, sprísniť, čo sa dá.
  • Štyri princípy: malá útočná plocha, minimálne oprávnenia, vrstvená obrana a prehľad o tom, čo sa deje.
  • CIS Benchmarks dávajú pre každý produkt stovky odporúčaní v profiloch Level 1 (základ) a Level 2 (prísny); používajte ich s porozumením, po jednom kroku.
  • Lynis prejde váš server zvnútra a dá varovania, návrhy a hardening index; sám nič nemení.
  • AppArmor/SELinux nevypínať; vlastné nastavenia jadra do /etc/sysctl.d/; skontrolovať synchronizáciu času.

Kvíz

1. Aká je myšlienka vrstvenej obrany (defense in depth)?



2. Aký je rozdiel medzi Level 1 a Level 2 v CIS Benchmarks?



3. Lynis navrhuje vypnúť AllowTcpForwarding v SSH. Používate SSH tunely na prístup k databáze. Čo urobíte?



4. Kolega nájde na internete skript, ktorý na váš server naraz nastaví "všetky odporúčania CIS". Aké je najväčšie riziko?



5. Vaša aplikácia nefunguje a v journale je odmietnutie od AppArmor. Aký je správny postup?



Úloha

Úloha O10.1: Audit pomocou Lynis. Vytvorte snapshot, nainštalujte na server Lynis a spustite sudo lynis audit system. Zapíšte si hardening index, všetky varovania a päť návrhov. Vyberte tri návrhy, ktoré vykonáte, a jeden, ktorý vedome nevykonáte, aj s dôvodom. Potom spustite audit znova a zapíšte si nový index.

Úloha O10.1: Audit pomocou Lynis

Túto úlohu vykonávate sami, nikto ju nekontroluje. Odškrtnite, čo ste urobili, a označte úlohu ako splnenú.




Vaše zaškrtnutia a poznámky zostávajú iba v tomto prehliadači, nikam ich neposielame. Po prihlásení si v sekcii Moje kurzy uchovávame iba to, že ste úlohu splnili.

Ďalšie čítanie

Chvíľu strpenia…

Nastavte svoje domény

Pri každej doméne nastavte nameservery, prepojenie s hostingom a to, kto bude jej vlastníkom.

Načítavajú sa vaše domény…