Przejdź do treści

Ustawienia plików cookie

Prosimy wybrać, na które rodzaje plików cookie Państwo zezwalają. Wybór można zmienić w dowolnym momencie w Ustawieniach plików cookie na dole każdej strony. Polityka prywatności

Niezbędne

Zawsze włączone

Potrzebne do logowania, zachowania koszyka i zapamiętania wyborów. Są zawsze włączone.

Jakie pliki cookie?
  • weboke_sessie, weboke_klant, weboke_remember: sesja i pozostanie zalogowanym
  • weboke_basket: koszyk
  • wkBtwIncl: wyświetlanie cen z VAT lub bez VAT
  • wok_cookies: wybór dotyczący plików cookie, 12 miesięcy

Mierzą, która reklama prowadzi do odwiedzin lub zamówienia, abyśmy nie płacili za reklamy, które nic nie dają.

Jakie pliki cookie?
  • Google Ads przez Google Tag Manager (_gcl_au, _gcl_aw), do 90 dni
  • OpenAI Ads, reklamy w ChatGPT
  • wok_aff: przez którego partnera trafili Państwo do nas (program partnerski), 60 dni

4,6

Kraj i język

Każdy kraj ma własną stronę z cenami i stawką VAT tego kraju.

Wyświetl

Moduł 10 · 10.1

Hardening i zasady CIS

Moduł 10: Bezpieczeństwo na co dzień · Czas czytania: 11 min

Cel lekcji: Po tej lekcji potrafią Państwo wyjaśnić, czym jest hardening i jakie zasady za nim stoją, wiedzą Państwo, czym są CIS Benchmarks i jak rozsądnie z nich korzystać, a także potrafią Państwo systematycznie sprawdzić swój serwer za pomocą Lynis.

Kluczowe pojęcia: hardening, powierzchnia ataku, minimalna instalacja, minimalne uprawnienia (least privilege), obrona warstwowa (defense in depth), CIS Benchmarks, Level 1 i Level 2, CIS Controls, Lynis, hardening index, AppArmor, SELinux, sysctl, synchronizacja czasu

Czym jest hardening?

Świeża instalacja Debiana lub Ubuntu jest dość bezpieczna, ale przygotowana tak, aby działała w jak największej liczbie miejsc. Hardening (utwardzanie) to dopasowanie serwera dokładnie do Państwa zastosowania: usunięcie wszystkiego, czego Państwo nie potrzebują, i zaostrzenie wszystkiego, co da się zaostrzyć, bez psucia własnych usług.

W poprzednich modułach robili to Państwo już krok po kroku: SSH z kluczami (moduł 2), zwykły użytkownik z sudo (moduł 3), automatyczne aktualizacje (moduł 4), zapora i fail2ban (moduł 5), usługi działające na własnych użytkownikach (moduł 6). Ta lekcja układa te pojedyncze środki w jedną całość, aby było widać, czego jeszcze brakuje.

Cztery zasady

1. Mała powierzchnia ataku. Czego nie ma, to nie może się zepsuć. Każda zainstalowana usługa, każdy otwarty port, każde konto to potencjalne wejście (lekcja 5.1). Prosimy instalować minimalnie i usuwać to, czego już Państwo nie używają:

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

Jeśli działa usługa, której Państwo nie znają, prosimy sprawdzić, co robi (lekcja 6.1). Jeśli nie jest potrzebna, prosimy usunąć pakiet.

2. Minimalne uprawnienia. Każdy użytkownik i każdy program otrzymuje tylko te uprawnienia, które są potrzebne (lekcja 3.2). Żadnej codziennej pracy jako root, usługi na własnych użytkownikach, użytkownicy baz danych z uprawnieniami tylko do własnej bazy, żadnego chmod 777.

3. Obrona warstwowa. Prosimy zakładać, że jeden środek zawiedzie. Baza danych, która nasłuchuje tylko na 127.0.0.1, i stoi za zaporą, i ma silne hasło, pozostaje bezpieczna także wtedy, gdy jeden z tych trzech elementów przypadkiem przestanie działać. Nazywa się to defense in depth.

4. Wiedza o tym, co się dzieje. Hardening to nie tylko zamykanie, ale także obserwowanie: logi, które są przechowywane (lekcja 6.2), monitorowanie, które powiadamia (lekcja 8.3), oraz kopie zapasowe, dzięki którym można wrócić do poprzedniego stanu (moduł 8). Bez tego włamanie zauważą Państwo dopiero wtedy, gdy będzie za późno.

