विकास सर्वर पर पोस्टफ़िक्स, मेल को केवल एक डोमेन पर भेजने की अनुमति दें


11

हमारे पास हमारे विकास सर्वर पर पोस्टफ़िक्स है, और मैं चाहूंगा कि यह केवल हमारे डोमेन को मेल भेजने में सक्षम हो, अन्य डोमेन को नहीं, बाहरी उपयोगकर्ताओं को हमारे विकास सर्वर से गलती से मेल प्राप्त करने से रोकता है।

मैंने डॉक्स के माध्यम से खोज की, कई चीजों की कोशिश की लेकिन यह अभी भी सभी डोमेन को भेज रहा है ...

जवाबों:


7

परिवहन (5) मानचित्रों का उपयोग यह परिभाषित करने के लिए किया जाता है कि पोस्टफ़िक्स द्वारा ईमेल को कैसे रूट किया जाता है।

  • निम्न पंक्ति को /etc/postfix/main.cf में जोड़ें:

    transport_maps = hash:/etc/postfix/transport
    
  • इस सामग्री के साथ नई फ़ाइल / etc / postfix / transport जोड़ें:

    .example.com   :
    example.com    :
    *              discard:
    

example.comडोमेन के साथ बदलें आपके मेलस्वर को अभी भी मेल भेजना चाहिए। यदि आप उप-डोमेन के बारे में परवाह नहीं करते हैं तो पहली पंक्ति को हटा दें।

पोस्टमैप (1) के साथ संपादन करने के बाद फ़ाइल को हैश करना न भूलें और पोस्टफ़िक्स को पुनः लोड करें ताकि परिवर्तन प्रभावी हो सकें:

# postmap /etc/postfix/transport && postfix reload

7

आप आसानी से मानक smtpd_recipient_restrictions या अधिक सटीक check_recipient_access के साथ प्राप्तकर्ताओं को प्रतिबंधित कर सकते हैं ।

निम्नलिखित सामग्री के साथ बस एक एक्सेस (5) टेबल बनाएं /etc/postfix/access( उदाहरण.कॉम वह डोमेन जिसे आप मेल भेजना चाहते हैं):

example.com    OK

आप केवल कुछ विशिष्ट पतों की भी अनुमति दे सकते हैं:

user1@example.com    OK
user2@example.com    OK

पोस्टमैप (1) के साथ संपादन करने के बाद फ़ाइल को हैश करना न भूलें :

# postmap /etc/postfix/access

अब निम्नलिखित प्राप्तकर्ता प्रतिबंधों को अपने main.cf में डालें:

smtpd_recipient_restrictions = 
    hash:/etc/postfix/access
    reject

और पोस्टफ़िक्स पुनः लोड करें:

postfix reload

उसके बाद, अगर यह काम करता है तो इसका परीक्षण करें


1
यह SMTP के माध्यम से भेजे गए मेल के लिए काम करेगा, न कि / usr / lib / sendmail कमांड के माध्यम से और स्थानीय प्रक्रिया दोनों कर सकता है। ऐसा लगता है कि प्रेषित / पोस्टड्रॉप के साथ स्थानीय सबमिशन ब्लॉक करने के लिए 'अधिकृत_submit_users' सेटिंग का उपयोग किया जा सकता है, फिर smtpd प्रतिबंध पर्याप्त होगा।
जसक कोनीजेनी

6

तो अगर कोई इस तरह ठोकर खाए जैसे मैंने किया: जवाब वास्तव में हैडर_चेक और यह इस तरह काम करता है:

  • निम्नलिखित पंक्ति को इसमें जोड़ें /etc/postfix/main.cf:

    header_checks = regexp:/etc/postfix/header_checks
    
  • /etc/postfix/header_checksइस सामग्री के साथ नई फ़ाइल जोड़ें :

    /^To:.*@allowed-domain.com/  DUNNO
    /^To:.*@/   REDIRECT redirect@example.com
    

allowed-domain.comडोमेन के साथ बदलें आपके मेलस्वर को अभी भी मेल भेजना चाहिए। redirect@example.comईमेल पते से बदलें अन्य सभी ईमेलों को पुनर्निर्देशित किया जाना चाहिए।

यदि आपको कई डोमेन की अनुमति देने की आवश्यकता है, तो पहली पंक्ति इस तरह दिखनी चाहिए:

/^To:.*@(allowed-domain.com|another-domain.com)/  DUNNO

रीडायरेक्ट करने के बजाय आप अन्य सभी मेल्स को सरल रूप से छोड़ सकते हैं। दूसरी पंक्ति को इसके साथ बदलें:

/^To:.*@/   DISCARD No outgoing mails allowed

स्पष्टीकरण:

  • पोस्टफिक्स एक-एक करके मेल हेडर्स से गुजरता है।
  • प्रत्येक हेडर लाइन header_checksफाइल लाइन-बाय-लाइन के खिलाफ मेल खाती है ।
  • यदि यह पहली पंक्ति से मेल खाता है ( To:अनुमति प्राप्त डोमेन शामिल है), तो यह अगली हेडर लाइन पर छोड़ देता है और शीर्ष से फिर से हेडर चेक शुरू करता है। चूंकि कोई अन्य रेखा मेल नहीं खाती है, इसका मतलब है कि मेल डिलीवर हो जाता है।
  • यदि यह दूसरी पंक्ति से मेल खाता है ( To:अन्य बाहरी ईमेल पता शामिल है), तो यह मेल को पुनर्निर्देशित करता है।

इस समस्या को इस उत्तर के साथ हल किया गया लगता है, शायद इसे हल के रूप में चिह्नित किया जाना चाहिए? (यह मेरे लिए कम से कम एक आकर्षण की तरह काम करता है)
सेवर्रे

किस बारे में Cc:और Bcc:?
पॉल टोबियास

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