Szczegóły ebooka

Bezpieczeństwo systemu Linux. Hardening i najnowsze techniki zabezpieczania przed cyberatakami. Wydanie III

Bezpieczeństwo systemu Linux. Hardening i najnowsze techniki zabezpieczania przed cyberatakami. Wydanie III

Donald A. Tevault

Ebook

Systemy linuksowe uchodzą za bezpieczne i odporne na cyberataki. Jednak nawet najbezpieczniejszy system może paść ich ofiarą, jeśli jego administrator nie zastosuje odpowiednich środków zabezpieczających. Cyberprzestępcy wciąż opracowują i testują nowe metody ataków, dlatego też specjaliści do spraw bezpieczeństwa nieustannie muszą doskonalić swoje umiejętności.

Oto kompleksowe omówienie sposobów wdrażania najnowszych dostępnych środków zabezpieczających systemy linuksowe. Z książki dowiesz się, jak skonfigurować laboratorium do ćwiczeń praktycznych, tworzyć konta użytkowników z odpowiednimi poziomami uprawnień, chronić dane dzięki uprawnieniom i szyfrowaniu, a także skonfigurować zaporę sieciową przy użyciu najnowszych technologii. Nauczysz się też automatyzować takie czynności jak monitorowanie systemu za pomocą auditd i utwardzanie (hardening) konfiguracji jądra Linux. Poznasz również sposoby ochrony przed złośliwym oprogramowaniem i skanowania systemów pod kątem luk w zabezpieczeniach. Znajdziesz tu ponadto podpowiedź, jak używać Security Onion do skonfigurowania systemu wykrywania włamań.

W książce między innymi:

  • zapobieganie naruszeniom bezpieczeństwa systemów Linux
  • dodatkowe funkcje i możliwości systemu Linux
  • ochrona przed nieautoryzowanym dostępem
  • konfiguracja uprawnień do plików i katalogów
  • utwardzanie usługi Secure Shell
  • szablony zabezpieczeń i monitorowanie

Twój Linux Twoją twierdzą!

O autorze

O recenzentach

Przedmowa

