OpenSnitch GNU/Linux इंटरैक्टिव एप्लिकेशन फ़ायरवॉल
(github.com/evilsocket)- OpenSnitch GNU/Linux के लिए एक एप्लिकेशन फ़ायरवॉल है, जो एप्लिकेशन के बाहरी कनेक्शनों को इंटरैक्टिव तरीके से फ़िल्टर करने पर केंद्रित है
- यह पूरे सिस्टम में विज्ञापन, ट्रैकर और malware domains को ब्लॉक कर सकता है, और GUI में nftables-आधारित सिस्टम फ़ायरवॉल भी सेट किया जा सकता है
- GUI इनपुट पॉलिसी सेट करने, inbound services को अनुमति देने जैसी system rules configuration को सपोर्ट करता है, और कई nodes को centrally manage किया जा सकता है
- इंस्टॉलेशन में deb/rpm पैकेज डाउनलोड करके
aptयाdnfसे install करने के बादopensnitch-uiचलाना या application menu से GUI खोलना शामिल है - अनपेक्षित कनेक्शनों को intercept करने के उदाहरण साझा करने के लिए Show and tell discussion space और SIEM integration देता है, जिससे operational environments में connection monitoring के लिए इसका उपयोग किया जा सकता है
OpenSnitch क्या करता है
- OpenSnitch GNU/Linux application firewall है
- इसका core function applications के outbound connections को interactive तरीके से filter करना है
- पूरे सिस्टम में विज्ञापन, tracker और malware domains को ब्लॉक करना support करता है
फ़ायरवॉल और node management features
- GUI में system firewall settings configure की जा सकती हैं
- nftables-आधारित settings को handle करता है
- input policy configuration, inbound services को allow करना आदि set किए जा सकते हैं
- Central GUI से कई nodes manage किए जा सकते हैं
- SIEM integration support करता है
डाउनलोड और इंस्टॉलेशन
- deb/rpm पैकेज GitHub Releases से डाउनलोड किए जा सकते हैं
- deb package install करना:
sudo apt install ./opensnitch*.deb ./python3-opensnitch-ui*.deb
- rpm package install करना:
sudo dnf install opensnitch*.rpm
- Install करने के बाद
opensnitch-uiचलाएँ या application menu से GUI शुरू करें - ज़्यादा विस्तृत installation जानकारी के लिए documentation देखें
उपयोग के मामले और भागीदारी
- OpenSnitch द्वारा अनपेक्षित connections intercept करने के उदाहरण Show and tell discussion में इकट्ठा किए गए हैं
- अगर कोई अनपेक्षित connection मिले, तो उसे नई discussion के रूप में submit किया जा सकता है
Project जानकारी
- OpenSnitch GPL3 license का उपयोग करता है
- Sponsorship GitHub repository के दाईं ओर Sponsor this project section से की जा सकती है
- मौजूदा maintainers master branch commit history में देखे जा सकते हैं
- Contributors की list contributors graph में देखी जा सकती है
- Translation Weblate पर की जाती है
1 टिप्पणियां
Hacker News की टिप्पणियां
OpenSnitch को interactive firewall के रूप में काफ़ी इस्तेमाल करने की कोशिश की, लेकिन एक समस्या है—OpenSnitch की गलती से ज़्यादा, मुझे यह भी नहीं पता कि इसे हल किया जा सकता है या नहीं
उदाहरण के लिए, terminal में
curlचलाने पर हर बार अनुमति देनी है या नहीं तय करना पड़ता है, या उसे स्थायी रूप से allowlist में डालना पड़ता हैलेकिन अगर
curlयाwgetजैसे सामान्य-purpose tools को allow कर दें, तो compromised machine पर malware भी उन्हीं tools का इस्तेमाल करके firewall alert के बिना इंटरनेट तक जा सकता है, यानी दरवाज़ा पूरी तरह खुल जाता हैनया access होने पर allow करना है या नहीं पूछा जाएगा—यह भरोसा शुरुआती झंझट के लायक है, और आदत पड़ने पर management भी काफ़ी आसान हो जाता है
expiring rules भी अक्सर इस्तेमाल करता हूं। जैसे, अगर किसी installer पर भरोसा करके उसे थोड़ी देर खुली छूट देनी हो, तो executable के लिए निकट भविष्य में expire होने वाला rule खोल देता हूं। विकल्प permanent, reboot तक, अगले 30 seconds, अगले 5 minutes वगैरह हैं, और बहुत सारे endpoints वाले काम भी काफ़ी सरल हो जाते हैं, बिना कोई permanent hole छोड़े
devuser के लिए सभीcurl/wgettraffic allow किया जा सकता है, औरnormaluser से detect करते रह सकते हैंdevelopment tasks को
su -c curl … devजैसे चलाना होगाअगर malicious program सामान्य user space में चल रहा है, तो app firewall
curlऔरwgetके इस्तेमाल को ठीक से पकड़ सकता हैहर बार password डालना झंझट है, इसलिए PAM को YubiKey या biometric authentication के साथ set कर सकते हैं, और इस user को login-ineligible और password-less रखना चाहिए
curlयाwgetका नाम बदला भी जा सकता हैmobile पर application-level firewall इस्तेमाल करता हूं, लेकिन program name को allowlist में डालने के बजाय किसी specific program को किसी specific domain/IP address तक access की अनुमति देता हूं
अनुभव के हिसाब से किसी program या malware के external communication को रोकने का सबसे आसान तरीका DNS access block करना है। दशकों से ऐसा कर रहा हूं और अब भी यह बेहतरीन काम करता है। external communication करने वाले programs/malware का “99%” hardcoded IP पर नहीं, DNS पर निर्भर होता है
जिन दुर्लभ programs/malware को DNS की जरूरत नहीं होती, उन्हें भी detect करना आसान है, और DNS में सिर्फ़ specific domains allow करता हूं। आजकल जरूरी IP addresses वाली local zone file भी नहीं रखता; forward proxy domain→IP mapping संभालता है। proxy जिस allowlist को पढ़ता है, वह zone file जैसी है लेकिन उससे भी simple text file है
bash/zsh, तोcurlको pass कर दे और नहीं तो block करे। हालांकि यह काफ़ी झंझट वाला लगता हैउदाहरण के लिए, अगर
curlचला और parent list में ऊपर जाते हुए/usr/bin/trustedनाम का process मिला, तो इसcurlinvocation को allow करने की घोषणा कर सकना चाहिए। तब जब तक bash script का parent/usr/bin/trustedहै, उस script सेcurlचलाने की अनुमति दी जा सकती हैयही आखिरकार मुझे NixOS पर ले जाने की वजह बना
पहले application firewall इस्तेमाल करते समय बहुत configuration करनी पड़ती थी, updates से path बदलते तो अक्सर टूट जाता था, और नए computer पर जाने पर सब कुछ फिर से करना पड़ता था, जिससे churn और waste बहुत था
package manager के साथ integrate करने पर ऐसी समस्याएं खत्म हो गईं। allowlist की initial setup पूरी हो जाए, तो nix configuration में नया package जोड़ते समय बस थोड़ा काम करना पड़ता है
अगर nix configuration में allowlist जोड़ना झंझट लगे, तो अगली reboot तक रहने वाली temporary allowlist डाल सकते हैं। learning curve steep था और काम भी बहुत था, लेकिन अब maintenance बेहद आसान है
बहुत ज़्यादा connections बनाने वाले बेढंगे apps पकड़ने के लिए अच्छा है। Thunderbird, तुमसे ही कह रहा हूं
पसंद है, लेकिन एक छोटी असुविधा भी है। expired temporary rules interface से delete या hidden नहीं होते, इसलिए कभी-कभी GUI restart करके उन्हें साफ़ करना पड़ता है
Fedora पर firewalld/firewall-config से छेड़छाड़ करने के बजाय मैं इसकी सिफारिश कर सकता हूं
dnfजब भी update करता है तो महाद्वीप भर में servers टटोलता है—इसे कैसे handle करें?https://news.ycombinator.com/item?id=41124755
बस allow भी कर सकते हैं, लेकिन मैं ऐसा नहीं करना चाहता
Docker containers में API या web services चलाते समय ऐसी functionality हो तो अच्छा होगा
containerA: सभी outbound traffic allowcontainerB: client को response देने के मामलों को छोड़कर outbound traffic blockcontainerC: सिर्फ़updates.example.comतक accessक्या यह बस per-container iptables है? मौजूदा image में iptables जोड़ सकते हैं, लेकिन काम ज़्यादा लगता है। या फिर host पर iptables से handle करने वाला तरीका है?
Android phone पर भी ऐसा कुछ है? अच्छी recommendations जानना चाहूंगा
https://netguard.me
AFWall+ लंबे समय तक इस्तेमाल किया है; हर app के लिए Wi-Fi, cellular, LAN allow या block करने का control साफ़-सुथरा है। यह iptables/nftables frontend है, इसलिए जितने चाहें rules customize कर सकते हैं: https://github.com/ukanth/afwall
Android 2+ से काम करता है
root न हो तो Adguard जैसे VPN-based solutions ही संभव हैं
अगर stats चाहिए तो GlassWire का Android version भी है। मैंने केवल beta इस्तेमाल किया है, इसलिए वर्तमान स्थिति नहीं जानता, लेकिन देखने लायक है
"Rethink: DNS + Firewall + VPN"app में मिलती-जुलती functionality हैऊपर बताए गए NetGuard से इसी पर switch किया
Arch और OpenSUSE packages भी हों तो अच्छा होगा
opensnitchहै, और AUR मेंopensnitch-ebpf-moduleहैUFW जैसी चीज़ से तुलना करें तो कैसा है? असली बात ongoing activity देखने वाला UI है क्या?
अगर कोई arbitrary app telemetry call जैसी चीज़ करे, तो आप granular white/greylist बना सकते हैं—जैसे इस executable से इस address तक connection ही allow करना है, या यह address हमेशा allow करना है—और duration options भी हैं, जैसे one-time, 15 seconds के लिए, reboot तक
इस्तेमाल और भरोसे वाले apps को allowlist में डालने की शुरुआती बाधा पार कर लें तो यह काफ़ी अच्छा है, और apps या games क्या कर रहे हैं, जो पहले पता नहीं था, उसे अच्छी तरह दिखाता है
क्या इसे macOS पर port करने की कोई योजना है? कुछ समय तक Little Snitch इस्तेमाल किया था, लेकिन payment से अलग वजहों से मैं open source को ज़्यादा पसंद करता हूं
कई बार बीच-बीच में इस्तेमाल करने की कोशिश की, लेकिन random crashes इतने ज़्यादा थे कि इसे इस्तेमाल करना काफ़ी मुश्किल था