यह मार्गदर्शिका भाषा को समझने में आसानी से लिनक्स पर iptables का उपयोग करने का तरीका बताएगी।
अंतर्वस्तु[छिपाना]
|
अवलोकन
Iptables एक नियम-आधारित फ़ायरवॉल है, जो प्रत्येक नियम को तब तक संसाधित करेगा जब तक कि वह मेल नहीं खाता है।
Todo: यहां उदाहरण शामिल करें
प्रयोग
Iptables उपयोगिता आमतौर पर आपके लिनक्स वितरण पर पूर्व-स्थापित है, लेकिन वास्तव में कोई नियम नहीं चल रहा है। आपको यहां अधिकांश वितरणों पर उपयोगिता मिल जाएगी:
/sbin/iptables
एकल आईपी पता अवरुद्ध करना
आप जिस पते को ब्लॉक करने का प्रयास कर रहे हैं उसके साथ 10.10.10.10 को प्रतिस्थापित करते हुए, -s पैरामीटर का उपयोग करके एक आईपी को अवरुद्ध कर सकते हैं। आप इस उदाहरण में ध्यान देंगे कि हमने संलग्न करने के बजाय -आई पैरामीटर (या -इन्सर्ट वर्क्स भी) का उपयोग किया है, क्योंकि हम यह सुनिश्चित करना चाहते हैं कि यह नियम किसी भी नियम के नियमों से पहले, पहले दिखाएगा।
/sbin/iptables -I INPUT -s 10.10.10.10 -j DROP
एक आईपी पते से सभी आवागमन की अनुमति
आप उपर्युक्त के समान आदेश का उपयोग करके किसी भी आईपी पते से वैकल्पिक रूप से सभी ट्रैफिक को अनुमति दे सकते हैं, लेकिन डीआरओपी को ACCEPT के साथ बदल सकते हैं। आपको यह सुनिश्चित करने की ज़रूरत है कि यह नियम किसी भी डीआरओपी नियमों से पहले, पहले दिखाई देता है।
/sbin/iptables -A INPUT -s 10.10.10.10 -j ACCEPT
सभी पते से पोर्ट को अवरुद्ध करना
आप -पोर्ट स्विच का उपयोग करके और उस सेवा के बंदरगाह को जोड़कर नेटवर्क पर पहुंचने से पूरी तरह बंदरगाह को अवरुद्ध कर सकते हैं, जिसे आप ब्लॉक करना चाहते हैं। इस उदाहरण में, हम mysql पोर्ट को अवरुद्ध करेंगे:
/sbin/iptables -A INPUT -p tcp --dport 3306 -j DROP
एकल आईपी से सिंगल पोर्ट को अनुमति देना
किसी विशिष्ट पोर्ट को नियम को और सीमित करने के लिए आप -dport कमांड के साथ -s कमांड जोड़ सकते हैं:
/sbin/iptables -A INPUT -p tcp -s 10.10.10.10 --dport 3306 -j ACCEPT
वर्तमान नियम देख रहे हैं
आप निम्न आदेश का उपयोग कर मौजूदा नियम देख सकते हैं:
/sbin/iptables -L
यह आपको निम्न के जैसा आउटपुट देना चाहिए:
Chain INPUT (policy ACCEPT) target prot opt source destination ACCEPT all -- 192.168.1.1/24 anywhere ACCEPT all -- 10.10.10.0/24 anywhere DROP tcp -- anywhere anywhere tcp dpt:ssh DROP tcp -- anywhere anywhere tcp dpt:mysql
वास्तविक आउटपुट निश्चित रूप से थोड़ी देर तक होगा।
वर्तमान नियमों को साफ़ करना
फ्लश पैरामीटर का उपयोग करके आप सभी मौजूदा नियमों को साफ़ कर सकते हैं। यदि आप नियमों को सही क्रम में रखना चाहते हैं, या जब आप परीक्षण कर रहे हैं तो यह बहुत उपयोगी है।
/sbin/iptables --flush
वितरण विशिष्ट
जबकि अधिकांश लिनक्स वितरण में आईपीटीबल्स का एक रूप शामिल होता है, उनमें से कुछ में रैपर भी शामिल होते हैं जो प्रबंधन को थोड़ा आसान बनाते हैं। अक्सर इन "एडॉन्स" इनिट स्क्रिप्ट्स का रूप लेते हैं जो स्टार्टअप पर आईपीटीबल्स शुरू करने की देखभाल करते हैं, हालांकि कुछ वितरणों में पूर्ण उड़ाए गए रैपर अनुप्रयोग भी शामिल होते हैं जो सामान्य मामले को सरल बनाने का प्रयास करते हैं।
Gentoo
iptables Gentoo पर init स्क्रिप्ट कई आम परिदृश्यों को संभालने में सक्षम है। स्टार्टर्स के लिए, यह आपको स्टार्टअप पर लोड करने के लिए iptables को कॉन्फ़िगर करने की अनुमति देता है (आमतौर पर आप जो चाहते हैं):
rc-update add iptables default
इनिट स्क्रिप्ट का उपयोग करना, आसानी से याद रखने वाले कमांड के साथ फ़ायरवॉल को लोड करना और साफ़ करना संभव है:
/etc/init.d/iptables start /etc/init.d/iptables stop
Init स्क्रिप्ट प्रारंभ / बंद पर अपने वर्तमान फ़ायरवॉल विन्यास को जारी रखने के विवरण को संभालती है। इस प्रकार, आपकी फ़ायरवॉल हमेशा उस राज्य में होती है जिसे आपने छोड़ा था। यदि आपको मैन्युअल रूप से नया नियम सहेजने की आवश्यकता है, तो init स्क्रिप्ट इसे भी संभाल सकता है:
/etc/init.d/iptables save
इसके अतिरिक्त, आप अपने फ़ायरवॉल को पिछले सहेजे गए राज्य में पुनर्स्थापित कर सकते हैं (उस स्थिति के लिए जहां आप नियमों के साथ प्रयोग कर रहे थे और अब पिछली कार्य विन्यास को पुनर्स्थापित करना चाहते हैं):
/etc/init.d/iptables reload
अंत में, init स्क्रिप्ट iptables को "पैनिक" मोड में डाल सकता है, जहां सभी आने वाली और जाने वाली यातायात अवरुद्ध है। मुझे यकीन नहीं है कि यह मोड उपयोगी क्यों है, लेकिन सभी लिनक्स फ़ायरवॉल में ऐसा लगता है।
/etc/init.d/iptables panic
चेतावनी: यदि आप एसएसएच के माध्यम से अपने सर्वर से जुड़े हैं तो आतंक मोड शुरू न करें; आपमर्जी डिस्कनेक्ट हो जाओ! केवल एक बार जब आप iptables को आतंक मोड में डालते हैं तो आप होते हैंशारीरिक रूप से कंप्यूटर के सामने।