2 पॉइंट द्वारा GN⁺ 22 일 전 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • यह एक ऐसा टूल है जिससे एप्लिकेशनों के network connections को visualize और control किया जा सकता है, और यह देखा जा सकता है कि कौन-सा प्रोग्राम किस server से communicate कर रहा है
  • Connections View में real-time और पुराना traffic app के हिसाब से दिखता है, और एक क्लिक में connection block करने तथा data usage track करने की सुविधा मिलती है
  • Blocklists और Rules फीचर के जरिए अनचाहे traffic को category या विस्तृत शर्तों के आधार पर बारीकी से control किया जा सकता है
  • अंदरूनी तौर पर यह eBPF का उपयोग करके kernel level पर connections को monitor करता है, और web UI के जरिए PWA रूप का interface देता है
  • यह security tool नहीं बल्कि privacy-केंद्रित tool है; सामान्य software की बाहरी communications को block करने के लिए उपयुक्त है, लेकिन advanced attacks से बचाव में इसकी सीमाएँ हैं

अवलोकन

  • Little Snitch for Linux एक ऐसा टूल है जो एप्लिकेशनों के network connections को real-time में visualize और control कर सकता है
    • यह देखा जा सकता है कि कौन-सा application किस server से communicate कर रहा है
    • अनचाहे connections को block करना, traffic logs रखना, और data usage track करने की सुविधा देता है
  • Linux kernel 6.12 या उससे ऊपर और BTF kernel support आवश्यक है
  • web UI को http://localhost:3031/ पर access किया जा सकता है, और इसे PWA (Progressive Web App) के रूप में install किया जा सकता है

कनेक्शन मॉनिटरिंग

  • Connections View में मौजूदा और पिछले network activity को application के हिसाब से दिखाया जाता है
    • rules और blocklists द्वारा blocked items, data usage, और traffic history दिखाई जाती है
    • हाल की activity, data की मात्रा, और नाम के आधार पर sort और filter किया जा सकता है
    • एक क्लिक में connection block किया जा सकता है
  • नीचे दिया गया traffic diagram समय के साथ data की मात्रा को visualize करता है
    • किसी खास हिस्से को drag करके zoom करने पर केवल उसी अवधि की activity filter होकर दिखाई जाती है

ब्लॉकलिस्ट प्रबंधन

  • Blocklists फीचर से अनचाहे traffic categories को एक साथ block किया जा सकता है
    • remote source से अपने-आप download होकर updated रहता है
    • supported formats: प्रति domain एक line, प्रति hostname एक line, /etc/hosts format (IP + hostname), CIDR network range
    • wildcard, regular expression, glob, और URL-आधारित formats समर्थित नहीं हैं

      • efficiency के लिए domain-based lists का उपयोग recommended है
      • उदाहरण lists: Hagezi, Peter Lowe, Steven Black, oisd.nl
      • macOS के लिए .lsrules format Linux version के साथ compatible नहीं है

कस्टम नियम

  • Rules फीचर blocklists की तुलना में अधिक बारीक control देता है
    • इसे specific process, port, और protocol के स्तर पर configure किया जा सकता है
    • rules list को sort और filter किया जा सकता है
  • rules के जरिए विस्तृत network control policy बनाई जा सकती है

एक्सेस सुरक्षा

  • डिफ़ॉल्ट रूप से web interface को local पर चल रहे सभी processes access कर सकते हैं
    • malicious applications द्वारा rules बदलने, blocklists संशोधित करने, या filters disable करने की संभावना रहती है
  • इसे रोकने के लिए authentication required सेट किया जा सकता है
    • विस्तृत settings advanced configuration में की जाती हैं

आंतरिक संरचना

  • eBPF का उपयोग करके Linux network stack में hook किया जाता है
    • eBPF program outgoing connections को monitor करता है और data को daemon तक पहुँचाता है
    • daemon statistics tracking, rules processing, और web UI उपलब्ध कराने का काम करता है
  • eBPF program और web UI का source code GitHub पर public है

