iptables त्रुटि: अज्ञात विकल्प - dport


19

नियमों को परिभाषित करते समय कमांड iptables अब सबसे अधिक उपयोग किए जाने वाले विकल्पों में से एक को नहीं पहचानता है --dport:।

मुझे यह त्रुटि मिली:

[root@dragonweyr /home/calyodelphi]# iptables -A INPUT --dport 7777 -j ACCEPT_TCP_UDP
iptables v1.4.7: unknown option `--dport'
Try `iptables -h' or 'iptables --help' for more information.

ऊपर नियम नियम कमांड टेरारिया कनेक्शन को सक्षम करने के लिए एक उदाहरण है।

यहाँ मेरे पास वर्तमान में एक नंगे पत्थरों के रूप में आई कॉन्टेबल्स कॉन्फ़िगरेशन ( listiptablesउर्फ है iptables -L -v --line-numbers), और यह स्पष्ट है कि --dportअतीत में काम किया है:

root@dragonweyr /home/calyodelphi]# listiptables 
Chain INPUT (policy DROP 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1       39  4368 ACCEPT     all  --  lo     any     anywhere             anywhere            
2      114 10257 ACCEPT     all  --  any    any     anywhere             anywhere            state RELATED,ESTABLISHED 
3        1    64 ACCEPT     tcp  --  eth1   any     anywhere             anywhere            tcp dpt:EtherNet/IP-1 
4       72 11610 ACCEPT     all  --  eth1   any     anywhere             anywhere            

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 91 packets, 10045 bytes)
num   pkts bytes target     prot opt in     out     source               destination         

Chain ACCEPT_TCP_UDP (0 references)
num   pkts bytes target     prot opt in     out     source               destination         
1        0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere            

मैं tcp और udp कनेक्शन स्वीकार करने के लिए एक कस्टम श्रृंखला ( इस प्रश्न से प्रेरित ) को परिभाषित करने की कोशिश कर रहा हूं ताकि मुझे हर उस चीज के लिए दो नियमों को परिभाषित न करना पड़े, जिसके लिए मैं tcp और udp सक्षम करना चाहता हूं (जैसे कि Minecraft या टेरारिया सर्वर, या पूरी तरह से एक और सेवा)। लेकिन यह भी काम नहीं करता है:

[root@dragonweyr /home/calyodelphi]# iptables -P ACCEPT_TCP_UDP DROP
iptables: Bad built-in chain name.

यह बहुत निराशाजनक हो रहा है, विनम्र शब्दों में (इस के साथ शामिल होने की मात्रा एक नाविक मुझे अपना मुंह देखने के लिए कहेंगी)। मेरा Google-फू भयानक है, इसलिए मैंने अभी तक इसमें से किसी के लिए भी काम करने का हल नहीं खोजा है। मैं रूटर पर CentOS 6.5 चला रहा हूं। कोई मदद और संकेत जो आप लोग दे सकते हैं वह भयानक होगा।

संपादित करें:

बोनस प्रश्न: मैं पोर्ट फॉरवर्डिंग को भी कॉन्फ़िगर करने की योजना बना रहा हूं। क्या विशिष्ट बंदरगाहों पर आने वाले कनेक्शन को स्वीकार करने के लिए नियमों को निर्धारित करना अभी भी आवश्यक है?

जवाबों:


27

सबसे पहले एक देने -pकी तरह विकल्प -p tcpया -p udp

उदाहरण:

iptables-INPUT -p tcp --dport 22 -m state --state NEW -j DROP

iptables-INPUT -p udp --dport 53 --sport 1024: 65535 -j ACCEPT

आप भी कोशिश कर सकते हैं -p allलेकिन मैंने ऐसा कभी नहीं किया है और उदाहरणों में इसके लिए बहुत अधिक समर्थन नहीं मिला है।


1
मैंने बस इसके साथ प्रयास किया -p allऔर मुझे बिल्कुल वही त्रुटि मिली। unknown option --dport। इसके साथ काम किया, -p tcpलेकिन यह वास्तव में इस मामले में मेरी मदद करने वाला नहीं है क्योंकि यह सिर्फ एक ही समस्या की ओर जाता है: सब कुछ के लिए व्यक्तिगत tcp / udp नियमों को परिभाषित करना।
कैलियो डेल्फी

मेरे अनुभव से, allपोर्ट को निर्दिष्ट करने के साथ कभी काम नहीं किया। हालांकि, विभिन्न प्रोटोकॉल के लिए कई नियम होने के बजाय, आप नियमों के बारे में एक अलग दिशा में सोच सकते हैं। प्रोटोकॉल के आधार पर नियम बनाएं और फिर multiportsकुछ नियमों को एक साथ समूह में करने के विकल्प का उपयोग करें ।
कनामोस

