मैं साइटों का उपयोग करके ब्लॉक करना चाहूंगा iptables
। मैं इस बारे में कैसे जा सकता हूं, और मैं यह कैसे सुनिश्चित करूं कि iptables
नियम सहेजे गए हैं?
मैं साइटों का उपयोग करके ब्लॉक करना चाहूंगा iptables
। मैं इस बारे में कैसे जा सकता हूं, और मैं यह कैसे सुनिश्चित करूं कि iptables
नियम सहेजे गए हैं?
जवाबों:
Iptables नियमों के साथ साइटों को अवरुद्ध करना एक बहुत बुरा विचार है, मुख्यतः क्योंकि iptables (अधिकांश फ़ायरवॉल) IP पते से संबंधित है, और किसी साइट और उसके IP पते के बीच संबंध बल्कि ढीला है:
एक साइट में कई आईपी पते हो सकते हैं, जिन्हें अक्सर बदला जा सकता है। एक बार जब iptables नियम बनाए जाते हैं, भले ही आप किसी नियम के हिस्से के रूप में किसी साइट का नाम निर्दिष्ट करते हों , उस क्षण का पहला IP पता उपयोग किया जाता है। यदि साइट का पता बदल जाता है, तो आपके iptables नियम पुराने हो जाएंगे।
एक आईपी पते कई साइटों की मेजबानी कर सकता है (और यह अक्सर होता है)। यह केवल आईपी पते की कमी के कारण अधिक बार प्राप्त होगा। यदि आप एक IP पता ब्लॉक करते हैं, तो आप उस पर होस्ट की गई सभी साइटों को ब्लॉक कर देते हैं।
इसलिए, यद्यपि अन्य उत्तर यह बताते हैं कि आप इसे कैसे करते हैं, मैं आपसे कुछ अन्य समाधान लेने का आग्रह करता हूं। उदाहरण के लिए, एक पारदर्शी http प्रॉक्सी स्थापित करने से आपको वह प्राप्त होगा जो आपको चाहिए। यह पारदर्शी HTTP प्रॉक्सी HOWTO थोड़ा पुराना है, लेकिन यह आपको आरंभ करने में मदद करेगा।
एक बार जब आपके पास एक पारदर्शी प्रॉक्सी होती है, तो आप विशिष्ट साइटों को अवरुद्ध करने के लिए इसमें मनमाने नियम जोड़ सकते हैं, अगर आप नहीं चाहते हैं तो आपको स्क्वीड की कैशिंग सुविधा का उपयोग करने की भी आवश्यकता नहीं है।
साइट ब्लॉकिंग (अन्य फ़ायरवॉल, परदे के पीछे, आदि) को संभालने के अन्य तरीके हैं, लेकिन iptables नियम इसे संभालने के सबसे खराब तरीकों में से एक है।
आप इसे प्राप्त करने के लिए iptables स्ट्रिंग मिलान का उपयोग कर सकते हैं:
iptables -A OUTPUT -p tcp -m string --string "block-me.com" --algo kmp -j REJECT
-A OUTPUT
OUTPUT
श्रृंखला में निम्न नियम जोड़ता है ।
-m string --string "block-me.com" --algo kmp
नुथ-मॉरिस-प्रैट मैचिंग एल्गोरिथ्मblock-me.com
का उपयोग करके स्ट्रिंग को देखने के लिए iptables बताता है ।
जब आप iptables-persistent
अपने सिस्टम को उपलब्ध करते हैं तो पैकेज को स्थापित करने के लिए अपनी मशीन को फिर से शुरू करने के लिए अपने iptables को बनाने का सबसे आसान तरीका है। यदि आप नए नियम सेट करने के बाद पैकेज स्थापित करते हैं, तो आपसे पूछा जाएगा कि क्या आप स्थायी उपयोग के लिए वर्तमान में उपयोग किए गए नियमों को सहेजना चाहते हैं। iptables-persistent
मूल रूप से केवल फाइलों में सहेजे गए नियमों को लोड करता है /etc/iptables/rules.v4
और /etc/iptables/rules.v6
।
यदि आप अपने नियमों को फिर से बदलते हैं, तो परिवर्तनों को बचाने के लिए और उन्हें रिबूट पर पुनर्स्थापित करने के लिए, आपको उन्हें कमांडों का उपयोग करके उपर्युक्त फाइलों में सहेजना होगा
iptables-save > /etc/iptables/rules.v4
iptables-save > /etc/iptables/rules.v6
अब उन्हें रिबूट पर बहाल किया जाएगा।
वास्तव में आप की जरूरत नहीं है iptables-persistent
या तो। इस सवाल का एक और लगभग सरल समाधान है।
ध्यान दें कि आपको iptables-save
रूट के रूप में चलाने की जरूरत है , या sudo
इस तरह से:
sudo bash -c "iptables-save > /etc/iptables/rules.v4"
यदि आप बस चलाते हैं sudo iptables-save > /etc/iptables/rules.v4
तो आपको "पहुँच अस्वीकृत" संदेश मिलेगा rules.v4
।
ऐसे कई तरीके हैं जिनसे हम https साइटों को प्रतिबंधित कर सकते हैं।
1- स्क्वीड प्रॉक्सी
2- IPtables
स्क्वीड प्रॉक्सी सर्वर के साथ
-> आप मेरे मामले में विद्रूप विन्यास खोलें (vim /etc/squid/squid.conf)
-> परिभाषित के रूप में नियम रखें।
acl badsite dstdomain .facebook.com .soundcloud.com .playit.pk .songs.com
http_reply_access बैडसाइट को अस्वीकार करें # यह लाइन HTTP को ब्लॉक करती है
http_access इनकार करना बुरा मानना # यह लाइन ब्लॉक HTTPS
-> इसके बाद अपने स्क्वीड को रीस्टार्ट करें
Iptables के साथ नियमों को यहाँ परिभाषित करने की आवश्यकता है
iptables -N STREAM
iptables -I OUTPUT -m string --string "www.facebook.com" --algo bm --from 1 - 600 -j STREAM
iptables -I OUTPUT -m string --string "facebook.com" --algo bm --from 1 - 600 -j STREAM
iptables -I FORWARD -m string --string "www.facebook.com" --algo bm --from 1 - 600 -j STREAM
iptables -I FORWARD -m string --string "facebook.com" --algo bm --from 1 - 600 -j STREAM iptables-a STREAM -j REJECT
Gentoo के तहत, आपके द्वारा जोड़े गए iptables नियमों को बचाने के लिए, उपयोग करें
/etc/init.d/iptables save
हालाँकि, आपको यह भी सुनिश्चित करना होगा कि iptables init स्क्रिप्ट (जिसका उद्देश्य नियमों को फिर से लोड करना है) बूट पर चलाया गया है:
rc-update add iptables default
दोनों कमांड को रूट के रूप में चलाया जाना चाहिए (यदि आपने इसे स्थापित किया है तो sudo के माध्यम से)
ठीक है, कहते हैं कि आप आईपी पते को 192.168.1.5 ब्लॉक करना चाहते हैं, बस इसे अपने शेल स्क्रिप्ट में कमांड प्रॉम्प्ट में दर्ज करें:
iptables -A INPUT -s 192.168.1.5 -j DROP
फिर आप इस आदेश के साथ सर्वर से IP पता 192.168.1.2 को अवरुद्ध कर सकते हैं:
iptables -A OUTPUT -d 192.168.1.2 -j DROP
और उस साइट को कभी भी आपको फिर से परेशान करने से रोकना चाहिए। उम्मीद है की यह मदद करेगा।
-p tcp
आपके आउटगोइंग ब्लॉक से एडिट किया , क्योंकि यह केवल सभी पैकेटों की बजाय tcp पैकेट्स को आउटबाउंड करना बंद करेगा।
-A INPUT -p tcp -m tcp -d www.facebook.com -j DROP
हमने अभी इसका अध्ययन किया है
डेबियन 7
यदि आप उन्हें इस साइट को पिंग करने देना चाहते हैं, तो बस --dport 80,443
वेबसाइट के नाम के बाद जोड़ें