Windows Defender Firewall, Little Snitch, firejail – blokada internetu dla wybranych programów

Pytanie

Jak zablokować dostęp do internetu paru programom

Odpowiedź Sztucznej Inteligencji


Bezpośrednia odpowiedź na pytanie

  • Najprościej: utwórz reguły w Zaporze systemu Windows (Windows Defender Firewall) blokujące ruch wychodzący i – opcjonalnie – przychodzący dla wskazanych plików .exe.
  • Dla wielu programów zrobisz to najszybciej skryptem PowerShell (jeden zestaw reguł na program).
  • macOS: wbudowana zapora filtruje głównie ruch przychodzący; do precyzyjnego blokowania aplikacji wychodzących użyj narzędzi typu Little Snitch/LuLu/Radio Silence.
  • Linux: najprościej uruchamiać programy bez sieci (firejail –net=none), albo blokować po UID/GID regułami nftables/iptables i uruchamiać dany program pod dedykowanym użytkownikiem/grupą.

Kluczowe punkty:

  • Blokuj ruch wychodzący (Outbound).
  • Zablokuj wszystkie pliki wykonywalne danego programu (główny .exe, updater, helpery).
  • Nadaj regułom wspólną „Grupę”, by łatwo nimi zarządzać.
  • Zweryfikuj działanie w Monitorze zasobów (resmon.exe) lub logach zapory.

Szczegółowa analiza problemu

  • Warstwa i mechanizm: W Windows ruch filtrowany jest przez WFP (Windows Filtering Platform). Reguły per-program dotyczą obiektu „Program” (ścieżka do pliku .exe) lub – w przypadku aplikacji UWP/Sklepu – „PackageFamilyName”.
  • Co naprawdę trzeba zablokować: wiele aplikacji korzysta z kilku procesów (np. updater, crash reporter, web helper). Skuteczna blokada wymaga reguł dla każdego z nich. Aplikacje autoaktualizujące (Discord, Spotify, niektóre przeglądarki) zmieniają ścieżki .exe przy aktualizacji – reguły trzeba wtedy odświeżyć.
  • Kiedy potrzebne są reguły przychodzące: rzadko (serwery P2P, serwisy nasłuchujące). Dla zwykłych aplikacji wystarcza blokada „Outbound”.
  • Sieci/Proxy/Usługi: część programów używa usług systemowych (np. BITS) lub korzysta z systemowego proxy. Gdy sama reguła per .exe nie wystarcza, zablokuj także pliki wykonywalne usług/updaterów lub rozważ tryb „deny by default” w narzędziach typu Simplewall.

Aktualne informacje i trendy

  • Windows 10/11: mechanika Zapory Defender nie zmieniła się istotnie — reguły Program/PackageFamilyName pozostają podstawowym i stabilnym sposobem blokady.
  • Coraz więcej aplikacji używa DoH/QUIC i wielu serwerów CDN; dlatego plik hosts/DNS nie wystarcza — blokuj na poziomie zapory per-proces.
  • Linux: rośnie popularność lekkiej izolacji aplikacji (firejail, bubblewrap, systemd sandboxing) i filtrowania per-cgroup/eBPF; dla użytkownika końcowego najpraktyczniejszy pozostaje firejail lub reguły owner (UID/GID) w nftables.
  • macOS: precyzyjna kontrola ruchu wychodzącego pozostaje domeną narzędzi użytkowych (Little Snitch, LuLu, Radio Silence).

Wspierające wyjaśnienia i detale

  • Dlaczego „Outbound”: większość programów inicjuje połączenia; odcięcie wysyłania pakietów uniemożliwia też odebranie odpowiedzi.
  • Dlaczego kilka .exe: modularna architektura aplikacji (launcher, główny proces, aktualizator) powoduje, że realny ruch może wychodzić z innego pliku niż ten, który uruchamiasz.
  • Dlaczego hosts bywa nieskuteczny: aplikacje mogą używać bezpośrednich adresów IP, własnego resolvera lub DoH/DoT; wpisy w hosts nie zatrzymają takiego ruchu.

Aspekty etyczne i prawne

  • W środowisku firmowym dostosuj się do polityk bezpieczeństwa — samowolne modyfikacje zapory mogą naruszać zasady.
  • Rozważ konsekwencje: blokada może uniemożliwić pobieranie aktualizacji bezpieczeństwa lub licencjonowanie (serwery aktywacyjne).

