समय अंतराल के लिए इंटरनेट तक उपयोगकर्ता की पहुंच कैसे प्रतिबंधित करें?


12

मैं चाहता हूं कि उपयोगकर्ताओं में से एक (sudoers सूची में नहीं) में 14:00 से 16:00 तक और 17:00 से 18:30 तक इंटरनेट का उपयोग है। क्या यह संभव है? क्या मैं अलग सप्ताह के दिनों के लिए अलग-अलग समय अंतराल निर्धारित कर सकता हूं?


आप राउटर या गेटवे नियंत्रण स्तर पर सबसे अच्छा कर रहे होंगे, सिस्टम पर ही ... जहाँ तक मुझे पता है, उबंटू के भीतर उपयोगकर्ता स्तर पर इंटरनेट एक्सेस को प्रतिबंधित करने के लिए कोई आसान प्रणाली नहीं है।
थॉमस वार्ड

जब मैं इसे राउटर स्तर पर बनाता हूं, तो सभी उपयोगकर्ताओं को प्रतिबंधित कर दिया जाएगा ...
कपकोब

Afaik (और मैं 9.04 से इसका समाधान ढूंढ रहा हूं), इसके लिए कोई सॉफ्टवेयर समाधान नहीं है। दी गई, मेरे नेट पर, प्रति कंप्यूटर केवल एक उपयोगकर्ता है, और वे सभी एक सर्वर बॉक्स के माध्यम से जुड़ते हैं जो गेटवे के रूप में कार्य करता है। उस बॉक्स में एक क्रेस्टैब है जो उस सिस्टम पर सभी इंटरनेट एक्सेस को ब्लॉक करता है और बाद में इसे हटा देता है; बाद में यह प्रत्येक दिन अलग-अलग समय पर चलता है। जिज्ञासा से बाहर, आपको उस सख्त समय अवधि तक पहुंच को प्रतिबंधित करने की आवश्यकता क्यों है, और आपको उपयोगकर्ता द्वारा इसे करने की आवश्यकता क्यों है?
थॉमस वार्ड

मुझे उपयोगकर्ता द्वारा इसकी आवश्यकता है, क्योंकि दो उपयोगकर्ताओं द्वारा एक पीसी का उपयोग किया जाता है। और मैं एक्सेस को प्रतिबंधित करना चाहता हूं, क्योंकि दूसरे उपयोगकर्ता को बहुत कुछ सीखना चाहिए और फेसबुक में नहीं रहना चाहिए :) लेकिन क्रेस्टैब के साथ आपका विचार अच्छा है .... आप एक्सेस को ब्लॉक करने के लिए क्या उपयोग कर रहे हैं? मैं उपयोगकर्ता के लिए समान बना सकता हूं, जब मैं राउटर को ब्लॉक कर देता
हूं

मेरा राउटर और मेरा गेटवे बॉक्स अलग-अलग हैं - चूंकि गेटवे बॉक्स दूसरे बॉक्स से एक स्थिर पता (और इस प्रकार डेटा को संभालता है) प्रदान करता है, मैं स्थिर-निर्दिष्ट निजी आईपी पते को आउटबाउंड या इनबाउंड डेटा भेजने से रोकने के लिए iptables का उपयोग करता हूं, जो इस प्रकार है बॉक्स में सभी इंटरनेट ट्रैफ़िक को रोकता है। एक समय पर वस्तुओं को हटाने के लिए crontabs प्रत्येक अपने स्वयं के iptables कमांड का उपयोग करते हैं। यह एक अपूर्ण प्रणाली है, क्योंकि मैं तो बस एक रूटर है कि बेहतर काम करता है खरीद सकता है: पी
थॉमस वार्ड

जवाबों:


7

आप ownerकिसी उपयोगकर्ता को नेट एक्सेस करने से रोकने के लिए iptables के एक्सटेंशन का उपयोग कर सकते हैं , जैसे

 sudo iptables -A OUTPUT -m owner --uid-owner user_you_want_to_block -j REJECT

अब आप उन नियमों को जोड़ने या हटाने के लिए क्रोन का उपयोग कर सकते हैं (यदि आपके पास पहले से ही कुछ iptable नियम हैं या अलग-अलग समय के लिए अलग-अलग उपयोगकर्ताओं के लिए चाहते हैं तो शेल स्क्रिप्टिंग की थोड़ी आवश्यकता हो सकती है)।


ऊह, मुझे नहीं पता था कि अस्तित्व में: P @Florian: (a) इसके लिए क्या कर्नेल मॉड्यूल लोड करने की आवश्यकता है? (ख) क्या यह काम करता है -j REJECT --reject-with <argument>?
थॉमस वार्ड

