पोस्टफ़िक्स '' रिले एक्सेस अस्वीकृत '' को कैसे ठीक करें?


54

आज सुबह, सुरक्षा प्रमाण पत्र में एक नाम बेमेल के साथ एक समस्या को ठीक करने के लिए, मैंने मेल सर्वर एसएसएल को ठीक करने के लिए अनुशंसित चरणों का पालन किया ? , लेकिन अब, जब क्लाइंट से एक ईमेल भेजने का प्रयास किया जाता है (इस मामले में क्लाइंट विंडोज मेल है), तो मुझे निम्नलिखित त्रुटि मिलती है।

अस्वीकृत ई-मेल पता 'email@gmail.com' था। विषय 'यह एक परीक्षा है। ', खाता:' mail.domain.com ', सर्वर:' mail.domain.com ', प्रोटोकॉल: SMTP, सर्वर प्रतिक्रिया:' 554 5.7.1: रिले एक्सेस अस्वीकृत ', पोर्ट: 25, सुरक्षित (एसएसएल): नहीं , सर्वर त्रुटि: 554, त्रुटि संख्या: 0x800CCC79

संपादित करें : मैं अभी भी इस खाते से ईमेल पुनर्प्राप्त कर सकता हूं, और मैं उसी डोमेन पर अन्य खातों को ईमेल भेजता हूं। मैं सिर्फ हमारे डोमेन के बाहर प्राप्तकर्ताओं को ईमेल नहीं भेज सकता।

मैंने पूरी तरह से टीएलएस को निष्क्रिय करने की कोशिश की, लेकिन कोई पासा नहीं है, फिर भी मुझे वही त्रुटि मिलती है।

जब मैं फ़ाइल की जाँच करता हूँ mail.log, तो मैं निम्नलिखित देखता हूँ।

Jul 18 08:24:41 company imapd: LOGIN, user=user_name@domain.com, ip=[::ffff:111.111.11.11], protocol=IMAP
Jul 18 08:24:42 company imapd: DISCONNECTED, user=user_name@domain.com, ip=[::ffff:111.111.11.11], headers=0, body=0, rcvd=83, sent=409, time=1
Jul 18 08:25:19 company postfix/smtpd[29282]: connect from company.university.edu[111.111.11.11]
Jul 18 08:25:19 company postfix/smtpd[29282]: NOQUEUE: reject: RCPT from company.university.edu[111.111.11.11]: 554 5.7.1 <email@gmail.com>: Relay access denied; from=<user_name@domain.com> to=<email@gmail.com> proto=ESMTP helo=<UserPC>
Jul 18 08:25:19 company postfix/smtpd[29282]: disconnect from company.university.edu[111.111.11.11]
Jul 18 08:25:22 company imapd: DISCONNECTED, user=user_name@domain.com, ip=[::ffff:111.111.11.11], headers=13, body=142579, rcvd=3289, sent=215892, time=79

फ़ाइल main.cfइस तरह दिखती है:

#
# Postfix MTA Manager Main Configuration File;
#
# Please do NOT edit this file manually;
#

#
# Postfix directory settings; These are critical for normal Postfix MTA functionallity;
#

command_directory = /usr/sbin
daemon_directory = /usr/lib/postfix
program_directory = /usr/lib/postfix

#
# Some common configuration parameters;
#

inet_interfaces = all
mynetworks = 127.0.0.0/8
mynetworks_style = host

myhostname = mail.domain.com
mydomain = domain.com
myorigin = $mydomain

smtpd_banner = $myhostname ESMTP 2.4.7.1 (Debian/GNU)
setgid_group = postdrop

#
# Receiving messages parameters;
#

mydestination = localhost, company 
append_dot_mydomain = no
append_at_myorigin = yes
transport_maps = mysql:/etc/postfix/transport.cf

#
# Delivering local messages parameters;
#

mail_spool_directory = /var/spool/mail
mailbox_size_limit = 0
mailbox_command = procmail -a "$EXTENSION"

biff = no

alias_database = hash:/etc/aliases

local_recipient_maps =

#
# Delivering virtual messages parameters;
#
virtual_mailbox_maps=mysql:/etc/postfix/mysql_virt.cf
virtual_uid_maps=mysql:/etc/postfix/uids.cf
virtual_gid_maps=mysql:/etc/postfix/gids.cf
virtual_mailbox_base=/usr/local/virtual
virtual_maps=mysql:/etc/postfix/virtual.cf
virtual_mailbox_domains=mysql:/etc/postfix/virtual_domains.cf


