एक इंटरफ़ेस पर iptables सक्षम करें


16

मैं iptables को केवल एक इंटरफ़ेस फ़िल्टर करना चाहता हूं, eth0, जो WAN का सामना कर रहा है। यह कैसे किया जा सकता है? और मैं eth0 पर ftp और ssh पोर्ट को खुला रखना चाहता हूँ।


कृपया iptables मैन पेज पढ़ें - या यदि मैं आपकी समस्या को गलत समझ रहा हूं, तो कृपया प्रश्न को अधिक विशिष्ट बनाएं।
जरी जोकिनेन

जवाबों:


25

तो सभी इंटरफेस के लिए, लेकिन आप सभी ट्रैफ़िक को स्वीकार करना चाहते हैं, और eth0 पर आप ftp और ssh को छोड़कर आने वाले सभी ट्रैफ़िक को छोड़ना चाहते हैं।

सबसे पहले, हम डिफ़ॉल्ट रूप से सभी ट्रैफ़िक को स्वीकार करने की नीति निर्धारित कर सकते हैं।

iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT

फिर, हम आपके फ़ायरवॉल नियमों को रीसेट कर सकते हैं।

iptables -F

अब हम कह सकते हैं कि हम eth0 पर आने वाले ट्रैफ़िक को अनुमति देना चाहते हैं जो कि एक कनेक्शन का एक हिस्सा है जिसे हमने पहले ही अनुमति दी थी।

iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT

इसके अलावा, हम eth0 पर आने वाले ssh कनेक्शन की अनुमति देना चाहते हैं।

iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT

लेकिन यह कि eth0 पर आने वाली किसी भी चीज़ को छोड़ दिया जाना चाहिए।

iptables -A INPUT -i eth0 -j DROP

थोड़ा और गहराई के लिए इस CentOS विकी प्रविष्टि को देखें

एफ़टीपी ssh की तुलना में एक पेचीदा मामला है क्योंकि यह एक यादृच्छिक पोर्ट का उपयोग कर सकता है, इसलिए इस पिछले प्रश्न को देखें


5
चेतावनी !!! "Iptables -F" से पहले "iptables -P ..." करें। यदि आप वर्तमान नियम डिफ़ॉल्ट रूप से ट्रैफ़िक छोड़ने के लिए सेट कर रहे हैं, तो रनिंग -F आपके बॉक्स से बाहर निकल जाएगा। यही कारण है कि डिफ़ॉल्ट नीति को अनुमति देने के लिए, और विशेष रूप से अन्य सभी ट्रैफ़िक को छोड़ने के लिए एक नियम जोड़ने के लिए सर्वोत्तम अभ्यास है।
Coops

8

कुछ इस तरह से काम करना चाहिए:

iptables -A INPUT -i eth1 -p all -j DROP
iptables -A INPUT -i eth0 -p all -j ACCEPT

1
WAN इंटरफ़ेस पर "ड्रॉप एवरथिंग" की तुलना में बहुत अधिक अच्छे (हालांकि थोड़ा सा अच्छा है, एह?) - आप जिस इंटरफ़ेस को फ़िल्टर करना चाहते हैं उसे फ़िल्टर करने के लिए नियम लिखें, और ACCEPTअन्य इंटरफेस पर बस सब कुछ।
voretaq7


4

यह बहुत सरल है जब आप एक iptablesनियम बनाते हैं तो आपको इंटरफ़ेस निर्दिष्ट करना होगा। लैन कार्ड निर्दिष्ट करने का विकल्प जिस पर iptablesकाम करना चाहिए-i

निम्नलिखित नियम आपको एक अच्छा उदाहरण दे सकते हैं

iptables -A INPUT -p tcp -i eth0 --dport 22 -j ACCEPT
iptables -A INPUT -p tcp -i eth0 --dport 21 -j ACCEPT
iptables -A INPUT -p tcp -i eth0 -j REJECT --reject-with tcp-reset 

अंतिम नियम किसी भी अन्य पैकेट को अस्वीकार करना है जो पहले 2 नियमों से मेल नहीं खाता है। सभी नियमों iptablesको दिए गए क्रम में निष्पादित किया जाता है, इसलिए पैकेट को अस्वीकार करने का नियम हमेशा अंतिम होता है।

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