CIS Benchmarks

Center for Internet Security (CIS) to amerykańska organizacja non-profit, która tworzy CIS Benchmarks: obszerne listy zalecanych ustawień dla poszczególnych produktów, opracowywane przez wolontariuszy ze środowiska bezpieczeństwa. Jest ich ponad sto, również dla Debian Linux i Ubuntu Linux, osobno dla każdej wersji. Pliki pdf można pobrać bezpłatnie do użytku niekomercyjnego, po założeniu konta.

Benchmark dla systemu Linux zawiera setki zaleceń, każde z wyjaśnieniem, sposobem sprawdzenia i sposobem wdrożenia. Są one podzielone na profile:

  • Level 1: podstawowe środki, które można wprowadzić dość szybko, z wyraźną korzyścią dla bezpieczeństwa i bez znacznego ograniczenia użyteczności serwera. Dla większości serwerów to właściwy cel.
  • Level 2: dodatkowe środki dla środowisk, w których bezpieczeństwo jest najważniejsze (obrona warstwowa). Mogą kosztować funkcje lub wydajność, a według samego CIS mogą wyrządzić szkody, jeśli zastosuje się je bez należytej staranności.

W przypadku systemu Linux istnieją osobne profile dla serwerów i stacji roboczych.

Przykładowe tematy w benchmarku dla systemu Linux: osobne partycje dla /tmp i /var/log, wyłączanie nieużywanych systemów plików i protokołów sieciowych, synchronizacja czasu, logowanie audytowe, ustawienia SSH (wiele z nich znają Państwo z lekcji 2.2), polityka haseł, uprawnienia do ważnych plików oraz zapora.

Oprócz Benchmarks istnieją CIS Controls (obecnie wersja 8.1): nie są to ustawienia dla poszczególnych produktów, lecz lista osiemnastu grup środków dla całej organizacji, takich jak "inwentaryzacja oprogramowania", "zarządzanie podatnościami" i "odzyskiwanie danych". Dla pojedynczego serwera bardziej przydatne są Benchmarks; Controls pomagają, gdy myślą Państwo o całej firmie.

Rozsądne korzystanie z benchmarku

Benchmark to nie przycisk, który się naciska. Kilka zasad:

  • Najpierw zrozumieć, potem wdrożyć. Każde zalecenie ma wyjaśnienie. Jeśli nie rozumieją Państwo, dlaczego, prosimy jeszcze go nie wdrażać.
  • Jedna zmiana naraz i testowanie. Restrykcyjne ustawienie jądra lub sieci może zepsuć Państwa aplikację. Prosimy wykonać snapshot, zmienić jedną rzecz i sprawdzić, czy wszystko nadal działa.
  • Nie wszystko jest dla Państwa. Zalecenie dotyczące osobnej partycji /var/log jest na istniejącym VPS trudne do wykonania i daje niewiele. Prosimy wybierać świadomie i zapisywać, dlaczego czegoś Państwo nie robią.
  • Ostrożnie z gotowymi skryptami hardeningu z internetu, które stosują "wszystko z CIS" za jednym razem. Mogą tak zmienić SSH, zaporę lub logi, że zablokują Państwo sami sobie dostęp, a potem nie będą Państwo wiedzieć, co zostało zmienione.

Lynis: audyt od wewnątrz

Lynis to bezpłatny program open source (GPL) firmy CISOfy, który sprawdza serwer od wewnątrz i dla każdego obszaru podaje ostrzeżenia oraz sugestie. Sam niczego nie zmienia, a jedynie raportuje.

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

Jak czytać wynik:

  • Warnings to rzeczy, którym naprawdę trzeba się przyjrzeć, na przykład pakiety ze znanymi lukami (oznacza to, że czekają Państwa aktualizacje, lekcja 4.1).
  • Suggestions to porady. Wiele z nich jest przydatnych, niektóre nie pasują do Państwa serwera. Sugestia wyłączenia AllowTcpForwarding zepsuje na przykład Państwa tunele SSH (lekcja 2.3). Prosimy wybierać świadomie.
  • Każdy komunikat ma kod w nawiasach kwadratowych, na przykład [SSH-7408]. Za jego pomocą można sprawdzić w logu /var/log/lynis.log, co dokładnie zostało przetestowane.
  • Hardening index to liczba do 100. Jest to drogowskaz, a nie ocena, za którą należy gonić. Wzrost po Państwa zmianach pokazuje postęp; wynik 100 nie jest celem.

