अन्य उत्तर iptables -I
उनके उदाहरणों में उपयोग कर रहे हैं, जो अक्सर वह नहीं है जो आपको उपयोग करना चाहिए।
iptables पहले नियम को निष्पादित करेगा जो मेल खाता है, इसलिए नियमों का क्रम बहुत महत्वपूर्ण है। -I
"इन्सर्ट" कमांड है, और यह निर्दिष्ट करने के लिए इंडेक्स पैरामीटर के साथ उपयोग किया जाना चाहिए कि सूची में कोई नियम कहां है। -A
"परिशिष्ट" कमांड है, जो सूची के अंत में नियम जोड़ देगा।
-I
इंडेक्स पैरामीटर के बिना उपयोग करने वाले कुछ विकृतियों में (शायद सभी) नियम को एक इंडेक्स में जोड़ देगा, जिससे यह पहला नियम चेक हो जाएगा। इस परिदृश्य में यदि आपके द्वारा चलाया जाने वाला अंतिम कमांड है, iptables -I INPUT -s tcp 0.0.0.0/0 -j DROP
तो iptables सभी ट्रैफ़िक को छोड़ देगा, भले ही आपके पास ACCEPT
चेन में बाद में कोई नियम हो या न हो ।
यहाँ एक नियम स्थापित करने का एक नमूना है जो केवल SSH को एक ही IP से अनुमति देता है:
नियमों के बिना शुरू करना:
#> iptables -nL
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
एक नया "1.2.3.4 से SSH की अनुमति दें" नियम जोड़ें:
#>iptables -A INPUT -p tcp -s 1.2.3.4 --dport 22 -j ACCEPT
अन्य सभी IP से SSH को ब्लॉक करें:
#>iptables -A INPUT -p tcp -s 0.0.0.0/0 --dport 22 -j DROP
अब आपकी INPUT श्रृंखला इस तरह दिखाई देगी:
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- 1.2.3.4 0.0.0.0/0 tcp dpt:22
DROP tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
बाद में, यदि आपको एक दूसरे आईपी को श्वेत सूची में लाने की आवश्यकता है तो आप -I
इसे ब्लैकलिस्ट नियम से पहले रखने के लिए पैरामीटर का उपयोग कर सकते हैं ।
#>iptables -I INPUT 2 -p tcp -s 4.3.2.1 --dport 22 -j ACCEPT
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- 1.2.3.4 0.0.0.0/0 tcp dpt:22
ACCEPT tcp -- 4.3.2.1 0.0.0.0/0 tcp dpt:22
DROP tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
ध्यान दें कि -I INPUT 2
नए नियम को नियम संख्या 2 के रूप में जोड़ा गया है और DROP नियम को संख्या 3 से टकराया है।
iptables
यदि आप लक्षित करना चाहते हैं तो धमाके के संचालक के साथ उलटा समर्थन करता हैDROP
। उदाहरण:iptables -I INPUT -p tcp ! -s <permittedIP> -j DROP