Firewall
Zadaniem zapory sieciowej jest filtrowanie ruchu sieciowego w oparciu o zdefiniowane reguły, decydując, które pakiety danych mogą wejść do serwera, a które powinny zostać odrzucone. W systemach Linux nie mamy do czynienia z pojedynczym programem, lecz z całą architekturą przesyłania danych. Większość nowoczesnych dystrybucji opiera się na podsystemie Netfilter wewnątrz jądra systemu, którym zarządza się za pomocą różnorodnych narzędzi.
Wybór narzędzia do zarządzania firewallem w systemach Linux zależy od potrzeb i preferencji użytkownika. Iptables, przez lata będący standardem, ustępuje miejsca nowoczesnemu i wydajniejszemu nftables. Dla osób ceniących prostotę, UFW (Uncomplicated Firewall) oferuje łatwe zarządzanie regułami, natomiast firewalld dynamicznie zarządza strefami bezpieczeństwa, unikając restartów usługi przy każdej zmianie konfiguracji.
Aktywne Reagowanie (Fail2Ban / CrowdSec)
Aby nadać polityce bezpieczeństwa większej dynamiki, kluczowe jest zastosowanie narzędzi IPS (Intrusion Prevention System), takich jak Fail2Ban lub CrowdSec. Systemy te działają jako procesory zdarzeń, łącząc logi systemowe z regułami zapory ogniowej.
Fail2Ban działa poprzez monitorowanie plików dziennika, takich jak /var/log/auth.log, w celu wykrywania wzorców odpowiadających nieudanym próbom uwierzytelnienia. Gdy liczba takich prób przekroczy ustalony próg (maxretry) w określonym czasie (findtime), Fail2Ban dynamicznie dodaje regułę do firewalla (np. iptables), blokując adres IP agresora. To blokowanie na poziomie jądra systemu znacząco redukuje obciążenie procesora, ponieważ pakiety od napastnika są odrzucane, zanim dotrą do aplikacji.
Kontrola dostępu do procesów (AppArmor/SELinux)
Nawet najbardziej restrykcyjny firewall staje się bezużyteczny, gdy napastnik wykorzystuje lukę Remote Code Execution (RCE) w legalnie udostępnionej usłudze, na przykład serwerze HTTP działającym na portach 80/443. W takiej sytuacji kluczową linią obrony jest Mandatory Access Control (MAC), realizowana przez moduły bezpieczeństwa jądra Linux, takie jak AppArmor lub SELinux.
W przeciwieństwie do standardowych uprawnień użytkownika (DAC), systemy MAC narzucają procesom ścisłe profile zachowań. Jeśli serwer WWW zostanie skompromitowany, proces ten – działając w trybie Enforcing – zostanie powstrzymany przed wykonaniem jakiejkolwiek czynności wykraczającej poza jego specyfikację. Próba odczytu pliku /etc/shadow, modyfikacja binariów systemowych czy wyjście poza zdefiniowaną strukturę katalogów aplikacji zostanie natychmiast zablokowana i odnotowana w logach audytowych. Takie podejście minimalizuje ryzyko rozprzestrzeniania się ataku i ogranicza potencjalne szkody. W odróżnieniu od DAC, gdzie uprawnienia są przyznawane na podstawie tożsamości użytkownika, MAC opiera się na politykach zdefiniowanych przez administratora, co zapewnia centralną kontrolę nad bezpieczeństwem systemu. Dzięki temu, nawet jeśli atakujący uzyska dostęp do konta użytkownika, jego możliwości są ograniczone do działań zgodnych z polityką MAC, co znacząco podnosi poziom bezpieczeństwa systemu.
Audyt systemowy
W celu zapewnienia kompleksowego monitoringu aktywności w systemie, kluczowe jest zastosowanie Linux Audit Framework (auditd). W odróżnieniu od konwencjonalnych logów aplikacji, auditd operuje na poziomie wywołań systemowych, umożliwiając rejestrację wszelkich prób dostępu, modyfikacji lub usunięcia istotnych zasobów, niezależnie od uprawnień użytkowników. Dzięki temu, auditd staje się nieocenionym narzędziem w wykrywaniu potencjalnych naruszeń bezpieczeństwa, monitorowaniu zgodności z regulacjami oraz analizie przyczyn problemów systemowych, oferując szczegółowy wgląd w operacje wykonywane na poziomie jądra systemu.

