मैं iptables के माध्यम से आउटगोइंग कनेक्शन की अनुमति कैसे दूं?


17

मेरे पास दो सर्वर हैं। 2194 के बंदरगाह पर दूसरे के साथ संवाद करने की पहली जरूरतों पर कार्यक्रम।

मुझे पता है कि यह काम नहीं कर रहा है, क्योंकि जब मैं करता हूं:

root@server1 [~]# telnet myserver2.com 2194
Trying 123.123.123.98...
telnet: connect to address 123.123.123.98: Connection timed out
telnet: Unable to connect to remote host: Connection timed out

server1# iptables -L -n

Chain INPUT (policy DROP)
...
...

Chain FORWARD (policy DROP)
target     prot opt source               destination

Chain OUTPUT (policy DROP)
...

Chain LOCALINPUT (1 references)
target     prot opt source               destination
...

Chain LOCALOUTPUT (1 references)
target     prot opt source               destination
...

Chain LOGDROPIN (1 references)
target     prot opt source               destination
DROP       all  --  0.0.0.0/0            0.0.0.0/0

Chain LOGDROPOUT (1 references)
target     prot opt source               destination
DROP       all  --  0.0.0.0/0            0.0.0.0/0

लेकिन यह काम करता है जब आप सर्वर 1 पर टेलनेट लोकलहोस्ट 2194 करते हैं? Server1 से telnet server1spublicip 2194 के बारे में क्या?
गेरेंट जोन्स सेप

सर्वर 2 पर टेलनेट लोकलहोस्ट 2194 काम करता है। telnet server2ipaddress 2194 server2 पर भी काम करता है।
सिलिकॉनपी

1
con आप करते हैं: iptables -L -n दोनों सर्वरों पर, और मुझे बताएं कि क्या आपको निम्नलिखित में से अधिक मिलता है (मैं आपके नियमों आदि को नहीं देखना चाहता; ;-)) चेन INPUT (पॉलिसी ACCEPT) लक्ष्य विरोध ऑप्ट सोर्स गंतव्य चेन FORWARD () पॉलिसी ACCEPT) लक्ष्य विरोध ऑप्ट सोर्स डेस्टिनेशन OUTPUT (पॉलिसी ACCEPT) टारगेट ऑप्ट ऑप्ट सोर्स गंतव्य
Geraint Jones

नमस्कार! एडिट प्लीज देखिए ...
Siliconpi

जवाबों:


21

सर्वर पोर्ट 1 से सर्वर 2 से टीसीपी पोर्ट 2194 पर आउटगोइंग कनेक्शन की अनुमति देने के लिए, सर्वर 1 पर इसका उपयोग करें:

iptables -A OUTPUT -p tcp -d <server2ip> --dport 2194 -j ACCEPT

TCP पोर्ट 2194 पर server1 से server2 के लिए आने वाले कनेक्शन की अनुमति देने के लिए, server2 पर इसका उपयोग करें:

iptables -A INPUT -p tcp -s <server1ip> --dport 2194 -j ACCEPT

बकवास - मैंने पहला, काम नहीं किया। मैंने दूसरा किया, या तो काम नहीं किया ... मेरे पास बहुत प्रतिबंधात्मक सेटिंग्स हो सकती हैं ... पहले संपादित देखें
सिलिकॉनपीई

1
"-ए" के बजाय "-आई" का उपयोग करने का प्रयास करें; यह नए नियमों को अन्य सभी के ऊपर रखता है जो पहले से ही लागू हो सकते हैं।
मैसिमो

क्या मुझे कुछ अलग करना चाहिए अगर एप्लिकेशन वास्तव में सीधे आईपी पते के बजाय डोमेन नाम का उपयोग करता है?
सिलिकॉनपीई


3
लोगों के लिए "मैं" के रूप में इसका माइनस- I जो पढ़ सकता है कि
सिलिकॉनपीई

6

बस कुछ संकेत

क्या जो सेवा आप केवल लोकलहोस्ट पर सुन रहे हैं वह चल रही है? Daud

netstat -ltn

अगर आपको कोई लाइन दिखती है 0.0.0.0:2194तो आप ठीक हैं। यदि आप देखते हैं 127.0.0.1:2194तो (या आप केवल स्थानीय कनेक्शन पर सुन रहे हैं :::2194और ::1:2194क्रमश: IPv6 पतों, के रूप में दिखाया के लिए tcp6लाइनों)।

वर्तमान iptables नियम क्या हैं?

iptables -L

क्या पॉलिसी DROP / REJECT है (यदि ऐसा नहीं है तो यह सभी चेन के लिए होना चाहिए)? क्या आपके लिए आवश्यक पोर्ट के लिए एक विशिष्ट नियम है?

यदि यह एक फ़ायरवॉल समस्या है, तो या तो आपत्तिजनक नियम को संशोधित करना या जैसे नियम जोड़ना

iptables -A INPUT -p tcp --dport 2194 -j ACCEPT 

चाल करना चाहिए (अप्राप्त)

=== EDIT ===

नेटवर्क समस्या का परीक्षण करने के लिए एक अच्छा उपकरण है tcpdump। कनेक्ट करने की कोशिश करते समय दोनों सर्वरों पर इसे चलाएं और देखें कि पैकेट कहां जा रहे हैं। उदाहरण के लिए सर्वर 1 रन:

tcpdump -i eth0 -n host server2.com

और सर्वर 2 रन पर:

tcpdump -i eth0 -n host server1.com

फिर कनेक्ट करने का प्रयास करें। आपको स्रोत और गंतव्य से स्क्रीन पर डंप किए गए सभी टीसीपी पैकेटों को देखना चाहिए। इस जानकारी के साथ आपको यह इंगित करने में सक्षम होना चाहिए कि समस्या कहां है।


हाय Dan - मुझे नहीं लगता कि server2 कनेक्शन को स्वीकार करने में कोई समस्या है (मैं अपने घर पीसी का उपयोग करके इसे कनेक्ट करने में सक्षम हूं), लेकिन मुझे लगता है कि server1 doesn
`

iptables-OUTPUT -p tcp --dport 2194 -j ACCEPT
गेरेंट जोन्स

हाय c10k, कि काम नहीं किया ... और telnet didnt काम या तो करने के लिए
tryign

कुछ अन्य विचारों को जोड़ा
डैन एंड्राट्टा

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