Bloga dön
·9 dk okuma·productdevbook

Mac'te Bir Uygulamanın İnternete Erişimi Nasıl Engellenir

macOS'ta bir uygulamanın internet erişimini sistemin geri kalanını bozmadan engellemenin pratik yolları.

  • macOS
  • Security
  • Privacy
  • Tutorial

2022'de satın aldığınız bir uygulama her başlatmada hâlâ eve telefon ediyor. Bir oyun siz hotspot'tayken 3 GB'lık bir güncelleme indirmek istiyor. Bir tarama yardımcı programı tekrar tekrar güncellemeleri kontrol etmekte ısrarcı. Kaldırmadan ve sisteminizin geri kalanını bozmadan block app from internet mac erişimini tamamen istiyorsunuz.

İyi haber: macOS, kullanıcıların gerçekten ihtiyaç duyduğu block app from internet mac için size birkaç yol verir. Kötü haber: her birinin farklı bir dengesi vardır ve yanlış seçim ya sessizce başarısız olacak ya da bozmak istemediğiniz şeyleri bozacaktır. İşte pratik oyun kitabı.

Mac kullanıcılarının bilmesi gereken block app from internet mac dört yolu

Çoğu insanın nasıl seçeceğine kabaca göre sırasıyla:

  1. Little Snitch — amaç için inşa edilmiş giden güvenlik duvarı. Uygulama başına kurallar, ilk bağlantıda istemler, düzenleme için GUI.
  2. LuLu — Objective-See tarafından ücretsiz, açık kaynaklı giden güvenlik duvarı. Little Snitch'ten daha az cilalı, benzer çekirdek fikir.
  3. macOS Application Firewall + bir ağ filtresi — yerleşik güvenlik duvarı yalnızca gelen trafiği işler. Giden engelleme için bir üçüncü taraf ağ uzantısı veya bir pf kuralına ihtiyacınız var.
  4. /etc/hosts engelleme — kaba, kısmi, ancak bilinen telemetri uç noktaları için kullanışlı.

Tamamen çevrimdışı istediğiniz tek bir uygulama için, 1 veya 2 numaralı seçenekler doğru cevaptır. Diğerleri duruma bağlıdır.

Seçenek 1: Little Snitch (standart)

Little Snitch, giden bağlantıları yakalayan bir Network Extension yükler. Daha önce görmediğiniz bir uygulama eve telefon etmeye çalıştığında, Little Snitch bir istem gösterir: bir kez izin ver, sonsuza kadar izin ver, bir kez reddet, sonsuza kadar reddet — isteğe bağlı kapsamlarla (yalnızca bu ana bilgisayar adı, herhangi bir port vb.).

Bir uygulamayı tamamen engellemek için:

  1. Little Snitch → Network Monitor → Rules'u açın.
  2. Uygulama adını arayın.
  3. Mevcut kurallarını silin ve bir sonraki sefer varsayılan reddetme istemine güvenin veya açık bir "Reddet — /Applications/YourApp.app'tan herhangi bir süreç — herhangi bir bağlantı" ekleyin.
  4. Hedef uygulamayı kapatın ve yeniden başlatın.

Little Snitch ücretli bir yazılımdır, ücretsiz bir demosu vardır (oturum başına 3 saat). Çekirdek seviyesinde güveneceğiniz bir araç için, bir kez ödemek doğru harekettir.

Önemli kural kapsamları

  • Süreç yolu — Little Snitch disk üzerindeki yola göre anahtarlar, böylece bir uygulamayı Sparkle aracılığıyla güncellemek yeniden istem yapabilir. Yeniden onaylayın veya kuralı "herhangi bir sürüm"e ayarlayın.
  • Yardımcı süreçler — Slack, Discord ve Chrome gibi uygulamaların kendi kurallarına ihtiyaç duyan yardımcı ikilileri vardır. Üst öğeye izin verirseniz ve yardımcıyı unutursanız, trafik sızabilir. ova gibi bir izleyici, bunun ne zaman olduğunu görebilmeniz için yardımcıları üst altında katlar.

Seçenek 2: LuLu (ücretsiz)

LuLu, Little Snitch'in yaptıklarını daha küçük bir özellik kümesiyle yapar. Aynı Network Extension modeli, aynı istem ve kural akışı. Trafik grafikleri göstermez veya ana bilgisayar adı tabanlı filtrelemeyi o kadar temiz yapmaz, ancak "bu tek uygulamayı engelle" kullanım durumu için tamamen yeterlidir.