उन्नत कॉन्फ़िगरेशन

  • मूल UI केवल मुख्य settings दिखाता है, जबकि advanced settings को text files से configure किया जाता है
    • बदलाव के बाद littlesnitch daemon को restart करना आवश्यक है
  • default settings path: /var/lib/littlesnitch/config/
    • इसे सीधे edit न करें; जिस file को बदलना हो उसे /var/lib/littlesnitch/overrides/config/ में copy करके edit करें
    • override directory की settings हमेशा प्राथमिकता से लागू होती हैं
  • मुख्य settings files
    • web_ui.toml: network address, port, TLS, authentication settings
      • यदि कई users access कर सकते हों, तो authentication enable करना आवश्यक है
      • loopback के बाहर expose करने पर अतिरिक्त TLS आवश्यक है
    • main.toml: rules से match न होने वाले connections के default behavior की setting
      • default रूप से allow है, आवश्यकता होने पर deny में बदला जा सकता है
      • गलत configuration पर system access बंद होने का जोखिम है
    • executables.toml: executable grouping rules
      • version numbers हटाकर एक ही app के कई versions को एक रूप में दिखाया जा सकता है
      • shell और app management processes के parent relationships define किए जा सकते हैं
      • community feedback के आधार पर इसमें लगातार सुधार होता है
  • eBPF program और web UI को user-built versions से बदला जा सकता है
    • override directory में मौजूद version को प्राथमिकता दी जाती है

सीमाएँ

  • इसे security tool नहीं बल्कि privacy tool के रूप में डिजाइन किया गया है
    • यह macOS version की तुलना में सरल है, और eBPF constraints के कारण इसकी functional limitations हैं
  • eBPF में storage space और program complexity की सीमाएँ होती हैं
    • traffic बहुत अधिक होने पर cache tables भर सकती हैं, जिससे packets, processes, और DNS names के बीच mapping अधूरी हो सकती है
    • IP address से मूल queried hostname को restore करते समय heuristics का उपयोग किया जाता है
    • macOS version deep packet inspection (DPI) से अधिक सटीक mapping करता है
  • सामान्य software की बाहरी communications को monitor और block करने के लिए यह उपयुक्त है, लेकिन advanced attackers के खिलाफ system defense के लिए उपयुक्त नहीं है

लाइसेंस

  • यह 3 components से बना है
    • eBPF kernel program और web UI को GNU GPL v2 के तहत public किया गया है, और GitHub पर उपलब्ध हैं
    • daemon(littlesnitch --daemon) proprietary है, लेकिन मुफ़्त उपयोग और redistribution की अनुमति है

