OpenSnitch: GNU/Linux için etkileşimli uygulama güvenlik duvarı
(github.com/evilsocket)- OpenSnitch, GNU/Linux için bir uygulama güvenlik duvarıdır; uygulamaların dış bağlantılarını etkileşimli olarak filtrelemeye odaklanır
- Sistem genelinde reklam, izleyici ve kötü amaçlı yazılım alan adlarını engelleyebilir; GUI üzerinden nftables tabanlı sistem güvenlik duvarı da yapılandırılabilir
- GUI, giriş politikası ayarları ve inbound servislerine izin verme gibi sistem kuralları yapılandırmasını destekler; birden çok düğüm merkezi olarak yönetilebilir
- Kurulum, deb/rpm paketlerini indirip
aptveyadnfile yükledikten sonraopensnitch-uiçalıştırılarak ya da uygulama menüsünden GUI açılarak yapılır - Beklenmeyen bağlantıları yakalama örneklerinin paylaşıldığı Show and tell tartışma alanı ve SIEM entegrasyonu sunarak operasyon ortamlarında bağlantı izleme için kullanılabilir
OpenSnitch ne yapar
- OpenSnitch, bir GNU/Linux uygulama güvenlik duvarıdır
- Temel işlevi, uygulamaların outbound bağlantılarını etkileşimli olarak filtrelemektir
- Sistem genelinde reklam, izleyici ve kötü amaçlı yazılım alan adlarını engellemeyi destekler
Güvenlik duvarı ve düğüm yönetimi özellikleri
- GUI üzerinden sistem güvenlik duvarı ayarları yapılandırılabilir
- nftables tabanlı ayarları kapsar
- Giriş politikası yapılandırması, inbound servislerine izin verme vb. ayarlanabilir
- Merkezi GUI üzerinden birden çok düğüm yönetilebilir
- SIEM entegrasyonunu destekler
İndirme ve kurulum
- deb/rpm paketleri GitHub Releases üzerinden indirilebilir
- deb paketi kurulumu:
sudo apt install ./opensnitch*.deb ./python3-opensnitch-ui*.deb
- rpm paketi kurulumu:
sudo dnf install opensnitch*.rpm
- Kurulumdan sonra
opensnitch-uiçalıştırılır veya uygulama menüsünden GUI başlatılır - Ayrıntılı kurulum bilgileri için belgelere bakın
Kullanım örnekleri ve katılım
- OpenSnitch’in beklenmeyen bağlantıları yakaladığı örnekler Show and tell tartışmalarında toplanır
- Beklenmeyen bir bağlantı fark ederseniz yeni tartışma olarak gönderebilirsiniz
Proje bilgileri
- OpenSnitch, GPL3 lisansını kullanır
- Sponsorluk, GitHub deposunun sağ tarafındaki Sponsor this project bölümünden yapılabilir
- Mevcut bakımcılar master dalı commit geçmişinden görülebilir
- Katkıda bulunanlar listesi contributors grafiğinde görülebilir
- Çeviri Weblate üzerinde yürütülür
1 yorum
Hacker News yorumları
OpenSnitch'i etkileşimli güvenlik duvarı olarak çok kullanmayı denedim, ancak OpenSnitch'in hatasından çok, çözülüp çözülemeyeceğini bile bilmediğim bir sorun var.
Örneğin terminalde
curlçalıştırdığınızda her seferinde izin verip vermemeye karar vermeniz ya da kalıcı olarak izin listesine eklemeniz gerekiyor.Ama
curlveyawgetgibi genel amaçlı araçlara izin verirseniz, ele geçirilmiş bir makinedeki kötü amaçlı yazılım da bu araçları kullanarak güvenlik duvarı uyarısı olmadan internete çıkabilir; yani kapı ardına kadar açılır.Yeni bir erişim olduğunda izin sorulmasının verdiği güven hissi, başlangıçtaki zahmete değer; alışınca yönetimi de epey kolaylaşır.
Süresi dolan kuralları da sık kullanıyorum. Örneğin bir kurulum programına güvenip kısa süreliğine serbest bırakmak istersem, çalıştırılabilir dosya için yakın gelecekte süresi dolacak bir kural açıyorum. Seçenekler kalıcı, yeniden başlatmaya kadar, sonraki 30 saniye, sonraki 5 dakika vb.; çok uç noktalı işler de çok daha basitleşiyor ve kalıcı bir açık bırakmıyor.
devkullanıcısı için tümcurl/wgettrafiğine izin verip,normalkullanıcısında algılamaya devam etmek de mümkün görünüyor.Geliştirme işleri
su -c curl … devile çalıştırılabilir.Kötü amaçlı bir program normal kullanıcı alanında çalışıyorsa, uygulama güvenlik duvarı
curlvewgetkullanımını uygun şekilde yakalayabilir.Her seferinde parola girmek can sıkıcı olduğundan PAM'i YubiKey veya biyometrik doğrulamayla ayarlamak da mümkün; ayrıca bu kullanıcı oturum açamaz olmalı ve parolası da olmamalı.
curlveyawgetin adını değiştirebilirsiniz.Mobilde uygulama seviyesinde güvenlik duvarı kullanıyorum, ama program adını izin listesine almıyorum; belirli bir programın belirli alan adlarına/IP adreslerine erişmesine izin veriyorum.
Deneyimlerime göre bir programın veya kötü amaçlı yazılımın dış dünyayla iletişimini engellemenin en kolay yolu DNS erişimini engellemek. On yıllardır bunu yapıyorum ve hâlâ kusursuz çalışıyor. Dış iletişim kuran programların/kötü amaçlı yazılımların “%99”u sabit kodlanmış IP'lere değil DNS'e dayanıyor.
DNS'e ihtiyaç duymayan nadir programları/kötü amaçlı yazılımları tespit etmek de kolay; DNS tarafında yalnızca belirli alan adlarına izin veriyorum. Günümüzde gerekli IP adreslerini içeren yerel zone dosyası da kullanmıyorum; ileri proxy, alan adı→IP eşlemesini hallediyor. Proxy'nin okuduğu izin listesi zone dosyasına benziyor ama daha basit bir metin dosyası.
bash/zshisecurle izin verip değilse engelleyecek şekilde ayarlanamaz mı diye düşünüyorum. Gerçi epey zahmetli görünüyor.Örneğin
curlçalıştırıldığında ve ebeveyn listesinde geriye doğru gidilirken/usr/bin/trustedadlı bir süreç bulunursa, bucurlçağrısına izin verilecek şekilde tanımlanabilmeli. Böylece bir bash betiğinin ebeveyni/usr/bin/trustedolduğu sürece, o betiktencurlçalıştırılmasına izin verilebilir.Beni sonunda NixOS'a geçiren şey buydu.
Eskiden uygulama güvenlik duvarı kullandığımda çok fazla yapılandırma vardı; güncellemelerle yollar değişince sık sık bozuluyordu ve yeni bilgisayara geçtiğimde hepsini baştan yapmak gerekiyordu, bu da çok fazla churn ve israftı.
Paket yöneticisiyle entegre edince bu sorunlar ortadan kalktı. İzin listesinin ilk kurulumunu tamamladıktan sonra, nix yapılandırmasına yeni paket eklerken yalnızca biraz iş yapmak gerekiyor.
nix yapılandırmasına izin listesi eklemek zahmetli gelirse, yalnızca bir sonraki yeniden başlatmaya kadar geçerli geçici bir izin listesi ekleyebilirsiniz. Öğrenme eğrisi dik ve iş yükü fazlaydı, ama artık bakımı çok kolay.
Aşırı çok bağlantı açan özensiz uygulamaları yakalamak için iyi. Thunderbird, sana diyorum.
Hoşuma gidiyor ama küçük bir sıkıntısı da var. Süresi dolmuş geçici kurallar arayüzden silinmiyor veya gizlenmiyor; bu yüzden ara sıra GUI'yi yeniden başlatıp temizlemek gerekiyor.
Fedora'da firewalld/firewall-config ile uğraşmaktansa bunu önerebilirim.
dnfher güncellemede kıtanın dört bir yanını yokladığında bunu nasıl ele almak gerekir?https://news.ycombinator.com/item?id=41124755
Sadece izin verebilirim, ama bunu yapmak istemiyorum.
Docker konteynerlerinde API veya web servisi çalıştırırken böyle bir özellik olsa güzel olurdu.
containerA: tüm çıkış trafiğine izin vercontainerB: istemciye yanıt verdiği durumlar dışında çıkış trafiğini engellecontainerC: yalnızcaupdates.example.coma erişebilirBu sadece konteyner başına iptables mı? Mevcut imajlara iptables yerleştirilebilir ama çok iş gibi görünüyor. Yoksa bunu host üzerinde iptables ile mi yapmak gerekir?
Android telefonlar için de böyle bir şey var mı? İyi önerileri merak ediyorum.
https://netguard.me
AFWall+'ı uzun süre kullandım; uygulama başına Wi‑Fi, hücresel veri ve LAN için izin verme/engelleme denetimi gayet temiz. iptables/nftables ön ucu olduğu için kuralları istediğiniz kadar özelleştirebilirsiniz: https://github.com/ukanth/afwall
Android 2+ sürümlerinden itibaren çalışır.
Root yoksa yalnızca Adguard gibi VPN tabanlı çözümler mümkün.
İstatistik gerekiyorsa GlassWire'ın Android sürümü de var. Sadece beta sürümünü denedim, mevcut durumunu bilmiyorum ama bakmaya değer.
"Rethink: DNS + Firewall + VPN"uygulamasında benzer işlevler var.Yukarıda bahsedilen NetGuard'dan buna geçtim.
Arch ve OpenSUSE paketleri de olsa iyi olurdu.
opensnitchvar, AUR'da iseopensnitch-ebpf-modulebulunuyor.UFW gibi şeylerle karşılaştırınca nasıl? Asıl noktanın devam eden etkinliği gösteren UI olup olmadığını merak ediyorum.
Rastgele bir uygulama telemetri çağrısı gibi bir şey yaptığında, bu çalıştırılabilir dosyadan bu adrese bağlantıya mı izin verileceği, bu adrese her zaman mı izin verileceği gibi ayrıntılı beyaz/gri listeleme yapabilirsiniz; ayrıca tek seferlik, 15 saniyeliğine, yeniden başlatmaya kadar gibi süre seçenekleri de vardır.
Kullandığınız ve güvendiğiniz uygulamaları izin listesine alma şeklindeki başlangıç eşiğini aştıktan sonra oldukça iyi; uygulamaların veya oyunların ne yaptığını bilmediğiniz noktaları güzel gösteriyor.
Bunu macOS'a port etme planı var mı? Bir süre Little Snitch kullandım, ama ödeme dışı nedenlerle açık kaynak olanı daha çok tercih ederim.
Birkaç kez aralıklı olarak kullanmayı denedim, ama rastgele çökmeler çok fazla olduğu için kullanması epey zordu.