objective-see.org'dan indirin, Applications'a sürükleyin, Network Extension iznini verin ve susturmak istediğiniz ikili için bir reddetme kuralı ekleyin.

Seçenek 3: macOS yerleşik güvenlik duvarı (sınırlı)

macOS Application Firewall Sistem Ayarları → Ağ → Güvenlik Duvarı'nda yaşar. Gelen bağlantıları engeller. Gideni engellemez. Yani "uygulamamın internete konuşmasını durdur" sorusu için yerleşik güvenlik duvarı cevap değildir.

Geleni de engellemek istiyorsanız — örneğin, bir uygulama açığa çıkarmak istemediğiniz bir yerel sunucu çalıştırıyorsa — güvenlik duvarını açın, Seçenekler'e tıklayın ve uygulamayı reddetme listesine ekleyin.

Seçenek 4: /etc/hosts engellemeleri (kısmi)

Belirli telemetri uç noktaları için, ana bilgisayar adını karadeliğe çevirebilirsiniz:

sudo nano /etc/hosts

Ekleyin:

0.0.0.0 telemetry.example.com
0.0.0.0 analytics.example.com

Ctrl-O ile kaydedin, Ctrl-X ile çıkın. Sonra DNS'i temizleyin:

sudo dscacheutil -flushcache
sudo killall -HUP mDNSResponder

Bu yalnızca sistem DNS'ini gerçekten kullanan uygulamalar için çalışır. IP'leri sabit kodlayan veya kendi DNS'lerini kullanan uygulamalar /etc/hosts'u tamamen atlar. DoH kullanan tarayıcılar onu atlar. Yani /etc/hosts'u bilinen uç noktalar için bir keskin nişancı tüfeği olarak değerlendirin, genel amaçlı bir blok değil.

Herkesin atladığı doğrulama adımı

Engellemeyi kurmak işin yarısıdır. Diğer yarısı çalıştığını doğrulamaktır. Ayrı bir izleme aracının yerini hak ettiği yer burasıdır.

Desen:

  1. Little Snitch / LuLu / hosts dosyasında engellemeyi ayarlayın.
  2. Menü çubuğunuzda ova'yı açın. Uygulama başına trafiği yaklaşık 1 Hz'de örnekler.
  3. Hedef uygulamayı başlatın ve kullanın. Tıklayın. Eskiden eve telefon eden eylemi tetikleyin — güncellemeleri kontrol edin, giriş yapın, senkronize edin.
  4. Uygulama başına satırı izleyin. Yukarı ve aşağı 0 KB/sn'de kalırsa, blok tutar. Giden bir şey görürseniz, bir sızıntınız var.

Sızıntıların olmasının iki nedeni:

  • Yardımcı süreç kapsanmamış. Üst uygulama reddedildi, ancak Slack Helper veya Updater.app'in kendi izin veren kuralı var.
  • Engellemeden önce önbelleğe alınmış bağlantı. Uygulama, kural var olmadan önce uzun ömürlü bir bağlantı açtı. Uygulamadan tamamen çıkın (sağ tıklama → Çıkış veya Cmd-Q) ve yeniden başlatın.
Canlı doğrulama
Bir Little Snitch reddetme kuralı ayarladıktan sonra, sıfır trafiği doğrulamak için ova'yı kullanın. Yardımcı süreçler üst altında katlanır, böylece ayrı bir PID'den bir sızıntıyı kaçırmazsınız.

Özel durumlar

LAN erişimini korurken bir uygulamayı engelleyin

Bazı uygulamaların AirPlay hoparlörünüze veya yerel yazıcınıza konuşması gerekir ancak internete ulaşmamalıdır. Little Snitch'te "herhangi birini reddet"i ayarlayın, sonra LAN ve Multicast/Broadcast için bir izin verme istisnası ekleyin. macOS Yerel Ağ izni de bunu kapı tutar — Sistem Ayarları → Gizlilik ve Güvenlik → Yerel Ağ'ı kontrol edin ve uygulamanın LAN'a hiç ihtiyacı yoksa iptal edin.

Wi-Fi'da bir uygulamayı engelleyin ancak ethernette izin verin

Little Snitch profilleri destekler. "Coffee Shop" ve "Home" için bir tane oluşturun, farklı kurallar ekleyin, menü çubuğu üzerinden geçin.

Yalnızca güncellemeleri engelleyin, diğer her şeye izin verin

Çoğu uygulama güncelleme trafiğini özellik trafiğinden ayırır. Updater ikilisini bulun (genellikle YourApp.app/Contents/Library/LoginItems/ veya /Library/LaunchDaemons/ içinde) ve o belirli yol için bir reddetme kuralı ekleyin. Uygulamayı çalıştırın, ova'yı izleyin — özellikler hâlâ çalışmalı, güncellemeler günlükte bir ağ hatasıyla başarısız olmalıdır.

