प्रेषक पते को पोस्टफ़िक्स में "लॉग-इन-user@example.org" कैसे लागू किया जाए?


15

मैंने SMTP AUTH (पोर्ट 587 पर STARTTLS) के साथ एक पोस्टफ़िक्स सर्वर स्थापित किया है। मेरे सभी उपयोगकर्ता डोमेन "example.org" में हैं। मैं प्रेषक पते को "लॉग-इन-user@example.org" लागू करना चाहता हूं।

मैंने सीखा कि यह main.cf विकल्पों के साथ हासिल किया जा सकता है

smtpd_sender_restrictions = reject_sender_login_mismatch, ...
smtpd_sender_login_maps = hash:/etc/postfix/smtpd_sender_login_maps

एक login_maps फ़ाइल के साथ जैसे:

a@example.org a
b@example.org b
c@example.org c
...

( SMPT AUTH के साथ स्पूफ भेजने वाले एड्रेस को भी ब्लॉक करें देखें ), लेकिन इसका मतलब यह होगा कि जब भी मेरा नया यूजर होगा, मुझे हर बार login_maps फाइल को एडिट करना होगा। मुझे इस तरह की लचीली मैपिंग की आवश्यकता नहीं है: यह हमेशा "log-in-user@example.org" होना चाहिए। क्या कोई आसान विकल्प है?

जवाबों:


14

सबसे पहले, जांचें कि क्या पोस्टफिक्स की आपकी स्थापना कमांड दर्ज करके postconf -mऔर उसके साथ एक लाइन की तलाश में पीसीआर का समर्थन pcreकरती है। एक बार जब आप सत्यापित कर लेते हैं कि आपके पास पीसीआर सपोर्ट है, तो आप निम्नानुसार कर सकते हैं:

/etc/postfix/login_maps.pcre:

/^(.*)@example\.org$/   ${1}

में main.cf:

smtpd_sender_login_maps = pcre:/etc/postfix/login_maps.pcre

यह ठीक काम करना चाहिए।


यह पूर्ण है। ठीक वही जो मेरे द्वारा खोजा जा रहा था!
क्रिस लेचर

3
उबंटू उपयोगकर्ताओं के लिए, आप पोस्टफिक्स पीसीआर के साथ प्राप्त कर सकते हैं sudo apt-get install postfix-pcre। शायद यह सबसे स्पष्ट था।
नीलमोन्दे

रेगेक्स या संदर्भ $myhostnameचर में डोमेन को छोड़ने का कोई तरीका नहीं है ?. यहां आप देख सकते हैं कि Postfix ईमेल के उपयोगकर्ता भाग द्वारा लुकअप टेबल को खोजने में सक्षम है ...
Jaime Hablutzel

मेरा मानना ​​है कि आप बैकस्लैश से बचना चाहते हैं '।' /^(.*)@example\.org$/: डोमेन नाम में चरित्र तो यह एक शाब्दिक मैच के रूप में व्याख्या की है
अर्नोन

अन्यथा, यह "test @ exampleXorg" के साथ-साथ "test@example.org" से मेल खाता है, जो कि अभीष्ट व्यवहार नहीं हो सकता है।
अर्नोन

6

अन्य उत्तर में उल्लिखित regex ईमेल पते के उपयोगकर्ता भाग ( लॉग-इन-यूजर @ example.org) से मेल खाता है । यहाँ कुछ अतिरिक्त जानकारी है।

उपयोगकर्ता नाम के रूप में पूर्ण ईमेल पते का उपयोग करने के लिए, निम्न regex (उदाहरण के लिए /etc/postfix/login_map) का उपयोग करें:

/^(.*)$/   ${1}

इसका मतलब है कि आपका उपयोगकर्ता नाम हमेशा आपका पूर्ण ईमेल पता है ( लॉग-in-user@example.org ) - उस पते से किसी अन्य मौजूदा उपयोगकर्ता नाम को भेजने की अनुमति नहीं है - और आपको हर बार एक अतिरिक्त पोस्टफ़िक्स कॉन्फ़िगर फ़ाइल को अपडेट करने की आवश्यकता नहीं है एक उपयोगकर्ता जोड़ें।

यह एक ऐसे सर्वर पर उपयोग किया जा सकता है जिसमें कई डोमेन कॉन्फ़िगर किए गए हैं। उपयोगकर्ता john.doe@example.com को केवल उस पते से भेजने की अनुमति है, लेकिन john.doe@example.org (विभिन्न उपयोगकर्ता और ईमेल, अलग-अलग व्यक्ति) से नहीं। उपयोगकर्ता नाम john.doe इस मामले में अस्पष्ट होगा।

इसके अलावा, आपके कॉन्फ़िगरेशन के आधार पर, smtpd_sender_login_maps सेटिंग, जिसे इस फ़ाइल को इंगित करना है, वह मास्टर.cf (main.cf के बजाय) में हो सकता है। आधिकारिक डवकोट दस्तावेज के निम्नलिखित उदाहरण हैं (यदि आप एसएएसएल / सबमिशन का उपयोग कर रहे हैं):

submission inet n - n - - smtpd
  -o smtpd_tls_security_level=encrypt
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_sasl_type=dovecot
  -o smtpd_sasl_path=private/auth
  -o smtpd_sasl_security_options=noanonymous
  -o smtpd_sasl_local_domain=$myhostname
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
  -o smtpd_sender_login_maps=hash:/etc/postfix/virtual
  -o smtpd_sender_restrictions=reject_sender_login_mismatch
  -o smtpd_recipient_restrictions=reject_non_fqdn_recipient,reject_unknown_recipient_domain,permit_sasl_authenticated,reject

इस उदाहरण में, सेटिंग को सही फ़ाइल को इंगित करने के लिए समायोजित किया जाना चाहिए और प्रकार के रूप में रेगेक्स या (बेहतर) पीसीआर का उपयोग करना चाहिए। खासकर यदि "वर्चुअल" नामक फ़ाइल पहले से ही किसी अन्य उद्देश्य के लिए उपयोग की जाती है (उदाहरण के लिए virtual_alias_maps, जैसा कि एक आधिकारिक पोस्टफिक्स उदाहरण में दिखाया गया है ), लॉगिन मैपिंग के लिए एक अन्य फ़ाइल का उपयोग किया जाना चाहिए।

से:

smtpd_sender_login_maps=hash:/etc/postfix/virtual

सेवा:

smtpd_sender_login_maps=pcre:/etc/postfix/login_map

0

क्या आप यहां दिखाए गए अनुसार शीर्ष लेख पर regexp के संयोजन का उपयोग कर सकते हैं: http://www.akadia.com/services/postfix_uce.html ? तब आप उदाहरण के लिए केवल प्रेषक को सुनिश्चित करने के लिए [*@example.org] की तरह regexp के साथ संयोजन कर सकते हैं।


चलिए मान लेते हैं, मैं "regexp:" का उपयोग यहां कर सकता हूं (?) मैं regexp को कैसे निर्दिष्ट कर सकता हूं, वह उपयोगकर्ता "a" "a@example.org" के रूप में भेज सकता है, लेकिन "b@example.org" के रूप में नहीं?
क्रिस लेचर

@sonstabo अच्छा होगा यदि आप कॉन्फ़िगरेशन नमूना शामिल करते हैं
Jaime Hablutzel
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.