CZĘŚĆ 1. Podstawy zabezpieczeń systemu Linux

  • Rozdział 1. Uruchamianie systemu Linux w środowisku wirtualnym
    • Przegląd zagrożeń
    • Dlaczego dochodzi do naruszeń bezpieczeństwa?
    • Bądź na bieżąco z wiadomościami dotyczącymi bezpieczeństwa
    • Różnice między konfiguracjami systemu: fizyczną, wirtualną i w chmurze
    • VirtualBox i Cygwin
      • Instalowanie maszyny wirtualnej w VirtualBox
      • Instalowanie repozytorium EPEL na maszynie wirtualnej CentOS 7
      • Instalacja repozytorium EPEL na maszynach wirtualnych AlmaLinux 8/9
      • Konfigurowanie sieci w maszynach wirtualnych VirtualBox
      • Tworzenie migawki maszyny wirtualnej za pomocą VirtualBox
      • Używanie Cygwin do łączenia się z maszynami wirtualnymi
      • Korzystanie z klienta SSH systemu Windows 10 do łączenia się z maszynami wirtualnymi działającymi z systemem Linux
      • Korzystanie z klienta SSH systemu Windows 11 do łączenia się z maszynami wirtualnymi z systemem Linux
    • Aktualizowanie systemów Linux
      • Aktualizowanie systemów opartych na Debianie
      • Konfigurowanie automatycznych aktualizacji dla Ubuntu
      • Aktualizowanie systemów opartych na Red Hat 7
      • Aktualizowanie systemów opartych na Red Hat8/9
      • Zarządzanie aktualizacjami w przedsiębiorstwie
    • Podsumowanie
    • Pytania
    • Lektura uzupełniająca
    • Odpowiedzi
  • Rozdział 2. Zabezpieczanie kont użytkowników administracyjnych
    • Niebezpieczeństwa związane z logowaniem się jako użytkownik root
    • Zalety korzystania z sudo
    • Konfigurowanie uprawnień sudo dla pełnych użytkowników administracyjnych
      • Dodawanie użytkowników do predefiniowanej grupy administratorów
      • Tworzenie wpisu w pliku zasad sudo
    • Konfigurowanie sudo dla użytkowników z wybranymi oddelegowanymi uprawnieniami
      • Ćwiczenie: przypisywanie ograniczonych uprawnień sudo
    • Zaawansowane wskazówki i porady dotyczące korzystania z sudo
      • Minutnik sudo
      • Wyświetlanie swoich uprawnień sudo
      • Uniemożliwianie użytkownikom dostępu do powłoki root
      • Uniemożliwianie użytkownikom ucieczki do powłoki
      • Jak uniemożliwić użytkownikom skorzystanie z innych niebezpiecznych programów?
      • Ograniczanie działań użytkownika do wykonywania określonych poleceń
      • Umożliwianie działania w imieniu innego użytkownika
      • Zapobieganie nadużyciom poprzez skrypty powłoki użytkownika
      • Wykrywanie i usuwanie domyślnych kont użytkowników
    • Nowe funkcje sudo
    • Specjalne uwagi dotyczące sudo dla SUSE i OpenSUSE
    • Podsumowanie
    • Pytania
    • Lektura uzupełniająca
    • Odpowiedzi
  • Rozdział 3. Zabezpieczanie kont zwykłych użytkowników
    • Zabezpieczanie katalogów domowych użytkowników w systemach Red Hat
    • Zabezpieczanie katalogów domowych użytkowników w systemach Debian i Ubuntu
      • useradd w Debian/Ubuntu
      • adduser w systemach Debian/Ubuntu
    • Wymuszenie korzystania z silnych haseł
      • Instalowanie i konfigurowanie pwquality
    • Ustawianie i używanie mechanizmu wygasania haseł i kont
    • Konfigurowanie domyślnych danych wygasania haseł przy użyciu pliku useradd (tylko dla rodziny systemów Red Hat)
    • Ustawianie danych związanych z wygasaniem dla poszczególnych kont za pomocą useradd i usermod
    • Ustawianie opcji wygasania poszczególnych kont za pomocą chage
      • Ćwiczenie: ustawianie wygasania konta i hasła
    • Zapobieganie atakom siłowym na hasła
      • Konfigurowanie modułu pam_tally2 PAM w systemie CentOS 7
      • Konfigurowanie pam_faillock na AlmaLinux 8/9
      • Konfiguracja pam_faillock dla Ubuntu 20.04 i Ubuntu 22.04
    • Blokowanie kont użytkowników
      • Używanie usermod do blokowania konta użytkownika
      • Używanie passwd do blokowania kont użytkowników
    • Blokowanie konta użytkownika root
    • Konfigurowanie wiadomości z ostrzeżeniem
      • Korzystanie z pliku motd
      • Korzystanie z pliku issue
      • Korzystanie z pliku issue.net
    • Wykrywanie ujawnionych haseł
      • Ćwiczenie: wykrywanie ujawnionych haseł
    • Scentralizowane zarządzanie użytkownikami
      • Microsoft Active Directory
    • Samba w systemie Linux
      • FreeIPA - zarządzanie tożsamością na dystrybucjach typu RHEL
    • Podsumowanie
    • Pytania
    • Lektura uzupełniająca
    • Odpowiedzi
  • Rozdział 4. Zabezpieczanie serwera za pomocą zapory sieciowej - część I
    • Wymagania techniczne
    • Podstawy działania zapory sieciowej w systemie Linux
    • Narzędzie iptables
      • Podstawy iptables
      • Blokowanie ruchu ICMP za pomocą iptables
      • Blokowanie wszystkiego, co nie jest dozwolone, za pomocą iptables
      • Blokowanie nieprawidłowych pakietów za pomocą iptables
      • Przywracanie usuniętych reguł
      • Ochrona IPv6
    • nftables - bardziej uniwersalny typ zapory sieciowej
      • Co nieco o tabelach i łańcuchach w nftables
      • Konfiguracja nftables w Ubuntu
      • Używanie poleceń nft
    • Podsumowanie
    • Pytania
    • Lektura uzupełniająca
    • Odpowiedzi
  • Rozdział 5. Zabezpieczanie serwera za pomocą zapory sieciowej - część II
    • Wymagania techniczne
    • Nieskomplikowana zapora sieciowa dla systemów Ubuntu
      • Konfigurowanie ufw
      • Praca z plikami konfiguracyjnymi ufw
    • firewalld dla systemów z rodziny Red Hat
      • Weryfikacja statusu firewalld
      • Praca ze strefami firewalld
      • Dodawanie usług do strefy firewalld
      • Dodawanie portów do strefy firewalld
      • Blokowanie ICMP
      • Korzystanie z trybu "panika"
      • Rejestrowanie porzuconych pakietów
      • Korzystanie z "bogatego" języka reguł firewalld
      • Przeglądanie reguł iptables w firewalld w RHEL/CentOS 7
      • Bezpośrednie tworzenie reguł w firewalld RHEL/CentOS 7
      • Rzut oka na reguły nftables w firewalld RHEL/AlmaLinux 8 i 9
      • Tworzenie bezpośrednich reguł w RHEL/AlmaLinux firewalld
    • Podsumowanie
    • Pytania
    • Lektura uzupełniająca
    • Odpowiedzi
  • Rozdział 6. Technologie szyfrowania
    • GNU Privacy Guard (GPG)
      • Ćwiczenie: tworzenie kluczy GPG
      • Ćwiczenie: symetryczne szyfrowanie własnych plików
      • Ćwiczenie: szyfrowanie plików za pomocą kluczy publicznych
      • Ćwiczenie: podpisywanie pliku (bez szyfrowania)
    • Szyfrowanie partycji za pomocą Linux Unified Key Setup (LUKS)
      • Szyfrowanie dysku podczas instalacji systemu operacyjnego
      • Konfigurowanie partycji LUKS do automatycznego montowania
      • Ćwiczenie: konfigurowanie partycji LUKS do automatycznego montowania
    • Szyfrowanie katalogów za pomocą eCryptfs
      • Ćwiczenie: szyfrowanie katalogu domowego dla nowego konta użytkownika
      • Tworzenie prywatnego katalogu w istniejącym katalogu domowym
      • Ćwiczenie: szyfrowanie innych katalogów za pomocą eCryptfs
    • Szyfrowanie partycji wymiany za pomocą eCryptfs
    • Korzystanie z VeraCrypt do wieloplatformowego udostępniania zaszyfrowanych kontenerów
      • Ćwiczenie: pobieranie i instalowanie VeraCrypt
      • Korzystanie z VeraCrypt z graficznym interfejsem użytkownika
    • OpenSSL i infrastruktura klucza publicznego
      • Instytucje wydające komercyjne certyfikaty
      • Tworzenie kluczy, żądań podpisania certyfikatów i certyfikatów
      • Tworzenie lokalnego urzędu certyfikacji
      • Dodawanie urzędu certyfikacji do systemu operacyjnego
      • OpenSSL i serwer internetowy Apache
      • Konfigurowanie uwierzytelniania wzajemnego
    • Wprowadzenie algorytmów odpornych na obliczenia kwantowe
    • Podsumowanie
    • Pytania
    • Lektura uzupełniająca
    • Odpowiedzi
  • Rozdział 7. Utwardzanie SSH
    • Upewnianie się, że protokół SSH 1 jest wyłączony
    • Tworzenie kluczy do logowania bez hasła i zarządzanie kluczami
      • Tworzenie zestawu kluczy SSH użytkownika
      • Przesyłanie klucza publicznego do zdalnego serwera
      • Wyłączanie logowania użytkownika root
      • Wyłączanie logowania przy użyciu nazwy użytkownika i hasła
      • Włączanie uwierzytelniania dwuskładnikowego
      • Konfigurowanie Secure Shell z silnymi algorytmami szyfrowania
      • Skanowanie w poszukiwaniu włączonych algorytmów SSH
      • Wyłączenie słabych algorytmów szyfrowania SSH
      • Ustawianie zasad szyfrowania na poziomie całego systemu operacyjnego w systemach RHEL 8/9 i AlmaLinux 8/9
      • Konfigurowanie bardziej szczegółowego rejestrowania
    • Konfigurowanie kontroli dostępu za pomocą białych list i TCP Wrappers
      • Konfigurowanie białych list w sshd_config
      • Konfigurowanie białych list za pomocą TCP Wrappers
    • Konfigurowanie automatycznego wylogowywania i wiadomości ostrzegawczych
      • Konfigurowanie automatycznego wylogowywania dla użytkowników lokalnych i zdalnych
      • Konfigurowanie automatycznego wylogowywania w sshd_config
      • Tworzenie wiadomości ostrzegawczej wyświetlanej przed logowaniem
    • Konfigurowanie innych ustawień zabezpieczeń
      • Wyłączanie przekierowania X11
      • Wyłączanie tunelowania SSH
      • Zmiana domyślnego portu SSH
      • Zarządzanie kluczami SSH
    • Ustawianie różnych konfiguracji dla różnych użytkowników i grup
    • Tworzenie różnych konfiguracji dla różnych hostów
    • Konfigurowanie środowiska chroot dla użytkowników SFTP
      • Tworzenie grupy i konfiguracja pliku sshd_config
    • Udostępnianie katalogu za pomocą SSHFS
      • Ćwiczenie: udostępnianie katalogu z SSHFS
    • Zdalne łączenie się z komputerów stacjonarnych z systemem Windows
    • Podsumowanie
    • Pytania
    • Lektura uzupełniająca
    • Odpowiedzi

