SMTP सर्वरों के लिए रिवर्स प्रॉक्सी
ग्राहकों के अनुरोधों को संभालने, सुरक्षा, प्रदर्शन और स्केलेबिलिटी में सुधार करने के लिए।

ग्राहक अपने अनुरोध रिवर्स प्रॉक्सी को भेजते हैं,
जो उन्हें उपयुक्त सर्वरों तक पहुंचाता है
एक एकल, सुरक्षित पहुंच बिंदु के रूप में कार्य करना।
मुख्य लाभ:
- सुरक्षा: यह दुर्भावनापूर्ण अनुरोधों को अवरुद्ध कर सकता है, ट्रैफ़िक को एन्क्रिप्ट कर सकता है।
और बैकएंड सर्वरों को सीधे हमलों से सुरक्षित रखें। - प्रदर्शन: यह आने वाले ट्रैफ़िक को कई सर्वरों में वितरित करता है, जिससे ओवरलोड को रोका जा सकता है।
एकल सर्वर का उपयोग करके अधिक उपलब्धता सुनिश्चित करना। - स्केलेबिलिटी: यह आपको सेवा में बिना किसी रुकावट के बैकएंड सर्वर जोड़ने या हटाने की अनुमति देता है।
बढ़ते ट्रैफिक को संभालने की क्षमता प्रदान करना।
HTTP-ओनली रिवर्स प्रॉक्सी (लेयर 7)
इंटरनेट पर कई उपकरण उपलब्ध हैं; शोध के बाद, हमने शुरू में उन उपकरणों को खारिज कर दिया जो केवल HTTP प्रोटोकॉल (लेयर 7) का समर्थन करते हैं:
कोई अपाचे नहीं
“अरे बाप रे! ज़रा उन तकनीकों के बारे में जान लीजिए जिनसे आप काम कर रहे हैं। ईमेल SMTP का इस्तेमाल करता है। अपाचे HTTP का इस्तेमाल करता है। अपाचे को SMTP के बारे में ज़रा भी जानकारी नहीं है। अगर आप ईमेल संदेशों के साथ काम करना चाहते हैं, तो आपको ऐसी तकनीक की ज़रूरत होगी जो SMTP को समझती हो।” – EEAA की टिप्पणी, 18 अगस्त 2016, दोपहर 2:49 बजे
कोई कैडी नहीं
“कैडी केवल HTTP ओवर TCP को प्रॉक्सी कर सकता है, TCP को प्रॉक्सी नहीं कर सकता। Traefik, Nginx या haproxy जैसे TCP को प्रॉक्सी करने वाले रिवर्स प्रॉक्सी का उपयोग करें, या इस प्रायोगिक प्लगइन का उपयोग करें।” – ElevenNotes द्वारा 24 सितंबर, 2024 को टिप्पणी की गई
इसके बाद हमने टिप्पणियों में सुझाए गए तीन विकल्पों पर ध्यान केंद्रित किया: "ट्रैफिक, एनजिनएक्स या हैप्रोक्सी," और उन्हें एक-एक करके स्थापित और परीक्षण किया।
ट्रेफिक पहली पसंद थी।
अधिकांश ट्यूटोरियल डॉकर से शुरू होते थे, एक ऐसा प्लेटफॉर्म जिससे मैं बचना चाहता था और एक सरल समाधान चुनना चाहता था, जो संभवतः लिनक्स पैकेज मैनेजरों में से किसी एक पर आधारित हो, जैसे कि फेडोरा और सेंटओएस जैसे आरपीएम-आधारित वितरणों के लिए YUM, या APT (एडवांस्ड पैकेज टूल), जिसका उपयोग उबंटू और डेबियन जैसे डेबियन-आधारित वितरणों पर किया जाता है।
काफी खोजबीन के बाद, हमें यह हालिया लेख मिला, जिसमें उस प्रकार की स्थापना का वर्णन किया गया है जिसकी हमें तलाश थी: Traefik को systemd सेवा के रूप में सेटअप करें ।
ध्यान दें: आपको SELinux की सेटिंग्स को "Enforcing" से "Permissive" में बदलना होगा।
Udemy पर दो कोर्स आज़माने के बाद, हमें यह बेहतरीन कोर्स मिला: Traefik क्रैश कोर्स (डॉकर के बिना)। दिए गए उदाहरणों को दोहराकर हम इसे चलाने में सफल रहे। वीडियो के अंत में, उत्कृष्ट प्रशिक्षक ने इस टूल के प्रति अपनी पूर्ण असहमति व्यक्त की: Traefik क्रैश कोर्स - 53:50 सारांश ।
इससे हमें आगे परीक्षण करने से हतोत्साहित किया गया, जिसके परिणामस्वरूप हमने कुछ और करने की कोशिश की।
NginX दूसरा विकल्प था।
इस मामले में, YUM का उपयोग करके इंस्टॉलेशन सरल था:
yum install epel-release nginx nginx-mod-stream nginx-mod-mail
ध्यान दें: SELinux में, आपको रिले को सक्षम करना होगा:
setsebool -P httpd_can_network_relay 1
प्रशिक्षण के लिए, हमने सावधानी बरतते हुए पिछले कोर्स ( एनजिनएक्स क्रैश कोर्स) के समान ही प्रशिक्षक को चुना (पहला भाग लगभग एक घंटे बीस मिनट में समाप्त हो जाता है)। प्रशिक्षक भी इस एप्लिकेशन के बारे में आश्वस्त नहीं हैं, विशेष रूप से इस तथ्य के बारे में कि यह वेब सर्वर और रिवर्स प्रॉक्सी दोनों के रूप में कार्य करता है: एनजिनएक्स क्रैश कोर्स - 1:20:10 सारांश ।
रिपोर्ट का अंत इस वाक्य से होता है, "मैं NginX के बजाय HAProxy को चुनूंगा," इसलिए हमने भी HAProxy को आजमाने का फैसला किया।
अंत में, हमने HAProxy को भी आजमाया।
इंस्टॉलेशन बेहद आसान साबित हुआ, क्योंकि यह एक बहुत ही सामान्य एप्लिकेशन है, जो सभी लिनक्स पैकेज मैनेजरों में उपलब्ध है, उदाहरण के लिए: yum install haproxy
हमने अपने भरोसेमंद प्रशिक्षक से भी सलाह ली है: HAProxy क्रैश कोर्स।
यह काम तो करता है, लेकिन दुर्भाग्यवश, यह SMTP प्रमाणीकरण के लिए उपयुक्त नहीं है:
"इस तरह से haproxy को कॉन्फ़िगर करना संभव नहीं है, क्योंकि haproxy SMTP को बिल्कुल भी सपोर्ट नहीं करता है।"
– लुकास्ट्रिबस ने 17 अगस्त, 2023 को टिप्पणी की
एक मानक SMTP सर्वर को रिवर्स प्रॉक्सी के रूप में उपयोग करना
दो सप्ताह के परीक्षण के बाद, हमें इस बिंदु पर यह एहसास हुआ कि
अन्य एसएमटीपी सर्वरों के लिए रिवर्स प्रॉक्सी के रूप में एक मानक एसएमटीपी सर्वर का उपयोग करना बेहतर है।
यह अपना काम करता है, केवल SMTP प्रोटोकॉल का उपयोग करके, कनेक्शनों को ठीक से प्रमाणित करता है।
और "स्मार्टहोस्ट" फ़ंक्शन के माध्यम से अन्य एसएमटीपी सर्वरों को अनुरोध अग्रेषित कर सकता है।
Postfix में, main.cf में, इस प्रकार
relayhost = [smarthost_address]:port
Sendmail में, sendmail.mc में, इस प्रकार
define(`SMART_HOST',`mail.example.com')