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.
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