CZĘŚĆ 2. Kontrola dostępu do plików i katalogów (DAC)

  • Rozdział 8. Uznaniowa kontrola dostępu (DAC)
    • Używanie chown do zmiany własności plików i katalogów
    • Używanie chmod do ustawiania uprawnień na plikach i katalogach
      • Ustawianie uprawnień za pomocą metody symbolicznej
      • Ustawianie uprawnień metodą numeryczną
    • Używanie SUID i SGID na zwykłych plikach
    • Wpływ uprawnień SUID i SGID na bezpieczeństwo
      • Wyszukiwanie niepożądanych plików z ustawionym SUID lub SGID
      • Zapobieganie używaniu SUID i SGID na partycji
    • Używanie rozszerzonych atrybutów plików do ochrony wrażliwych plików
      • Ustawianie atrybutu a
      • Ustawianie atrybutu i
    • Zabezpieczanie plików konfiguracyjnych systemu
    • Podsumowanie
    • Pytania
    • Lektura uzupełniająca
    • Odpowiedzi
  • Rozdział 9. Listy kontroli dostępu i zarządzanie udostępnionymi
    • Tworzenie listy ACL dla użytkownika lub grupy
    • Tworzenie dziedziczonej listy ACL dla katalogu
    • Usuwanie określonego uprawnienia przy użyciu maski ACL
    • Używanie opcji tar --acls, aby zapobiec utracie list ACL podczas tworzenia kopii zapasowej
    • Tworzenie grupy użytkowników i dodawanie do niej członków
      • Dodawanie członków podczas tworzenia kont użytkowników
      • Użycie usermod, by dodać do grupy konto istniejącego użytkownika
      • Dodawanie użytkowników do grupy poprzez edycję pliku /etc/group
    • Tworzenie udostępnionego katalogu
    • Ustawienie bitu SGID i lepkiego bitu na udostępnionym katalogu
    • Korzystanie z list ACL w celu ustawienia uprawnień dostępu do plików w udostępnionym katalogu
      • Ustawianie uprawnień i tworzenie listy ACL
    • Podsumowanie
    • Pytania
    • Lektura uzupełniająca
    • Odpowiedzi

