लिनक्स में iptables का उपयोग करके लैन पर किसी विशेष उपयोगकर्ता के लिए इंटरनेट का उपयोग कैसे प्रतिबंधित करें


11

मान लीजिए कि LAN, A और B पर दो उपयोगकर्ता हैं। मैं IP अटेबल का उपयोग करके इंटरनेट ए से उपयोगकर्ता ए को प्रतिबंधित करता हूं और नियमों को सहेजता हूं ताकि रिबूट के बाद भी वे प्रभावी रहें। यह भी मान लीजिए कि मैं उस उपयोगकर्ता को किसी बिंदु पर पहुंच देना चाहता हूं; मैं इसे फिर से कैसे सक्षम करूं? मैं उबंटू लिनक्स 10.04 का उपयोग कर रहा हूं। यह अच्छा होगा यदि कोई मुझे यह दिखाएगा कि कमांड लाइन से इसे कैसे किया जाए, क्योंकि मैं अक्सर स्थानीय ssh लॉगिन का उपयोग करके मशीन में प्रवेश करता हूं।

जवाबों:


17

मुझे लगता है कि उपयोगकर्ता A और B उसी Linux मशीन (ओं) का उपयोग कर रहे हैं जहाँ आप व्यवस्थापक हैं। (यह आपके प्रश्न से पूरी तरह से स्पष्ट नहीं है। यदि ए और बी के पास अपने स्वयं के कंप्यूटर हैं, जिस पर वे प्रशासक हैं, तो यह पूरी तरह से अलग समस्या है।)

निम्नलिखित कमांड यूजर को यूआईडी 1234 को इंटरफेस पर पैकेट भेजने से रोकेगा eth0:

iptables -t mangle -A OUTPUT -o eth0 -m owner --uid-owner 1234 -j DROP

मैं टूल के साथ बुनियादी परिचितता प्राप्त करने के लिए उबंटू आईपीटेबल्स गाइड को पढ़ने की सलाह देता हूं (और मैनिंग टेबल जैसी उन्नत चीजों के लिए मैन पेज देखें)।

उपयोगकर्ता अभी भी पिंग को चलाने में सक्षम होगा (क्योंकि यह रूट रूट है), लेकिन कुछ और नहीं। यदि उपयोगकर्ता किसी अन्य उपयोगकर्ता द्वारा प्रारंभ किया गया था, तो उपयोगकर्ता अभी भी किसी स्थानीय प्रॉक्सी से कनेक्ट हो सकेगा।

इस नियम को हटाने के लिए, -Dऊपर दिए गए आदेश में जोड़ें ।

नियम को स्थायी बनाने के लिए, इसे जोड़ें /etc/network/if-up.d/my-user-restrictions(उस निष्पादन योग्य स्क्रिप्ट को शुरू करें #!/bin/sh)। या उपयोग iptables-save( अधिक जानकारी के लिए Ubuntu iptables गाइड देखें)।


आपका बहुत बहुत धन्यवाद। और हाँ आपकी धारणाएँ सच हैं। आपके उत्तर और उल्लिखित ubuntu गाइड के आधार पर, यह है कि चीजों को करने का सही तरीका अगर मैं प्रतिबंधित उपयोगकर्ता ssh एक्सेस को अनुदान देना चाहता हूं (कभी-कभी मैं ssh पर अपने खाते का उपयोग करके लॉगिन करना चाहता हूं): iptables -t mangle -A-OUTUTUT - o eth0 -m owner --uid-owner 1234 -p tcp --dport ssh -j ACCEPT iptables -t mangle -A OUTPUT -o eth0 -m owner --uid-owner 1234 -j क्रो I के रूप में उन नियमों को रखा गया है उल्लिखित फ़ाइल और चीजें ठीक काम करने लगती हैं।
मारवान तनगर

@ मारवान मुझे लगता है कि यह सही है। ध्यान दें कि यदि आप ssh एक्सेस की अनुमति देते हैं, तो आप बहुत कुछ भी अनुमति देते हैं क्योंकि ssh तुच्छ रूप से अन्य प्रोटोकॉल को सुरंग कर सकता है।
गिलेस एसओ- बुराई को रोकना '

0

मैं इसके लिए iptables का उपयोग नहीं करेगा।

मुझे लगता है कि A और B निश्चित IPs ClientA और ClientB के साथ जुड़े हुए हैं। मुझे लगता है कि आपका इंटरनेट-प्रॉक्सी ServerI है (आपका Ubuntu-Server?)।

तो मैं ClientA से ServerI के लिए एक इनकार / ड्रॉप मार्ग प्रविष्टि जोड़ देगा।

मैं उबंटू का उपयोग नहीं करता हूं - इसलिए मैं आपको यह नहीं बता सकता कि उस सेटिंग को स्थायी बनाने के लिए किस फ़ाइल का उपयोग करना है (रिबूट को जीवित करना)।

शायद कोई उस विवरण को जोड़ सकता है?

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