इसलिए, यदि मैं टेरारिया और माइनक्राफ्ट कनेक्शन को सक्षम करना चाहता हूं, तो मैं 7777 और 25565 को खोलने के लिए मल्टीपोर्ट का उपयोग कर सकता हूं, और प्रत्येक जोड़ी बंदरगाहों के लिए एक टीसीपी और यूडीपी नियम बना सकता हूं?
कालो डेल्फी

3
-P का विकल्प एक एकल प्रोटोकॉल होना चाहिए जिसमें बंदरगाहों की अवधारणा है ( -p ICMP --dport whateverस्पष्ट कारणों से या तो काम नहीं करेगा)।
फाल्कन मोमेंट

9

यदि आप उपयोग करते हैं तो प्रोटोकॉल (-p) की आवश्यकता होती है। उदाहरण:

-p tcp

इसके अतिरिक्त, यह एक प्रोटोकॉल निर्दिष्ट करना चाहिए जिसमें बंदरगाहों की अवधारणा है, जैसा कि @FalconMomot ने पहले एक टिप्पणी में बताया था।
एक CVn

आप सही हैं, उस विवरण के लिए :)
डिएगो Woitasen

3

@dmourati और ​​@diegows ने पहले ही आपके पहले प्रश्न का उत्तर दे दिया है, इसलिए मैं आपके दूसरे प्रश्न से निपटूंगा। और बोनस प्रश्न। और मैं भी एक बोनस टिप में फेंक देंगे;)

iptables -P केवल बिल्ड-इन चेन को स्वीकार करता है। में filterमेज, कि हो सकता है INPUT, OUTPUTऔर FORWARDजंजीरों।

पोर्ट फ़ॉरवर्डिंग INPUTश्रृंखला द्वारा नियंत्रित नहीं किया जाता है , इसलिए आपको INPUTश्रृंखला में पोर्ट को खोलने की आवश्यकता नहीं है । यह करता है के द्वारा नियंत्रित हो FORWARD, हालांकि, चेन। उस पर सावधान रहें।

बोनस टिप: जब सीखने और / या समस्या निवारण iptables, के उत्पादन से iptables-saveबेहतर सिर और कंधे का उत्पादन होता है iptables -L -v --line-numbers। यह कोशिश करो, तुम सुखद आश्चर्य होगा :)


एक अच्छे उत्तर के लिए +1, लेकिन आपकी पिछली टिप्पणी से मैं थोड़ा हैरान हूं। मुझे आउटपुट से मुद्दों का निदान करने से नफरत है ; आप इसे बेहतर क्यों पाते हैं ? iptables-saveiptables -L -n -v [--line-numbers]
MadHatter

@ मैथैटर सरल उदाहरण: आप आसानी से देख सकते हैं कि --dportवास्तव -p tcpमें सामने वाले विकल्पों के साथ नियम हैं । आप यह भी देख सकते हैं कि कैसे / जब नियम प्रसंस्करण एक अंतर्निहित श्रृंखला (जैसे, INPUT) से एक कस्टम श्रृंखला (जैसे, ACCEPT_TCP_UDP) से कूदता है। के आउटपुट में ये दो महत्वपूर्ण जानकारी दिखाई नहीं देती हैं iptables -L -n
पेपोलुआन

3
एक और लाभ: मैं कर सकता हूं iptables-save > somefile, somefileविम का उपयोग करके संपादित कर सकता हूं , फिर iptables-apply -t 600 somefileइसे परीक्षण करने के लिए कर रहा हूं । अगर मैं अनजाने में खुद को ब्लॉक कर देता हूं, तो 600 सेकंड के बाद नियम वापस आ जाते हैं।
पेपोलुआन

बोनस टिप बहुत सराहना की है, और पहले से ही इस्तेमाल किया जा रहा है। मैं का उपयोग कर रहा था iptables-saveअपने आप को इससे पहले कि मैं इस प्रश्न पूछा एक कच्चे config डंप से सीखने में मदद करने। मुझे उम्मीद नहीं थी कि FORWARDचेन को पोर्ट पोर्टिंग के लिए ध्यान देने की जरूरत होगी। मुझे उसके बारे में पढ़ना होगा।
कालो डेल्फी

यदि आप "नेटफिल्टर पैकेट फ्लो आरेख" की खोज करते हैं, तो @CalyoDelphi, आप देखेंगे कि हर टेबल और चेन कहां लागू होती है ;-)
pepoluan
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.