फ़ायरवॉल नियमों को आधे से कम करें - tcp और udp के लिए एक iptables नियम


12

मेरे फ़ायरवॉल पर कई iptables नियम हैं जो इस तरह दिखते हैं:

iptables -A zone_lan_forward -p tcp -d 1.2.3.0/24 -j ACCEPT
iptables -A zone_lan_forward -p udp -d 1.2.3.0/24 -j ACCEPT

क्या प्रत्येक पते के लिए दो नियम - एक tcp के लिए और एक udp के लिए एक शॉर्टकट है? मेरा मतलब है कि मैं ऐसा कुछ कर सकता हूं:

iptables -A zone_lan_forward -p tcp,udp -d 1.2.3.0/24 -j ACCEPT

जवाबों:


22

एक नई श्रृंखला बनाएं जो किसी भी टीसीपी और यूडीपी पैकेट को स्वीकार करेगा, और व्यक्तिगत आईपी / पोर्ट अनुमेय नियमों से उस श्रृंखला में कूद जाएगा:

iptables -N ACCEPT_TCP_UDP
iptables -A ACCEPT_TCP_UDP -p tcp -j ACCEPT
iptables -A ACCEPT_TCP_UDP -p udp -j ACCEPT

iptables -A zone_lan_forward -d 1.2.3.0/24 -j ACCEPT_TCP_UDP

यह कुछ अतिरिक्त लाइनों के ओवरहेड को जोड़ता है, लेकिन टीसीपी / यूडीपी नियमों की संख्या को आधा कर देता है।

मैं तर्क को छोड़ना नहीं चाहूंगा -p, क्योंकि आप न केवल ICMP के लिए फ़ायरवॉल खोल रहे हैं, बल्कि कोई अन्य प्रोटोकॉल भी। Iptables मैन पेज से -p:

निर्दिष्ट प्रोटोकॉल tcp, udp, icmp, या सभी में से एक हो सकता है, या यह एक संख्यात्मक मान हो सकता है, इनमें से किसी एक प्रोटोकॉल या एक अलग का प्रतिनिधित्व करता है। / Etc / प्रोटोकॉल से एक प्रोटोकॉल नाम की भी अनुमति है।

आप टीसीपी, यूडीपी, और ICMP के अलावा कोई भी प्रोटोकॉल पर सुन नहीं किया जा सकता अभी , लेकिन कौन जानता है कि भविष्य में क्या पकड़ सकता है। अनावश्यक रूप से फायरवॉल को खुला छोड़ना बुरा व्यवहार होगा।

अस्वीकरण: iptables कमांड मेरे सिर के ऊपर हैं; मेरे पास एक बॉक्स तक पहुंच नहीं है जिस पर उन्हें एटीएम का परीक्षण करना है।


यह एक बहुत ही सुंदर समाधान है जो अनावश्यक रूप से फ़ायरवॉल को खुला नहीं छोड़ता है।
बिग मैकलेरजैग

4
लेकिन नई श्रृंखला बनाने की यह विधि विफल हो जाएगी यदि गंतव्य पोर्ट नंबर के माध्यम से फ़िल्टरिंग की जाती है। क्या कोई सुझाव दे सकता है कि उपरोक्त समस्या से कैसे उबरें?
अमोर

@Amor इस उदाहरण में यदि आप श्रृंखला के -p allसभी --dportनियमों का उपयोग करते हैं zone_lan_forward, तो वह प्राप्त कर सकते हैं जो आप देख रहे हैं। मैं निश्चित रूप से मान रहा हूं कि चेन के कारण गैर-टीसीपी / यूडीपी प्रोटोकॉल के साथ उस श्रृंखला पर आने का कोई अन्य तरीका नहीं है ACCEPT_TCP_UDP। जाहिर है कि यह एक जोखिम भरी रणनीति है यदि कई लोगों के पास नियमों को संशोधित करने की पहुंच है और कोई व्यक्ति इस सूक्ष्मता को समझे बिना अपने नियमों के साथ आता है और उसका संपादन करता है।
शमूएल हैमर

ओह। चेन के आदेश पर ध्यान नहीं दिया। आपको इस उदाहरण में जंजीरों के क्रम को भी बदलने की आवश्यकता होगी जो मैंने अभी ठीक से काम करने के लिए कहा था। तो जो ACCEPT_TCP_UDPकूदता है zone_lan_forwardफिर कूदता है ACCEPT
शमूएल हैमर

2

यदि आप वास्तव में ICMP ट्रैफ़िक (जो आप किसी नियम के साथ विश्व स्तर पर ब्लॉक कर सकते हैं) के बारे में परवाह नहीं करते हैं, तो आप बस -p ध्वज को छोड़ सकते हैं और यह सभी प्रोटोकॉल को कवर करेगा।


क्या मुझे ICMP ट्रैफिक की परवाह करनी चाहिए? मैं ज्यादातर HTTP एक्सेस से चिंतित हूं।
बिग मैकलेरज्यूज

ज़रुरी नहीं। आप चाहें तो ICMP (पिंग) को ब्लॉक कर सकते हैं, लेकिन चूंकि यह HTTP ट्रैफ़िक की सेवा कर रहा है, वैसे भी बहुत अधिक पॉइंट नहीं है।
नाथन सी

@NathanC, मुझे लगता है कि जब ओपी पूछ रहा है कि कैसे अपने नियमों को आधा किया जाए तो सभी बंदरगाहों को खोलने की सलाह अब या भविष्य में परेशानी का कारण बन सकती है।
जेड डेनियल

@JedDaniels -p स्विच प्रोटोकॉल निर्दिष्ट करता है और पोर्ट नहीं। नीचे दिए गए जवाब में एक विकल्प है अगर वे tcp और udp के अलावा किसी और चीज़ को लॉक करना चाहते हैं।
नाथन सी

@NathanC हाँ, और -p हटाने का अर्थ है "सभी प्रोटोकॉल खोलें, न कि केवल tcp या udp", जो खतरनाक नहीं होने पर लापरवाह है।
जेड डेनियल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.