Ubuntu IPTables केवल 1 देश को अनुमति देते हैं


10

इसलिए मैं एक स्क्रिप्ट के लिए नेट पर चारों ओर देख रहा हूं जो http (80) और https (443) पोर्ट को छोड़कर सभी ट्रैफ़िक को छोड़ देगा, और उसके बाद ही देश x से अन्य सभी पोर्ट पर ट्रैफ़िक की अनुमति देगा मामला देश x यूएस है)।

मैं हर देश से सभी IP में जोड़ना नहीं चाहता, मैं सिर्फ अपने देश से ips की अनुमति देना चाहता हूं, फिर बाहरी दुनिया से लगभग सभी अन्य ट्रैफ़िक को रोकना चाहता हूं। मेरे देश के बाहर किसी को भी ssh, ftp, smtp, ect तक नहीं पहुंचना चाहिए। खुद के अलावा। यदि यह कभी बदलता है तो मैं इसके लिए एक विशेष मामला जोड़ूंगा जब यह आ जाएगा।

पक्षीय लेख

मुझे ध्यान देना चाहिए कि मुझे एक ऐसा प्रश्न मिला, जिसमें देश में आईपी तालिकाओं का उपयोग करके आईपी पर प्रतिबंध लगाने के लिए एक स्क्रिप्ट है, लेकिन मुझे बहुत कुछ अतिरिक्त सम्मिलित करना होगा जो मुझे करना होगा।

सर्वश्रेष्ठ उत्तर के रूप में चिह्नित स्क्रिप्ट उन IP से सभी ट्रैफ़िक को रोक देगा। मैं केवल 80 और 443 को छोड़कर सभी बंदरगाहों तक पहुंच को अवरुद्ध करना चाहता हूं।

अपडेट करें

निम्नलिखित नियम के साथ,

iptables -A OUTPUT -m geoip --dst-cc CN -j DROP

क्या मैं इसे संशोधित कर सकता हूं और कुछ ऐसा कर सकता हूं

iptables -A OUTPUT -m geoip --dst-cc CN --dport 80 -j ACCEPT
iptables -A OUTPUT -m geoip --dst-cc CN --dport 443 -j ACCEPT
iptables -A OUTPUT -m geoip --dst-cc CN -j DROP

मुझे लगता है कि यह चीन से ips 80 और बंदरगाह 443 का उपयोग करने की अनुमति देगा और यह बाकी छोड़ देगा। क्या यह धारणा सही होगी? यदि नहीं, तो क्यों नहीं?

अपडेट २

कुछ गड़बड़ करने के बाद मैंने पाया कि उबंटू का मेरा संस्करण --dportविशेषता पसंद नहीं करता है । इसलिए इसका उपयोग करने के बजाय हम में से जो लोग Ubuntu 14+ चला रहे हैं (कम से कम, मेरे पास केवल Ubuntu 14.04, 14.10 और कुछ मशीनों पर 15.04 स्थापित है) का उपयोग करना होगा-p PORT_NUMBER_OR_NAME

तो ऐसा लगेगा

iptables -A OUTPUT -m geoip --dst-cc CN -p 443 -j ACCEPT

या आने वाले यातायात के लिए,

iptables -A INPUT -m geoip --src-cc CN -p 443 -j ACCEPT

जवाबों:


7

आपको जियोलोकेशन के लिए iptables समर्थन को जोड़ने की आवश्यकता होगी। ऐसा करने के लिए, आपको इन चरणों का पालन करना होगा:

# apt-get install xtables-addons-common
# mkdir /usr/share/xt_geoip
# apt-get install libtext-csv-xs-perl unzip
# /usr/lib/xtables-addons/xt_geoip_dl
# /usr/lib/xtables-addons/xt_geoip_build -D /usr/share/xt_geoip *.csv

यह आपको ऐसा करने की अनुमति देगा:

iptables -A OUTPUT -m geoip --dst-cc CN -j DROP

यह चीन (CN) के लिए किसी भी निवर्तमान यातायात को अवरुद्ध करेगा। नियमों की जटिलता आपके ऊपर है, मूल रूप से आपको एक स्क्रिप्ट की आवश्यकता नहीं है, बस उन नियमों को लिखें जिन्हें आप लागू करना चाहते हैं और फिर उपयोग करें iptables-saveताकि वे हर बार जब आप रिबूट करें तो लोड हो।


धन्यवाद! मेरे पास एक और प्रश्न है, मैंने इसे प्रतिबिंबित करने के लिए अपने प्रश्न को ऊपर अपडेट किया है। क्या आप इसका उत्तर जानना चाहेंगे?
ऑस्टिन क्रेगेल

नियम काम करेगा लेकिन आप इसे की दिशा बदलने के लिए है, अब यह है OUTPUTऔर आप के लिए यह निर्धारित करने की आवश्यकता होगी INPUTऔर उपयोग नहीं --dst-ccलेकिन --src-ccबजाय। लेकिन अगर सवाल यह है कि इसे किसी अन्य मौजूदा iptablesनियम के संयोजन में काम करना चाहिए , तो इसका उत्तर हां में है।
एनकेएन

xt_geoip_dlआदेश अब काम नहीं करता, तो वह उसके एक ज़िप वह does not मौजूद है की आवश्यकता है
मार्टिन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.