लिनक्स पर कुछ कार्यक्रमों के लिए इंटरनेट का उपयोग कैसे अवरुद्ध करें


20

हाल ही में, मुझे विशिष्ट कार्यक्रमों के लिए इंटरनेट एक्सेस को सीमित करने की समस्या का सामना करना पड़ा है। क्या कोई भी ऐसा करने का एक अच्छा तरीका सुझा सकता है, बिना किसी विशेष सॉफ्टवेयर का उपयोग किए?

जवाबों:


31

मेरे लिए समाधान सीधे आगे होने के लिए हुआ।

  1. नया समूह बनाएँ, मान्य करें ; इस समूह में आवश्यक उपयोगकर्ता जोड़ें:
    • सृजन करना: groupadd no-internet
    • मान्य: grep no-internet /etc/group
    • उपयोगकर्ता जोड़ें: useradd -g no-internet username

      ध्यान दें: यदि आप पहले से मौजूद उपयोगकर्ता को संशोधित कर रहे हैं जिसे आपको चलाना चाहिए: इसके usermod -a -G no-internet userName साथ जांचें:sudo groups userName

  2. अपने पथ में एक स्क्रिप्ट बनाएं और इसे निष्पादन योग्य बनाएं :
    • सृजन करना: nano /home/username/.local/bin/no-internet
    • निष्पादन: chmod 755 /home/username/.local/bin/no-internet
    • सामग्री: #!/bin/bash
                    sg no-internet "$@"

  3. समूह इंटरनेट के लिए नेटवर्क गतिविधि छोड़ने के लिए iptables नियम जोड़ें :


   4. इसकी जाँच करें, उदाहरण के लिए फ़ायरफ़ॉक्स चलाकर:

  • no-internet "firefox"

यदि आप एक अपवाद बनाना चाहते हैं और एक कार्यक्रम को स्थानीय नेटवर्क तक पहुँचने की अनुमति देना चाहते हैं :

  • iptables -A OUTPUT -m owner --gid-owner no-internet -d 192.168.1.0/24 -j ACCEPT
  • iptables -A OUTPUT -m owner --gid-owner no-internet -d 127.0.0.0/8 -j ACCEPT
  • iptables -A OUTPUT -m owner --gid-owner no-internet -j DROP

ध्यान दें: नियमों का पालन करने के मामले में नियमों को बनाए रखा जाएगा। उदाहरण के लिए, यदि आप बिना इंटरनेट नियम वाला प्रोग्राम चलाते हैं और वह प्रोग्राम ब्राउज़र विंडो खोलेगा, तब भी नियम लागू होंगे।


2
कुछ नोट्स Ilia: Ad 1: - मौजूदा उपयोगकर्ता को संशोधित करने के लिए: usermod -a -G groupName उपयोगकर्ता नाम - के साथ जाँच करें: sudo group userName Ad 3: - मेरे पास पहले से ही iptables में बहुत सारे नियम हैं, नए नियम की स्थिति महत्वपूर्ण है । OUTPUT श्रृंखला में पहला नियम होना चाहिए। इसलिए मैं इन्सर्ट का उपयोग करता हूं: iptables -I OUTPUT 1 -m मालिक --gid-owner no-internet -j DROP LAN में प्रवेश की अनुमति देने के लिए: सुनिश्चित करें कि ACCEPT नियम DENY नियम से ऊपर हैं। एक जादू की तरह काम करता है। Wifiguard पर उदाहरण के लिए इसका उपयोग करें। प्रोग अज्ञात उपकरणों के लिए वेलन की जांच करता है, लेकिन हर शुरुआत में "फोन घर"।

स्क्रिप्ट केवल कमांड को पास करेगी। यदि आप मापदंडों के साथ एक प्रोग्राम लॉन्च करने का प्रयास करते हैं, तो आपको "$ 1" के बजाय "$ @" का उपयोग करना चाहिए। किसी कारण से, मुझे इसे अस्थायी रूप से इसे सही ढंग से संसाधित करने के लिए बैश के लिए एक चर में संग्रहीत करना पड़ा: cmd = "$ @"; sg no-internet "$ {cmd}"
onse

"नो-इंटरनेट" के बजाय "nointernet" का उपयोग करें। जब भी Ubuntu 14.04 जिस कारण से डैश को sg या chgrp (यह पासवर्ड के लिए संकेत देता है, तब विफल हो जाता है) का उपयोग करने का प्रयास नहीं कर सकता।

1
unshare -n YourAppToBlock> "नो-इंटरनेट" के बजाय "nointernet" का उपयोग करें। शायद, 'no \\ - इंटरनेट'?
SarK0Y

मैंने इसे वर्णित करने की कोशिश की, लेकिन मेरे लिए, "नो-इंटरनेट" में जोड़ने के बाद और आईपी-टेबल्स को सेट करें जिन्हें मैं अब और इंटरनेट से कनेक्ट नहीं कर सकता (बैश स्क्रिप्ट नो-इंटरनेट के साथ और बिना)।
वियाटस
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.