Güvenlik duvarı engellemelerinizin gerçekten tuttuğunu doğrulayın

ova canlı uygulama başına trafiği gösterir, böylece bir Little Snitch kuralının işini yaptığını doğrulayabilirsiniz — yerel, imzalanmış, ~3 MB.

Download for macOS

Çalışılmış bir örnek: konuşkan bir yardımcı programı susturma

Diyelim üç yıl önce bir ekran görüntüsü yardımcı programı satın aldınız. Ömür boyu lisans, sessiz olurdu, şimdi her başlatmada eve telefon ediyor ve yeni sahipliğe güvenmiyorsunuz.

  1. Little Snitch'i yükleyin. Kuralların nasıl hissettirdiğini görmek için ilk saat deneme iyi.
  2. Ekran görüntüsü yardımcı programını başlatın. Little Snitch istem yapar: "Snipster api.snipster.app'a bağlanmak istiyor". Reddet → Sonsuza Kadar → herhangi bir port'a tıklayın.
  3. Uygulamayı bir hafta kullanın. Özellikler çalışıyorsa, reddetme tuttu. Bir özellik bozulursa, neyi aramaya çalıştığına bakın — Little Snitch'in günlüğünde olacak — ve belirli uç noktaya izin vermeye karar verin.
  4. Yanında ova çalıştırın. Normal kullanım sırasında uygulama başına oranın 0 KB/sn'de kaldığını doğrulayın.

Bu desen, işini yerel olarak yapmak için aslında internete ihtiyacı olmayan herhangi bir uygulama için çalışır.

Engellemelerin düzeltmeyeceği şeyler

Dürüst olunması gereken birkaç şey:

  • APNs aracılığıyla push bildirimleri. macOS Apple Push'u uygulama yerine apsd üzerinden yönlendirir. Uygulamayı engellemek bildirimlerini engellemez. Bunun yerine Sistem Ayarları'nda bildirimleri devre dışı bırakın.
  • Sistem uzantıları ve arka plan programları. Bazı uygulamalar /Library/LaunchDaemons/ altında arka plan programları yükler. Uygulamayı öldürmek arka plan programını öldürmez. Uygulamanın resmi kaldırıcısını kullanın veya launchctl list | grep -i appname aracılığıyla arka plan programlarını listeleyin.
  • IP'leri sabit kodlayan uygulamalar. Nadir ama var. Little Snitch'te ana bilgisayar adı yerine IP ile engelleyin.
  • XPC hizmetleri kullanan sandbox'lı App Store uygulamaları. Bazen kullanıcıya görünür uygulama sessizdir ve bir XPC yardımcısı konuşmayı yapar. Yardımcı süreçlerle aynı düzeltme — Little Snitch'in süreç ağacında bulun, bir kural ekleyin.

"İzleyici + güvenlik duvarı"nın neden dayanıklı kurulum olduğu

Yalnızca bir güvenlik duvarı çalıştırabilirsiniz. Yalnızca bir izleyici çalıştırabilirsiniz. Çoğu deneyimli Mac kullanıcısı her ikisini de çalıştırır:

  • Güvenlik duvarı (Little Snitch / LuLu) politikayı belirler ve çekirdekte engeller.
  • İzleyici (ova veya benzer) gerçeği gösterir — ne hâlâ konuşuyor, ne kadar, ne zaman.

İkisi farklı sorulara cevap verir. "Kuralım çalıştı mı?" bir izleyici sorusudur. "Hangi yeni uygulama eve telefon etmeye çalışıyor?" bir güvenlik duvarı istem sorusudur. Birlikte size tam bir resim verirler.

Toparlarken

Uçtan uca block app from internet mac erişimini engellemek için: engelleme için Little Snitch veya LuLu kullanın, gelene de ihtiyacınız varsa yalnızca macOS Application Firewall ve DNS tabanlı engelleme yeterli olduğunda bilinen uç noktalar için /etc/hosts. Sonra bir izleyiciyle doğrulayın, çünkü doğrulamadığınız bir kural aslında sahip olmadığınız bir kuraldır.

Çoğu uygulama, ağı kestiğinizde çevrimdışı iyi çalışır. Çalışmayanları hızla öğreneceksiniz — ve hangi özelliklerin ilk başta gerçekten yerel olduğu hakkında faydalı bir şey öğrenmiş olacaksınız.