CZĘŚĆ 3. Zaawansowane techniki utwardzania systemu

  • Rozdział 10. Wdrażanie obligatoryjnej kontroli dostępu za pomocą SELinux i AppArmor
    • Jak SELinux może wspomóc administratora systemu?
    • Ustawianie kontekstu zabezpieczeń dla plików i katalogów
      • Instalowanie narzędzi dla SELinux
      • Tworzenie plików zawierających treści publikowane w Internecie z włączonym SELinux
      • Poprawianie nieprawidłowego kontekstu SELinux
    • Rozwiązywanie problemów za pomocą setroubleshoot
      • Wyświetlanie komunikatów setroubleshoot
      • Korzystanie z narzędzia setroubleshoot w interfejsie graficznym
      • Rozwiązywanie problemów w trybie pobłażliwym
    • Praca z zasadami SELinux
      • Wyświetlanie wartości logicznych
      • Ustawianie wartości logicznych
      • Ochrona serwera WWW
      • Ochrona portów sieciowych
      • Tworzenie niestandardowych modułów zasad
    • Jak AppArmor może pomóc administratorowi systemu
      • Profile w AppArmor
      • Praca z narzędziami wiersza poleceń AppArmor
      • Rozwiązywanie problemów z AppArmor
      • Rozwiązywanie problemów z profilem AppArmor w Ubuntu 16.04
      • Rozwiązywanie problemów z profilem AppArmor w Ubuntu 18.04
      • Rozwiązywanie problemów z Sambą w Ubuntu 22.04
    • Atak na system za pomocą odpowiednio przygotowanego kontenera Dockera
      • Ćwiczenie: tworzenie "niegrzecznego" kontenera Dockera
    • Podsumowanie
    • Pytania
    • Lektura uzupełniająca
    • Odpowiedzi
  • Rozdział 11. Utwardzanie jądra i izolowanie procesów
    • System plików /proc
      • Przegląd procesów w trybie użytkownika
      • Przeglądanie informacji o jądrze
    • Ustawianie parametrów jądra za pomocą sysctl
    • Konfiguracja pliku sysctl.conf
      • Konfiguracja sysctl.conf - Ubuntu
      • Konfiguracja sysctl.conf - CentOS i AlmaLinux
      • Ustawianie dodatkowych parametrów utwardzających jądro
      • Zapobieganie wzajemnemu podglądaniu swoich procesów przez użytkowników
    • O izolacji procesów
      • Grupy kontrolne (cgroups)
      • Izolacja przestrzeni nazw
      • Mechanizmy CAP jądra
      • Zrozumienie SECCOMP i wywołań systemowych
      • Korzystanie z izolacji procesów w kontenerach Dockera
      • Uruchamianie w piaskownicy z Firejail
      • Uruchamianie w piaskownicy ze Snappy
      • Uruchamianie w piaskownicy z Flatpak
    • Podsumowanie
    • Pytania
    • Lektura uzupełniająca
    • Odpowiedzi
  • Rozdział 12. Skanowanie, monitoring i utwardzanie
    • Instalowanie i aktualizowanie ClamAV i maldet
      • Ćwiczenie: instalacja ClamAV i maldet
      • Ćwiczenie: konfiguracja maldet
      • Aktualizowanie ClamAV i maldet
    • Skanowanie za pomocą ClamAV i maldet
      • Uwagi związane z SELinux
    • Skanowanie w poszukiwaniu rootkitów za pomocą Rootkit Hunter
      • Ćwiczenie: instalacja i aktualizacja Rootkit Hunter
      • Skanowanie w poszukiwaniu rootkitów
    • Przeprowadzanie szybkiej analizy złośliwego oprogramowania przy użyciu ciągów znaków i VirusTotal
      • Przeanalizuj plik z ciągami znaków
      • Skanowanie złośliwego oprogramowania za pomocą VirusTotal
    • Demon auditd
      • Tworzenie reguł monitorowania
      • Monitorowanie pliku
      • Monitorowanie katalogu
      • Monitorowanie wywołań systemowych
    • Korzystanie z ausearch i aureport
      • Wyszukiwanie powiadomień o zmianie pliku
      • Wyszukiwanie naruszeń reguł dostępu do katalogu
      • Wyszukiwanie naruszeń reguł wywołań systemowych
      • Generowanie raportów uwierzytelniania
      • Korzystanie z predefiniowanych zestawów reguł
      • Ćwiczenie: korzystanie z auditd
      • Ćwiczenie: Używanie wstępnie skonfigurowanych reguł z auditd
    • Monitorowanie plików i katalogów za pomocą inotifywait
    • Stosowanie zasad OpenSCAP za pomocą oscap
      • Instalacja OpenSCAP
      • Przeglądanie plików profilu
      • Pobieranie brakujących profili dla Ubuntu
      • Skanowanie systemu
      • Poprawianie konfiguracji systemu
      • Korzystanie ze SCAP Workbench
      • Wybór profilu OpenSCAP
      • Zastosowanie profilu OpenSCAP podczas instalacji systemu
    • Podsumowanie
    • Pytania
    • Lektura uzupełniająca
    • Odpowiedzi
  • Rozdział 13. Rejestrowanie i bezpieczeństwo dzienników
    • Pliki dzienników systemu Linux
      • Dziennik systemowy i dziennik uwierzytelniania
      • Pliki utmp, wtmp, btmp i lastlog
    • Jak działa rsyslog
      • Reguły rejestrowania rsyslog
    • System journald
    • Ułatwianie sobie pracy dzięki Logwatch
      • Ćwiczenie: instalacja Logwatch
    • Konfigurowanie zdalnego serwera dzienników
      • Ćwiczenie: konfigurowanie podstawowego serwera dzienników
      • Tworzenie szyfrowanego połączenia z serwerem dzienników
      • Rozdzielanie komunikatów klientów do ich własnych plików
    • Utrzymywanie dzienników w dużych przedsiębiorstwach
    • Podsumowanie
    • Pytania
    • Lektura uzupełniająca
    • Odpowiedzi
  • Rozdział 14. Skanowanie pod kątem podatności i wykrywanie włamań
    • Wprowadzenie do Snorta i Security Onion
      • Pobieranie i instalowanie Snorta
    • Korzystanie z zabezpieczeń Onion
    • IPFire i jego wbudowany system zapobiegania włamaniom (IPS)
      • Ćwiczenie: tworzenie maszyny wirtualnej IPFire
    • Skanowanie i utwardzanie za pomocą Lynis
      • Instalacja Lynis w Red Hat/ CentOS
      • Instalacja Lynis w Ubuntu
      • Skanowanie za pomocą Lynis
    • Znajdowanie podatności za pomocą Greenbone Security Assistant
    • Skanowanie serwerów WWW za pomocą Nikto
      • Nikto w Kali Linux
    • Podsumowanie
    • Pytania
    • Lektura uzupełniająca
    • Odpowiedzi
  • Rozdział 15. Zapobieganie uruchamianiu niepożądanych programów
    • Montowanie partycji z opcjami "no"
    • Jak działa fapolicyd
      • Reguły fapolicyd
      • Instalowanie fapolicyd
    • Podsumowanie
    • Lektura uzupełniająca
    • Pytania
    • Odpowiedzi
  • Rozdział 16. Wskazówki i porady dotyczące bezpieczeństwa dla zapracowanych
    • Wymagania techniczne
    • Monitorowanie usług systemowych
      • Monitorowanie usług systemowych za pomocą systemctl
      • Monitorowanie usług sieciowych za pomocą netstat
      • Monitorowanie usług sieciowych za pomocą Nmap
    • Ochrona programu ładującego GRUB2 hasłem
      • Ćwiczenie: resetowanie hasła dla Red Hat/ CentOS/ AlmaLinux
      • Ćwiczenie: resetowanie hasła w Ubuntu
      • Zapobieganie edycji parametrów jądra w systemach Red Hat/ CentOS/ AlmaLinux
      • Blokowanie możliwości modyfikowania parametrów jądra lub dostępu do trybu odzyskiwania w Ubuntu
      • Wyłączanie podmenu dla Ubuntu
    • Bezpieczna konfiguracja BIOS/UEFI
    • Korzystanie z listy kontrolnej bezpieczeństwa podczas konfiguracji systemu
    • Podsumowanie
    • Pytania
    • Lektura uzupełniająca
    • Odpowiedzi
  • Tytuł: Bezpieczeństwo systemu Linux. Hardening i najnowsze techniki zabezpieczania przed cyberatakami. Wydanie III
  • Autor: Donald A. Tevault
  • Tytuł oryginału: Mastering Linux Security and Hardening: A practical guide to protecting your Linux system from cyber attacks, 3rd Edition
  • Tłumaczenie: Magdalena A. Tkacz
  • ISBN: 978-83-289-0293-0, 9788328902930
  • Data wydania: 2024-02-27
  • Format: Ebook
  • Identyfikator pozycji: besyl3
  • Wydawca: Helion
  • Kategoria wiekowa: 14+