(a) xt_owner अपने आप लोड हो जाता है। (ख) मुझे कोई कारण नहीं दिखाई देता है कि - क्यों-इस के साथ काम नहीं करना चाहिए, लेकिन कभी कोशिश नहीं की।
फ़्लोरियन डिस्च

मैं इसका बाद में परीक्षण करूंगा: P क्या इसका उपयोग विस्तार करने के लिए iptables मैनपेज़ में स्वामी मॉड्यूल मौजूद है? (/ साइड नोट:: मैं क्या गिरी मॉड्यूल क्योंकि मेरे गिरी कस्टम संकलित किया गया है पूछा)
थॉमस वार्ड

बिल्कुल वैसा ही दिखता है जैसा मैं देख रहा हूं .... मुझे इसे जरूर आजमाना चाहिए :)
cupakob

@EvilPhoenix: हां, यह iptables मैनपेज में प्रलेखित है
फ्लोरियन डिस्च

8
  1. रूट के रूप में लॉगिन करें:

    सूदो सु

  2. अपने फ़ायरवॉल की स्थिति की जाँच करें:

    ufw status
    

    यदि फ़ायरवॉल निष्क्रिय है , तो समस्या:

    ufw enable
    
  3. रविवार, मंगलवार, बुधवार और शुक्रवार को उपयोगकर्ता के विल्हेम इंटरनेट एक्सेस को प्रतिबंधित समय अंतराल तक सीमित रखने के लिए (14: 00-16: 00 और 17: 00-18: 30):

    iptables -I OUTPUT -p tcp -m owner --uid-owner wilhelm -m time --weekdays Su,Tu,We,Fr --timestart 00:00:01 --timestop 14:00:00 -j DROP 
    iptables -I OUTPUT -p tcp -m owner --uid-owner wilhelm -m time --weekdays Su,Tu,We,Fr --timestart 16:00:00 --timestop 17:00:00 -j DROP 
    iptables -I OUTPUT -p tcp -m owner --uid-owner wilhelm -m time --weekdays Su,Tu,We,Fr --timestart 18:30:00 --timestop 23:59:59 -j DROP 
    

    पक्ष टिप्पणी : * कृपया के उपयोग पर ध्यान दें -Iस्विच बजाय -Aस्विच के iptablesआदेश। -Iस्विच आउटपुट शासन श्रृंखला की शुरुआत (ऊपर) पर बजाय श्रृंखला के निचले भाग में ऊपर उल्लिखित नियमों (3.) सम्मिलित करता है। नियमित रूप से फ़ायरवॉल नीतियों के शीर्ष पर मैन्युअल रूप से संलग्न नियमों को रखना महत्वपूर्ण है क्योंकि नियमों को ऊपर से नीचे संसाधित किया जाता है। यदि शीर्ष अधिकांश नियम एक पैकेट को स्वीकार करते हैं, तो श्रृंखला, OUTPUT, अब निम्नलिखित नियमों के लिए जाँच नहीं की जाती है, जो पैकेट को छोड़ सकता है।

  4. कृपया सुनिश्चित करें कि नियम वास्तव में ठीक से दर्ज किए गए थे:

    iptables -L OUTPUT
    

    अनुचित नियम को हटाने के लिए, नियम संख्या 1, (1-आधारित गणना ऊपर से iptables -v -L OUTPUT) जारी करें iptables -D OUTPUT 1:।

  5. अगले बूट पर बहाल करने के लिए iptables सहेजें:

    iptables-save > /etc/iptables.rules
    
  6. /etc/rc.localलाइन में जोड़ें:

    iptables-restore < /etc/iptables.rules
    

किया हुआ

-

उबंटू 11.10 (एकिरिक) पर परीक्षण किया गया, स्थानीय: वह


1
एक आदर्श समाधान के साथ शानदार जवाब! लेकिन ध्यान दें कि सभी बार यूटीसी के रूप में व्याख्या की जाती है , इसलिए किसी को अपने मामले में - स्थानीय समय के लिए मैन्युअल रूप से ऑफसेट करना पड़ सकता है central european summer time -2 hours
सटीक पेंगुइन

मैंने सभी चरण किए और उन्होंने काम किया (इंटरनेट एक्सेस सीमित था) लेकिन फिर से शुरू करने के बाद, इंटरनेट वापस आ गया था। मैंने iptables -L OUTPUT की जाँच की और मेरे द्वारा जोड़े गए नियमों को नहीं पाया ...
Lawand

1
वह कारण जो ufwआप बाद में उपयोग करते हुए भी सक्षम कर रहे हैं iptables?
बालू

@PrecisePenguin --kerneltzविकल्प के साथ तय किया जा सकता है ("यूटीसी के बजाय कर्नेल
टाइमज़ोन का
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.