Lekcja 2 z 4 · 9 min
Firewalle: filtrowanie stanowe i opcje macOS
Jak firewall stanowy decyduje, co przepuścić, czym różni się filtrowanie przychodzące od wychodzącego oraz jakie narzędzia daje na to macOS.
Zadanie firewalla brzmi prosto: przepuszczać dobry ruch, nie wpuszczać złego. Ciekawa część to sposób, w jaki podejmuje tę decyzję, i na jakim poziomie. Ta lekcja omawia filtrowanie stanowe jako pojęcie, a następnie konkretne, oddzielne narzędzia oferowane przez macOS, z których każde działa na innej warstwie.
Filtrowanie stanowe: pamiętanie przebiegu połączenia
Wczesny, „bezstanowy” firewall sprawdza każdy pakiet osobno, względem stałego zestawu reguł. Firewall stanowy zamiast tego śledzi otwarte połączenia, a jak opisuje to słownik sieciowy Cloudflare, „zapisuje informacje o otwartych połączeniach i wykorzystuje je do analizy ruchu przychodzącego i wychodzącego, zamiast sprawdzać każdy pakiet” od nowa. W praktyce oznacza to, że firewall stanowy może utrzymywać porty faktycznie zamknięte, dopóki połączenie, które sam zainicjowałeś, nie poprosi o odpowiedź, a wtedy wpuszcza z powrotem właśnie tę odpowiedź, nie otwierając portu dla niczego innego. Niemal każdy dzisiejszy firewall konsumencki i systemowy, w tym firewall macOS, jest stanowy.
Filtrowanie przychodzące a wychodzące
Filtrowanie przychodzące kontroluje połączenia docierające do maszyny bez zaproszenia, z zewnątrz: kogoś lub coś próbującego dosięgnąć działającej na niej usługi. Filtrowanie wychodzące (egress) kontroluje połączenia, które sama maszyna, lub działająca na niej aplikacja, próbuje nawiązać na zewnątrz. Oba mają znaczenie z innych powodów. Filtrowanie przychodzące w ogóle uniemożliwia dosięgnięcie i sondowanie maszyny. Filtrowanie wychodzące ma znaczenie, gdy coś już poszło nie tak: szkodliwe oprogramowanie, które trafiło na maszynę, wciąż potrzebuje „zadzwonić do domu”, odebrać instrukcje albo wysłać dane na zewnątrz, a każda z tych czynności wymaga połączenia wychodzącego. Maszyna z mocnym firewallem przychodzącym i zupełnie bez filtrowania wychodzącego wciąż może wyciekać wszystko, co na niej jest, jedno połączenie wychodzące na raz.
Co naprawdę daje macOS
| Narzędzie | Warstwa | Kierunek | Uwagi |
|---|---|---|---|
| Application Firewall | Poszczególne aplikacje, w Ustawieniach systemowych → Sieć → Zapora sieciowa | Przychodzące | Decyduje, czy dana aplikacja może w ogóle przyjmować połączenia przychodzące; nie filtruje tego, co aplikacje wysyłają na zewnątrz. Polecenia do jego sprawdzenia omówiono w kursie wzmacniania zabezpieczeń macOS na tej stronie. |
| pf (packet filter) | Filtrowanie pakietów na poziomie jądra, odziedziczone z BSD | Oba kierunki, oparte na regułach | Potężny, ogólnego przeznaczenia firewall, którego Apple używa wewnętrznie (na przykład do Udostępniania internetu), udokumentowany dla administratorów na stronach podręcznika pfctl i pf.conf, a nie w graficznym panelu ustawień. Ręcznie pisane reguły pf to firewall dziedziczony z BSD, a nie produkt Apple ze stroną wsparcia, i macOS oficjalnie nie dokumentuje ich edycji do wzmacniania zabezpieczeń przez użytkownika końcowego. |
| Filtry treści Network Extension | Na poziomie aplikacji, przez framework NetworkExtension Apple | Wychodzące (i przychodzące dla przepływów, które filtr otrzymuje) | Framework, z którego korzystają aplikacje firm trzecich, by sprawdzać lub blokować ruch sieciowy według aplikacji lub domeny, za zgodą użytkownika; to właśnie dzięki niemu firewall wychodzący na poziomie poszczególnych aplikacji na macOS jest w ogóle możliwy, a nie tylko przychodzący. |
Praktyczny wniosek z tej tabeli jest taki, że wbudowany, wspierany firewall macOS (Application Firewall) dobrze obsługuje połączenia przychodzące, ale nic nie mówi o tym, co opuszcza maszynę. pf technicznie potrafi jedno i drugie, ale to narzędzie niskiego poziomu, oparte na skryptach, przeznaczone dla administratorów swobodnie edytujących pliki konfiguracyjne i rozumiejących kolejność reguł, a nie coś, co ten kurs poprowadzi krok po kroku, ponieważ błąd w ręcznie napisanym zestawie reguł może po cichu przepuścić wszystko albo całkowicie zablokować dostęp do sieci, a Apple nie traktuje go jako pełnoprawnego, wspieranego ustawienia dla użytkownika końcowego tak, jak Application Firewall. Przewodniki społecznościowe dotyczące wzmacniania zabezpieczeń, które publikują gotowe zestawy reguł pf lub skrypty pobierające zewnętrzne listy blokowanych adresów IP, idą dalej, niż zaleca ten kurs: takim listom ktoś musi ufać i ktoś musi je aktualizować, a nieudana aktualizacja może zerwać łączność bez jasnego komunikatu o błędzie.
Ta luka, wbudowany firewall działający wyłącznie w kierunku przychodzącym, bez prostego, wspieranego sposobu na zobaczenie lub kontrolowanie połączeń wychodzących według aplikacji, to dokładnie to, co framework Network Extension od Apple ma umożliwić wypełnić deweloperom firm trzecich, za wyraźną zgodą użytkownika przy instalacji.
Najważniejsze
- Firewall stanowy śledzi otwarte połączenia i przepuszcza ruch powrotny dla połączenia, które sam zainicjowałeś, bez sprawdzania każdego pakietu względem stałej listy reguł.
- Filtrowanie przychodzące uniemożliwia dosięgnięcie maszyny z zewnątrz; filtrowanie wychodzące (egress) ma znaczenie, gdy coś jest już na maszynie i próbuje się komunikować na zewnątrz.
- Application Firewall w macOS filtruje połączenia przychodzące według aplikacji; nie filtruje ruchu wychodzącego.
- `pf` to potężny firewall BSD działający na poziomie jądra, którego macOS używa wewnętrznie, ale nie jest to wspierane, udokumentowane ustawienie dla użytkownika końcowego, w przeciwieństwie do Application Firewall.
- Framework Network Extension od Apple to właśnie to, co pozwala aplikacjom firm trzecich zapewniać filtrowanie wychodzące na poziomie poszczególnych aplikacji, wypełniając lukę pozostawioną przez wbudowany firewall.
Sprawdź się
1. Czym firewall stanowy różni się od prostego, bezstanowego filtru pakietów?
- Domyślnie blokuje cały ruch bez żadnych wyjątków
- Śledzi otwarte połączenia i wykorzystuje ten kontekst, by przepuszczać oczekiwany ruch powrotny — Dobrze.
- Działa wyłącznie w sieciach Wi-Fi
- Szyfruje cały ruch sieciowy
Firewalle stanowe pamiętają stan otwartych połączeń, zamiast oceniać każdy pakiet osobno, co pozwala im bezpiecznie przepuszczać odpowiedzi na połączenia, które sam zainicjowałeś.
2. Dlaczego filtrowanie wychodzące (egress) ma znaczenie, mimo mocnego firewalla przychodzącego?
- Nie ma znaczenia, jeśli filtrowanie przychodzące jest mocne
- Ponieważ oprogramowanie, które już jest na maszynie, nadal potrzebuje połączenia wychodzącego, by wysłać dane lub odebrać instrukcje — Dobrze.
- Połączenia wychodzące zawsze są bezpieczne
- Ma znaczenie wyłącznie dla serwerów internetowych
Filtrowanie przychodzące uniemożliwia niechcianym połączeniom dotarcie do maszyny, ale nic nie daje, gdy coś już na niej działa i próbuje komunikować się na zewnątrz.
3. Czego NIE robi Application Firewall w macOS?
- Decyduje, czy aplikacja może przyjmować połączenia przychodzące
- Filtruje połączenia wychodzące nawiązywane przez aplikację — Dobrze.
- Działa na poziomie poszczególnych aplikacji
- Działa bez żadnego dodatkowego oprogramowania
Application Firewall działa wyłącznie w kierunku przychodzącym; kontrolowanie tego, co aplikacje wysyłają na zewnątrz, wymaga innego mechanizmu, na przykład zbudowanego na frameworku Network Extension od Apple.
Wypróbuj to z FireAI
Zastosuj tę lekcję w praktyce na swoim Macu.
- Reguły: aplikacja, strona, domena, IP albo zakres — na zawsze albo do restartu — Napisz regułę tak precyzyjną jak jeden adres albo tak szeroką jak cała domena.
- Wyłącznik awaryjny (kill switch) — Odetnij swojego Maca od internetu jednym kliknięciem, gdy coś wydaje się nie tak.
- Zbadaj połączenie — Decyduj mając przed sobą fakty, a nie niejasne ostrzeżenie.
- Aktywność: każda aplikacja, która się łączyła, i wyszukiwanie historii w zwykłych słowach — Zobacz każdą aplikację, która dziś się łączyła, i zareaguj na dowolną z nich jednym kliknięciem.
Źródła
- Cloudflare Learning: What is a firewall?
- Apple Support: Block connections to your Mac with a firewall
- Apple Developer: Network Extension framework
Zastosuj to na swoim Macu
Wypróbuj wszystkie funkcje za darmo przez 17 dni, bez karty.