Praktyczne wskazówki

  • Windows — GUI (pojedyncze programy):
    • Start → wpisz „Zapora…” → „Zapora systemu Windows Defender z zabezpieczeniami zaawansowanymi”.
    • Reguły wychodzące → Nowa reguła → Program → wskaż .exe → Akcja: Zablokuj → Profile: Domena/Prywatny/Publiczny → Nazwa/Grupa (np. „Block Selected Apps”).
    • Opcjonalnie powtórz w Regułach przychodzących.
  • Windows — szybko dla wielu programów (PowerShell, uruchom jako Administrator):
    • Zastąp ścieżki własnymi; utworzy reguły IN/OUT i wspólną grupę.
    • $apps = @(
      "C:\Program Files\App1\App1.exe",
      "C:\Program Files\App2\App2.exe"
      )
      $group = "Block Selected Apps"
      foreach ($a in $apps) {
      New-NetFirewallRule -DisplayName ("Block OUT - " + [IO.Path]::GetFileNameWithoutExtension($a)) -Direction Outbound -Action Block -Program $a -Profile Any -Group $group
      New-NetFirewallRule -DisplayName ("Block IN - " + [IO.Path]::GetFileNameWithoutExtension($a)) -Direction Inbound -Action Block -Program $a -Profile Any -Group $group
      }

    • Aplikacje UWP/Sklepu:

      $pkg = (Get-AppxPackage -Name "Microsoft.SkypeApp").PackageFamilyName
      $group = "Block Selected Apps"
      New-NetFirewallRule -DisplayName "Block OUT - Skype UWP" -Direction Outbound -Action Block -Package $pkg -Profile Any -Group $group
      New-NetFirewallRule -DisplayName "Block IN - Skype UWP" -Direction Inbound -Action Block -Package $pkg -Profile Any -Group $group

    • Usuwanie reguł z grupy:

      Get-NetFirewallRule -Group "Block Selected Apps" | Remove-NetFirewallRule

    • Eksport/backup konfiguracji:
      • netsh advfirewall export "%USERPROFILE%\Desktop\firewall.wfw"
  • Windows — wersjonowane ścieżki (np. Discord, Spotify): zablokuj także Update.exe/Updater.exe. Jeżeli ścieżki często się zmieniają, rozważ Simplewall/TinyWall (nakładki na zaporę z automatycznym śledzeniem procesów).
  • Weryfikacja:
    • resmon.exe → zakładka „Sieć”: sprawdź „Procesy z aktywnością sieciową”.
    • Włącz logowanie w „Właściwościach Zapory” (log połączeń zablokowanych) i analizuj wpisy po teście uruchomienia.
  • macOS:
    • Wbudowana Zapora: Ustawienia systemowe → Sieć → Zapora (głównie ruch przychodzący).
    • Do blokady wychodzącej dla konkretnych aplikacji użyj Little Snitch/LuLu/Radio Silence; włącz tryb „deny-by-default” i dodawaj wyjątki tylko dla potrzebnych połączeń.
  • Linux:
    • Najprościej per-aplikacja: firejail bez sieci.
      • sudo apt install firejail
      • firejail --net=none /ścieżka/do/programu
    • Metoda na UID/GID (nftables; utwórz grupę i uruchamiaj w niej program):

      sudo groupadd nonet
      sudo nft add table inet filter
      sudo nft add chain inet filter output { type filter hook output priority 0 \; }
      sudo nft add rule inet filter output meta skgid "nonet" counter reject
      sg nonet "/ścieżka/do/programu"

    • iptables (systemy z iptables-nft):

      sudo groupadd nonet
      sudo iptables -A OUTPUT -m owner --gid-owner nonet -j REJECT
      sg nonet "/ścieżka/do/programu"

Ewentualne zastrzeżenia lub uwagi dodatkowe

  • Brak wildcardów w ścieżkach reguł Windows — każda nowa wersja .exe może wymagać nowej reguły.
  • Niektóre programy „tunelują” ruch przez komponenty systemowe; wtedy blokuj komponent (usługę) lub użyj narzędzi z inspekcją połączeń per-proces (Simplewall, GlassWire, NetLimiter).
  • Edycja pliku hosts i blokady DNS zwykle nie wystarczą (CDN, DoH, IP hardcoded).

Sugestie dalszych badań

  • Automatyzacja aktualizacji reguł dla aplikacji z wersjonowanymi katalogami (skrypt PowerShell wyszukujący najnowszy .exe po wzorcu i odświeżający reguły).
  • Sandboxing aplikacji z wykorzystaniem systemd (Linux) z IPAddressDeny=any lub cgroup/eBPF dla precyzyjnej, niskopoziomowej kontroli ruchu.
  • Na routerze domowym: segmentacja VLAN (IoT/offline), jeśli chcesz globalnie odciąć kategorię urządzeń/aplikacji.

Krótkie podsumowanie

  • Windows: utwórz reguły „Outbound (i opcjonalnie Inbound) → Block” dla wskazanych .exe (GUI lub PowerShell dla wielu programów), nadaj wspólną Grupę, zweryfikuj w resmon/logach.
  • macOS: do blokady ruchu wychodzącego per aplikacja użyj narzędzi zewnętrznych (Little Snitch/LuLu/Radio Silence).
  • Linux: użyj firejail (--net=none) lub reguł nftables/iptables z dopasowaniem po UID/GID i uruchamiaj programy w dedykowanej grupie/użytkowniku.

Jeśli podasz system operacyjny i nazwy konkretnych programów, przygotuję gotowy skrypt/reguły pod Twój przypadek.

Oceń odpowiedź:
Zastrzeżenie: Odpowiedzi udzielone przez sztuczną inteligencję (model językowy) mogą być niedokładne i wprowadzające w błąd. Elektroda nie ponosi odpowiedzialności za dokładność, rzetelność ani kompletność prezentowanych informacji. Wszystkie odpowiedzi powinny być zweryfikowane przez użytkownika.

Zadaj dodatkowe pytanie Sztucznej Inteligencji

Czekaj (2min)...