#
# SASL paramters;
#
smtp_use_tls = yes
smtpd_use_tls = yes
smtpd_tls_auth_only = yes
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s

smtp_tls_CAfile = /etc/postfix/ssl/smptd.pem
smtp_tls_cert_file = /etc/postfix/ssl/smptd.crt
smtp_tls_key_file = /etc/postfix/ssl/smptd.key

smtpd_tls_CAfile = /etc/postfix/ssl/smptd.pem
smtpd_tls_cert_file = /etc/postfix/ssl/smptd.crt
smtpd_tls_key_file = /etc/postfix/ssl/smptd.key

smtpd_sasl_auth_enable = yes

smtpd_sasl_security_options = noanonymous

smtpd_sasl_local_domain =

broken_sasl_auth_clients = yes

smtpd_sender_restrictions =
        permit_sasl_authenticated
        permit_mynetworks

smtpd_recipient_restrictions =
        permit_sasl_authenticated
        check_recipient_access hash:/etc/postfix/filtered_domains
        permit_mynetworks
        reject_unauth_destination

एक साइड नोट के रूप में, मेरा नियोक्ता क्लाइंट (थंडरबर्ड और आउटलुक) से हमारे स्थानीय नेटवर्क के भीतर और उसके बाहर से ईमेल भेजने में सक्षम होना चाहता है।


6
आप क्यों नहीं मानेंगे?
रूक

जवाबों:


58

TLS बस smtp सत्र पर एन्क्रिप्शन को सक्षम करता है और सीधे प्रभावित नहीं करता है कि पोस्टफ़िक्स को किसी संदेश को रिले करने की अनुमति होगी या नहीं।

रिलेटेड इनकार संदेश इसलिए होता है क्योंकि smtpd_recipient_restrictions नियमों का मिलान नहीं किया गया था। उन शर्तों में से एक को पूरा किया जाना चाहिए जो संदेश को गुजरने देती हैं:

smtpd_recipient_restrictions =
    permit_sasl_authenticated
    check_recipient_access hash:/etc/postfix/filtered_domains
    permit_mynetworks
    reject_unauth_destination

उन नियमों को समझाने के लिए:

permit_sasl_authenticated

एसएएसएल के माध्यम से प्रमाणित प्रेषकों को अनुमति देता है। यह आपके नेटवर्क के बाहर उपयोगकर्ताओं को प्रमाणित करने के लिए आवश्यक होगा जो सामान्य रूप से अवरुद्ध हैं।

check_recipient_access

यह प्राप्तकर्ता के पते के आधार पर नियमों के लिए / etc / postfix / filtered_domains देखने के लिए पोस्टफ़िक्स का कारण बनेगा। (फ़ाइल नाम पर फ़ाइल नाम को देखते हुए, यह शायद विशिष्ट डोमेन को अवरुद्ध कर रहा है ... यह देखने के लिए जांचें कि क्या gmail.com वहां सूचीबद्ध है?)

permit_mynetworks

यह मेजबान को IP पते से अनुमति देगा जो कि $ mynetworks में निर्दिष्ट IP श्रेणियों से मेल खाता है। आपके द्वारा पोस्ट किए गए main.cf में, $ mynetworks को 127.0.0.1 पर सेट किया गया था, इसलिए यह केवल सर्वर द्वारा उत्पन्न ईमेल को रिले करेगा।

उस कॉन्फ़िगरेशन के आधार पर, आपके मेल क्लाइंट को संदेशों को रिले करने की अनुमति देने से पहले SMTP प्रमाणीकरण का उपयोग करने की आवश्यकता होगी। मुझे यकीन नहीं है कि एसएएसएल डेटाबेस का क्या उपयोग कर रहा है। यह /usr/lib/sasl2/smtpd.conf में निर्दिष्ट है। संभवत: यह आपके वर्चुअल मेलबॉक्स के समान डेटाबेस का भी उपयोग करता है, इसलिए आपको अपने मेल क्लाइंट में SMTP प्रमाणीकरण सक्षम और सभी सेट होने चाहिए।


14
smtpd_use_tls = no

आपने TLS को अक्षम कर दिया है, इसलिए अब आपको इसे जोड़कर अपने स्थानीय नेटवर्क को अधिकृत करने की आवश्यकता है mynetworks। उदाहरण के लिए,

mynetworks = 192.168.1.0/24 127.0.0.0/8

