IPTables के साथ 80,443 को छोड़कर सभी पोर्ट कैसे ब्लॉक करें? [डुप्लिकेट]


15

सभी बंदरगाहों (और बाहर) को ब्लॉक करना आसान है लेकिन यह "को छोड़कर" शब्द के साथ कठिन है। मैं किसी भी नियम को नहीं जानता जो शर्त को पूरा करता है।

पुनश्च: मुझे पता है कि यह सवाल कोई नई बात नहीं है। लेकिन वास्तव में, मुझे कुछ भी मदद नहीं मिली। तो, मेरी मदद करो pls!


क्या आप सभी बंदरगाहों को बंद नहीं कर सकते हैं और फिर अगली पंक्ति में एक भी बंदरगाह खोल सकते हैं?
sinni800

मैं यह करता हूं: iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP iptables -I INPUT -p tcp --dport 80 -j ACCEPT ------ यह काम नहीं है!
user71169

जवाबों:


25

पहले ! प्रतीक नहीं है।

iptables -A INPUT -p tcp -m tcp -m multiport ! --dports 80,443 -j DROP

दूसरा, आपके द्वारा लिखे गए नियमों के अपेक्षित परिणाम नहीं हो सकते हैं। आप पोर्ट 80 पर कनेक्शन की प्रतिक्रिया सहित सब कुछ छोड़ देते हैं। इसलिए, आप एक वेब सर्वर के प्रयोजनों के लिए यह कहते हुए कनेक्ट नहीं कर पाएंगे।

ये नियम संबंधित और स्थापित कनेक्शन की अनुमति देते हैं, इसलिए एक वेब सर्वर को कार्य करना चाहिए, यदि वह वास्तव में आपका क्या करने की कोशिश कर रहा है।

iptables -A INPUT -p tcp -m tcp -m multiport --dports 80,443 -j ACCEPT
<insert further allowed list here>
iptables -A INPUT -m conntrack -j ACCEPT  --ctstate RELATED,ESTABLISHED
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -j DROP
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -j DROP
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -j DROP

2
!इस तरह बच नहीं जाना चाहिए \!, अगर बैश शेल का उपयोग किया जाता है?
क्रिस्टियन सियुपिटु

@CristianCiupitu नहीं इससे बचने की जरूरत नहीं है। आपके पास कुछ अजीब हो सकता है, लेकिन मेरे बैश पर मुझे इससे बचने की ज़रूरत नहीं है।
साइबरनार्ड

मैंने कनेक्शन में पैकेज देखने के लिए "iptables -nvL" का आउटपुट चेक किया। यह काम करने लगता है, आपके नियम। लेकिन मैं जाँच नहीं कर सकता कि यह वास्तव में काम कर रहा है या कुछ ऐप को छोड़कर नहीं है जो उन पोर्ट का उपयोग कर रहे हैं। एक ऐप पोर्ट का उपयोग करता है इसका मतलब यह नहीं है कि यह केवल उस पोर्ट का उपयोग करता है। तो, कोई भी जाँच करने का सुझाव देता है?
user71169

1
@ बर्बर, हाँ, तुम सही हो। एक सादे !को भागने की जरूरत नहीं है। झूठे अलार्म के बारे में क्षमा करें।
क्रिस्टियन सियुपिटु

3
@ मोहम्मदशाह नियम स्वचालित रूप से स्थायी नहीं हैं, रिबूट करें और यह चला जाएगा और आप लॉगिन कर सकते हैं। यदि आप एक ssh कनेक्शन बनाए रखना चाहते हैं, तो आपको पोर्ट की सूची में 22 जोड़ने की आवश्यकता है।
साइबर

5
# Set the default policy of the INPUT chain to DROP
iptables -P INPUT DROP

# Accept incomming TCP connections from eth0 on port 80 and 443
iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 443 -j ACCEPT

यह आपको वह चाहिए जो आपको चाहिए


4
याद रखें कि यदि आप SSH के माध्यम से जुड़े हुए हैं तो आपको TCP पोर्ट 22
Maximilian Ast

हां, अपने SSH पोर्ट के बारे में मत भूलना, शायद आपको ड्रॉप करने के लिए डिफ़ॉल्ट नीति सेट करने से पहले अपना SSH पोर्ट जोड़ना चाहिए। ;)
जेम्स लिटिल

3

आप अपनी डिफ़ॉल्ट कार्रवाई को DROP पर सेट कर सकते हैं, और फिर 80 और 443 की अनुमति देने के लिए अपवाद नियम बना सकते हैं, जैसे:

# Setting default policies:
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

# Exceptions to default policy
iptables -A INPUT -p tcp --dport 80 -j ACCEPT       # HTTP
iptables -A INPUT -p tcp --dport 443 -j ACCEPT      # HTTPS

iptables 'अपवादों' की सूची से तब तक गुज़रेगा जब तक कि यह एक मैच नहीं हो जाता। यह तब -jपैरामीटर द्वारा निर्दिष्ट कार्रवाई करेगा (इस मामले में ACCEPT)। यदि इसे कोई मिलान नहीं मिला, तो यह डिफ़ॉल्ट नीति पर वापस आ जाएगा और पैकेट को छोड़ देगा।

ध्यान दें कि इस वर्कअराउंड के साथ कोई भी उप-डोमेन लॉक हो जाएगा। इस पद्धति के उदाहरण के लिए, आपके पास www.mydomain.com पर काम करना सही होगा, लेकिन आपका उप डोमेन कहता है कि www.sub.mydomain.com DNS त्रुटियों के लिए नहीं खुलेगा।


यह काम होना चाहिए लेकिन यह नहीं है। मैं बहुत भ्रमित हूँ।
user71169

क्या काम नहीं करता है? क्या यह सभी आने वाले पैकेटों की अनुमति देता है, या कोई भी नहीं? क्या आप आउटपुट के साथ अपने प्रश्न को अपडेट कर सकते हैं iptables -nvL?
मटक १

क्यों गिरा वोट? मेरे पास उत्पादन में यह चल रहा है इसलिए मुझे यकीन है कि यह 100% काम करता है।
मटक १

माफ़ करना! यह मैं नहीं हूं, किसी ने ऐसा किया :) :) हां, आपको यकीन है कि जैसे मैं हूं लेकिन यह काम नहीं है। इसलिए मुझे सवाल करना है।
user71169

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