Bezpieczeństwo systemu Linux. Hardening i najnowsze techniki zabezpieczania przed cyberatakami. Wydanie 3 - ebook
Bezpieczeństwo systemu Linux. Hardening i najnowsze techniki zabezpieczania przed cyberatakami. Wydanie 3 - 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ą!
Spis treści
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
- GNU Privacy Guard (GPG)
- 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
- System plików /proc
- 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
- Instalowanie i aktualizowanie ClamAV i maldet
- 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
- Pliki dzienników systemu Linux
- 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
- Wprowadzenie do Snorta i Security Onion
- 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
Kategoria: | Systemy operacyjne |
Zabezpieczenie: |
Watermark
|
ISBN: | 978-83-289-0293-0 |
Rozmiar pliku: | 17 MB |