यह आपके स्थानीय नेटवर्क से ही भेजना तय करेगा। अपने स्थानीय नेटवर्क के बाहर से ईमेल भेजने के लिए, आपको टीएलएस प्रमाणीकरण काम करना होगा।


मैंने smtpd_use_tls = हां सेट किया है क्योंकि हमें नेटवर्क के बाहर से ईमेल भेजने में सक्षम होना है। हालाँकि, समस्या बनी रहती है।
नूह गुडरिक

3 तक बंप smtpd_tls_loglevel करें और देखें कि क्या कुछ दिलचस्प लॉग में दिखाई देता है (और समाप्त होने पर इसे वापस 1 या 0 पर छोड़ना याद रखें)।
pgs

इसके अलावा, smtp_use_tls को नहीं (बाहरी ईमेल भेजने के लिए) सेट करने का प्रयास करें। Postfix.org/postconf.5.html#smtp_use_tls
pgs

1
-1 क्योंकि हर कोई tls को निष्क्रिय नहीं कर सकता है।
jgifford25 23

3
मैं यह नहीं कह रहा हूँ कि उसे tls को निष्क्रिय करना चाहिए; मैं कह रहा हूं कि चूंकि वह पहले ही इसे निष्क्रिय कर चुका है इसलिए उसे mynetworks सेटअप करना होगा। और यह है कि पूर्ण समाधान के लिए फिर से काम कर रहे tls मिल रहा है।
पीजी

6

मुझे लगता है कि आप mydestination में domain.com को मिस करते हैं, क्योंकि डिफ़ॉल्ट relay_domains=$mydestination, इसलिए आप लाइन को कॉन्फ़िगर कर सकते हैं:

mydestinations = $mydomain, $myhostname, localhost, localhost.localdomain

या:

relay_domains = $mydomain

service postfix restartहर बार जब आप पोस्टफिक्स कॉन्फिडेंस फाइल को एडिट करते हैं तो पोस्टफिक्स सर्वर ( ) को रिस्टार्ट करना न भूलें ।


मेजबानों की सूची में "लोकलहोस्ट, लोकलहोस्ट.लोकडोमैन" को जोड़ने के लिए + 1 (अक्सर कुछ सिस्टम पर एक समस्या, स्पष्ट नहीं कि यह दूसरों पर एक मुद्दा क्यों नहीं है)
इयान कॉलिन्स

2

मेरे पास आउटलुक में एक ही मुद्दा था (dovecote और पोस्टफ़िक्स बैकएंड के साथ) और मैंने दो दिन बिताए समाधान की तलाश में और अपनी कॉन्फ़िगरेशन फ़ाइलों को ट्विक करने के लिए। मुझे केवल इतना करना था कि "सर्वर को प्रमाणीकरण की आवश्यकता है" चेक आउट आउटगोइंग टैब में मेल सेटिंग्स में आउटलुक में और मेरे संदेश अब जीमेल पर भेजे गए हैं। यहाँ पर सेटिंग को देखने के बारे में विस्तृत निर्देश देखें http://support.bluetie.com/node/440


2

यह समस्या मुझे थोड़ी देर के लिए परेशान कर रही थी। मैं Server1.domain.com से server2.domain.com से कनेक्ट करने का प्रयास कर रहा था।

यहाँ मैंने यह कैसे तय किया -

#/etc/postfix/main.cf
mydomain = server1.domain.com
myhostname = $mydomain
virtual_alias_maps = hash:/etc/postfix/virtual
alias_database = hash:/etc/postfix/virtual
myorigin = /etc/mailname
mydestination = localhost.localdomain localhost $mydomain
relayhost =
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all

आपको यह भी सुनिश्चित करने की आवश्यकता है कि आपने / etc / मेजबान और / etc / hostname को ठीक से सेट किया है या सुनिश्चित करें कि आप नेटवर्किंग के लिए निम्नलिखित परिवर्तन चलाते हैं -

sudo service networking restart

और पोस्टफिक्स कॉन्फ़िगरेशन परिवर्तन के बाद निम्न

sudo service postfix reload

0

मेरे लिए: मैं जोड़ने के लिए किया था localhostकरने के लिए mynetworksतथ्य यह है की परवाह किए बिना 127.0.0.0/8पहले से ही वहाँ था। तो, अब यह लग रहा है:

mynetworks = 1.1.1.1/32, 127.0.0.0/8, localhost

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