क्या प्रवर्तक के आईपी पते को रखते हुए टीसीपी पुनर्निर्देशन संभव है?


1

मेरे पास कई उबंटू होस्ट हैं, जिनमें से प्रत्येक में अधिक उबंटू वर्चुअल मशीनें हैं। वर्चुअल मशीनों में से एक हमारा SMTP सर्वर है। SMTP वर्चुअल मशीन के होस्ट पर सभी SMTP कॉल SMTP VM rinetdके लिए निम्न कॉन्फ़िगरेशन के साथ उपयोग करने के लिए पुनर्निर्देशित किए गए हैं:

aa.bb.cc.dd   25              172.16.1.5      25
aa.bb.cc.dd   465             172.16.1.5      465
aa.bb.cc.dd   587             172.16.1.5      587
aa.bb.cc.dd   993             172.16.1.5      993

aa.bb.cc.ddहोस्ट का सार्वजनिक आईपी पता जहां SMTP VM बैठा है। 172.16.1.5SMTP VM का आंतरिक पता है।

मेरी समस्या यह है, कि मैं SMTP VM पर रिले को सेटअप नहीं कर सकता, क्योंकि SMTP VM पर पोस्टफ़िक्स सर्वर को IP पते के रूप में aa.bb.cc.dd के साथ हर कॉल मिलती है, इसलिए मैं रिले करने पर कोई फ़िल्टरिंग सेट नहीं कर सकता, लेकिन मैं केवल एक युगल आईपी पते के लिए रिले करना सक्षम करना चाहता हूं (हमारे अन्य मेजबानों के लिए)।

क्या SMTP1 VM को SMTP कॉल अग्रेषित करने की कोई संभावना है, ताकि प्रवर्तक का IP पता रखा जाए?

जवाबों:


0

आपको उपयोग iptablesऔर iptables-persistentपैकेज पर ध्यान देना चाहिए - यह आपको नैटिंग का उपयोग करने देगा, न कि एक नया सॉकेट बनाकर कनेक्शनों को 'फॉरवर्ड' करने के बजाय।

आपका कॉन्फ़िगरेशन कुछ इस तरह दिखाई देगा:

-A PREROUTING -d aa.bb.cc.dd -p tcp -m tcp --dport 25  -j DNAT --to-destination 172.16.1.5:25
-A PREROUTING -d aa.bb.cc.dd -p tcp -m tcp --dport 465 -j DNAT --to-destination 172.16.1.5:465
-A PREROUTING -d aa.bb.cc.dd -p tcp -m tcp --dport 587 -j DNAT --to-destination 172.16.1.5:587
-A PREROUTING -d aa.bb.cc.dd -p tcp -m tcp --dport 993 -j DNAT --to-destination 172.16.1.5:993

आपको सक्षम करने की भी आवश्यकता होगी ip_forward। निम्नलिखित सेट करें /etc/sysctl.conf:

net.ipv4.ip_forward=1

आपकी मेजबान मशीन एक राउटर की तरह काम करेगी, जिससे मेहमानों को एक्सेस किया जा सकेगा, सही सोर्स आईपी को बनाए रखा जा सकेगा।


किसी तरह यह काम नहीं करता है। मैंने पहले HTML पोर्ट को रीडायरेक्ट करने की कोशिश की थी, क्योंकि मैं अपाचे लॉग में स्रोत आईपी को तुरंत देख सकता था। यह साधारण टाइमआउट या कभी-कभी मुझे ERR_NETWORK_CHANGEDब्राउज़र में मिलता है। मैंने यह देखने के लिए भी लॉग इन किया, कि नियम पहुंच गया है और यह वास्तव में पहुंच गया है, लेकिन अग्रेषित नहीं किया गया है। क्या गलत हो सकता है? मेरी नैट टेबल की तरह दिखता है:LOG tcp -- 0.0.0.0/0 94.231.88.101 tcp dpt:80 LOG flags 0 level 4 DNAT tcp -- 0.0.0.0/0 94.231.88.101 tcp dpt:80 to:172.16.2.201:80
टिबर नेगी

क्या आपने सक्षम किया ip_forward? कृपया फ़ॉरवर्ड श्रृंखला के लिए डिफ़ॉल्ट / परिणामी नीति की भी जाँच करें iptables -L। ऐसा लगता है कि यह वर्तमान में DROP (इसलिए टाइमआउट) है। नोट: जैसा कि अब यह स्पष्ट है कि यह इंटरनेट पर एक मेजबान है, आपको रूटिंग के साथ सावधान रहना चाहिए - सुनिश्चित करें कि आप इसे ठीक से फ़ायरवॉल कर दें अन्यथा लोग आपके अतिथि वीएम तक पहुंच सकते हैं।
Attie

हाँ, cat /proc/sys/net/ipv4/ip_forwardरिटर्न 1. filterतालिका में केवल मूल नियम हैं, अर्थात INPUT / FORWARD / OUTPUT (पॉलिसी ACCEPT)। मैं चकरा गया हूं।
टिबर नेगी

एक कदम आगे। यदि मैं जोड़ता हूं iptables -t nat -A POSTROUTING -j MASQUERADE, तो लक्ष्य प्रणाली पहुंच जाती है, लेकिन निश्चित रूप से मैंने मूल स्रोत आईपी खो दिया है। किसी तरह, दो इंटरफेस के बीच काम नहीं करता है।
टिबोर नेगी

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