1 टिप्पणियां

 
GN⁺ 22 일 전
Hacker News की राय
  • मैं Little Snitch या Open Snitch इस्तेमाल नहीं करता, लेकिन यह जानने की जिज्ञासा थी कि क्या अनुमत प्रोग्राम का दुरुपयोग करने वाले अनुरोधों को भी ब्लॉक किया जा सकता है
    उदाहरण के लिए, अगर suspicious.py Firefox को कॉल करके डेटा अपलोड करे, तो क्या फ़ायरवॉल इसे रोक सकता है

    • Little Snitch for Linux नियमों का मूल्यांकन करते समय process और parent process के namespace दोनों को साथ में देखता है
      अगर स्क्रिप्ट को #!/bin/interpreter से चलाया जाए तो स्क्रिप्ट पाथ पर नियम लागू होते हैं, लेकिन interpreter script फ़ॉर्मेट में चलाने पर व्यवहार अलग होता है
    • साधारण नियमों से यह ब्लॉक नहीं होगा
      Open Snitch में parent tree में python process शामिल है या नहीं जैसी शर्तों के आधार पर बारीकी से matching की जा सकती है
    • library loading या process के बीच memory manipulation (जैसे: OpenProcess, WriteProcessMemory, CreateRemoteThread) तक सोचें तो मामला बहुत अधिक जटिल हो जाता है
      पुराने Windows फ़ायरवॉल Outpost और Zone Alarm ऐसे व्यवहार को पहचानने के लिए Leak Control फीचर देते थे
    • SELinux की MAC policies का उपयोग करके हर process किन files और ports तक पहुँच सकता है, इसे सीमित किया जा सकता है
      ज़्यादातर distributions में यह सुविधा होती है, लेकिन आम उपयोगकर्ता नियम सीखने या सेट करने का काम कम ही करते हैं
  • Fedora 43 पर चलाकर देखा, लेकिन इसने सभी CPU cores घेर लिए और 50K lines के logs छोड़कर fail हो गया
    BPF_PROG_LOAD syscall returned Argument list too long त्रुटि आई

    • डेवलपर ने कहा कि Fedora पर test नहीं किया गया था
      ARM64 VM में load तो होता है, लेकिन process की पहचान नहीं कर पाता
      eBPF compatibility issues की जाँच चल रही है और सीमित resources के कारण समय लगेगा
    • इस पर पहले से GitHub issue दर्ज है
    • आधिकारिक download page के अनुसार यह Btrfs file system पर काम नहीं करता
      Fedora का default file system Btrfs होने के कारण process identification संभव नहीं है, और इसे version 1.0.1 में ठीक करने की योजना है
    • मुझे भी यही समस्या हुई। CPU का आधा ही उपयोग करता है, लेकिन web UI काम नहीं करता
    • यही तो सामान्य Linux अनुभव है। 2026 को Linux desktop का साल कहना मज़ाक जैसा लगता है
  • Linux उपयोगकर्ता होने के नाते मैं code openness को महत्व देता हूँ
    OpenSnitch + OpenSnitch-UI का संयोजन मेरे लिए पूरी तरह संतोषजनक है

  • जिज्ञासा थी कि Linux में paid tool model कितना व्यावहारिक है
    ज़्यादातर चीज़ें free, donation-based, या open-core model में मिलती हैं
    Little Snitch ने Linux version मुफ़्त में क्यों जारी किया, क्या इसके पीछे “Linux में पैसा नहीं बनता” वाली सोच है या कोई और कारण, यह जानना चाहूँगा

    • Linux community में closed-source software के प्रति अविश्वास काफ़ी मज़बूत है
      मैं भी network traffic संभालने वाले closed-source program को लेकर असहज महसूस करता हूँ
      इसके बजाय मैं हर साल FOSS projects को हज़ारों डॉलर दान करता हूँ
      लेकिन ऐसे उपयोगकर्ता कम हैं, इसलिए पूरी तरह open source से कमाई करना कठिन है
    • OpenSnitch पहले से मौजूद है और मुफ़्त है, इसलिए paid alternative उतना प्रभावी तर्क नहीं बनता
      ख़ासकर फ़ायरवॉल जैसे high-privilege code पर open source न हो तो भरोसा करना मुश्किल है
    • Little Snitch for Linux के डेवलपर ने कहा, “हम निवेशकों द्वारा समर्थित नहीं बल्कि छोटी independent team हैं, और यह फ़ैसला व्यक्तिगत पसंद से लिया गया था”
      उन्होंने कहा कि इसका नतीजा क्या होगा, यह देखना दिलचस्प होगा
    • डेवलपर की प्रेरणा official blog post में अच्छी तरह समझाई गई है
  • संबंधित ब्लॉग पोस्ट: Little Snitch for Linux परिचय

  • पहले Windows के लिए ZoneAlarm हुआ करता था
    मैं हमेशा सोचता था कि Linux में ऐसा कुछ क्यों नहीं था

    • मैंने कभी AmigaOS के लिए ZoneAlarm जैसा एक program खुद बनाया था
      Direwall code फिर से देखा तो पुराना C style अब भी वैसा ही दिखता है
      यह socket library को patch करके काम करता था, अब भी compile होगा या नहीं, यह सोच रहा हूँ
    • ZoneAlarm की ताकत सिर्फ तकनीक नहीं बल्कि user education और UX design भी थी
      शुरुआत में यह शोर मचाते हुए पूछता था, लेकिन सीखने के बाद शांत हो जाता था—यह बात उसने साफ़ समझाई थी
      इसी वजह से उसने users का भरोसा जीता, और मैं भी उसी कारण इसे recommend करता था
    • उस समय ज़्यादातर GNU software ही होता था, इसलिए spyware लगभग नहीं था
      जब commercial software Linux में आने लगा, तब network monitoring की इच्छा बढ़ी
    • मुझे 2000 के शुरुआती दशक में ZoneAlarm इस्तेमाल करने की याद है
    • Kerio Personal Firewall भी याद है। बाद में ZA या Comodo पर चला गया था, और उसका isolated execution feature काफ़ी प्रभावशाली था
      Windows में मनमानी execution को सीमित कर पाना अच्छा लगता था
  • मैं लंबे समय से Little Snitch इस्तेमाल करता आया हूँ और हर network request को manually approve करता हूँ
    लेकिन kernel extension स्तर की permissions वाले program पर कितना भरोसा किया जा सकता है, इस पर सोचता हूँ
    कंपनी या डेवलपर के बारे में बहुत कम जानकारी है, इसलिए जिज्ञासा है

    • Little Snitch for Linux के डेवलपर ने सीधे जवाब दिया
      eBPF component GPLv2 open source के रूप में जारी है, और GitHub code में देखा जा सकता है
      लेकिन daemon को root privileges के साथ चलना पड़ता है, इसलिए SELinux जैसे access control से इसे सीमित करना ज़रूरी है
      यह पहला release है, इसलिए bug reports संभाले जा रहे हैं, और उन्होंने कहा कि Linux environments की विविधता देखकर वे चकित हैं
    • यह कंपनी 20 साल से अधिक पुरानी Mac के लिए independent developer company है, और Little Snitch लंबे समय से पसंद किया जाने वाला product रहा है
    • मैं Android के लिए Little Snitch/OpenSnitch से प्रेरित FOSS firewall का सह-विकास कर रहा हूँ
      macOS में kernel extensions नहीं बल्कि Network Extension API इस्तेमाल होता है
      अगर उद्देश्य network observation है, तो Sniffnet जैसा GUI sniffer भी मौजूद है
  • Linux port जारी होने पर बधाई
    पूरी तरह open source और terminal-based alternative के रूप में मैं अपने द्वारा maintained RustNet का परिचय देना चाहता हूँ
    यह TUI-based real-time packet monitoring tool है, फ़ायरवॉल नहीं, लेकिन Landlock के ज़रिए खुद को sandbox करता है

    • दिलचस्प लग रहा है, बाद में इसे इस्तेमाल करके देखूँगा
  • OpenSnitch से तुलना जानना चाहता था
    OpenSnitch GitHub

    • मैंने Little Snitch आज़माया, लेकिन IP→domain resolution लगभग नहीं हुआ और process identification भी fail हो गई
      यह Linux version की technical limitations के कारण है
      eBPF आधारित होने के कारण cache overflow होने पर process mapping संभव नहीं रहती, और macOS की तरह deep packet inspection का उपयोग नहीं किया जा सकता
      official explanation में यह विस्तार से बताया गया है
    • मैंने भी OpenSnitch install किया था, लेकिन अभी उसे बंद रखा है। शायद alert fatigue की वजह से
    • डेवलपर ब्लॉग के अनुसार, मौजूदा tools “process-wise connections को एक नज़र में देखकर एक click में block” करने की सुविधा नहीं देते थे, इसलिए उन्होंने इसे खुद बनाया
      संबंधित लेख
    • OpenSnitch पूरी तरह open source है और इसमें कोई subscription नहीं है। software ऐसा ही होना चाहिए
  • मैं OpenSnitch को संतोषजनक ढंग से इस्तेमाल कर रहा हूँ
    लेकिन अच्छा होगा अगर इसमें plugin system आए, जो user behavior और network connections को साथ में analyze करे, और सिर्फ अप्रत्याशित connections के लिए notifications दे
    popup की जगह CLI-आधारित auto-allow wrapper भी हो तो सुविधाजनक रहेगा