Wersja Lynis w repozytorium pakietów Państwa dystrybucji może być nieco starsza. Przy pierwszym audycie nie stanowi to problemu.

Jeszcze trzy tematy w skrócie

  • AppArmor i SELinux to dodatkowe warstwy zabezpieczeń w jądrze, które dla każdego programu określają, co wolno mu robić. Debian i Ubuntu używają AppArmor, domyślnie włączonego; AlmaLinux i Rocky używają SELinux. Prosimy nie wyłączać ich "bo coś nie działa": należy znaleźć komunikat w journalu i rozwiązać problem w sposób celowy.
  • sysctl ustawia parametry jądra, na przykład dotyczące sieci. Domyślne wartości w Debianie i Ubuntu są rozsądne. Jeśli chcą Państwo coś zmienić, prosimy zapisać to we własnym pliku w /etc/sysctl.d/ (Debian 13 nie odczytuje już /etc/sysctl.conf).
  • Czas: serwer z nieprawidłowym czasem sprawia, że logi stają się bezużyteczne, a certyfikaty mogą być uznawane za nieważne. Prosimy sprawdzić za pomocą timedatectl, czy widnieje "System clock synchronized: yes".

W praktyce

W WebOké, podobnie jak u innych dostawców VPS, za bezpieczeństwo wewnątrz serwera odpowiadają Państwo sami: dostawca zapewnia sprzęt, sieć i platformę wirtualizacji. Ten kurs służy samodzielnej nauce: nikt nie zagląda na Państwa serwer. Przed rundą hardeningu prosimy wykonać snapshot w panelu i wiedzieć, jak otworzyć konsolę, jeśli mimo wszystko zablokują Państwo sobie dostęp.

Podsumowanie

  • Hardening to dopasowanie serwera do własnego zastosowania: usunięcie tego, co niepotrzebne, i zaostrzenie tego, co można zaostrzyć.
  • Cztery zasady: mała powierzchnia ataku, minimalne uprawnienia, obrona warstwowa oraz wiedza o tym, co się dzieje.
  • CIS Benchmarks zawierają dla każdego produktu setki zaleceń w profilach Level 1 (podstawa) i Level 2 (restrykcyjny); należy korzystać z nich ze zrozumieniem, krok po kroku.
  • Lynis sprawdza serwer od wewnątrz i podaje ostrzeżenia, sugestie oraz hardening index; sam niczego nie zmienia.
  • Nie wyłączać AppArmor/SELinux; własne ustawienia jądra w /etc/sysctl.d/; sprawdzać synchronizację czasu.

Quiz

1. Na czym polega idea obrony warstwowej (defense in depth)?



2. Jaka jest różnica między Level 1 a Level 2 w CIS Benchmarks?



3. Lynis sugeruje wyłączenie AllowTcpForwarding w SSH. Korzystają Państwo z tuneli SSH, aby dostać się do bazy danych. Co Państwo robią?



4. Współpracownik znajduje w internecie skrypt, który stosuje na Państwa serwerze "wszystkie zalecenia CIS za jednym razem". Jakie jest największe ryzyko?



5. Państwa aplikacja nie działa, a w journalu widnieje odmowa ze strony AppArmor. Jakie jest właściwe podejście?



Zadanie

Zadanie O10.1: Audyt za pomocą Lynis. Prosimy wykonać snapshot, zainstalować Lynis na serwerze i uruchomić sudo lynis audit system. Prosimy zapisać hardening index, wszystkie ostrzeżenia i pięć sugestii. Prosimy wybrać trzy sugestie, które Państwo wdrożą, i jedną, której świadomie nie wdrożą, wraz z uzasadnieniem. Następnie prosimy ponownie uruchomić audyt i zapisać nowy index.

Zadanie O10.1: Audyt za pomocą Lynis

To zadanie wykonuje się samodzielnie, nikt go nie sprawdza. Prosimy zaznaczyć wykonane punkty i oznaczyć zadanie jako wykonane.




Zaznaczenia i notatki pozostają tylko w tej przeglądarce; nie są nigdzie wysyłane. Po zalogowaniu w Moje kursy zapisywana jest jedynie informacja, że zadanie zostało wykonane.

Przeczytaj więcej

Chwileczkę…

Konfiguracja domen

Dla każdej domeny można ustawić serwery nazw, powiązanie z hostingiem oraz to, kto zostanie właścicielem.

Wczytywanie domen…