'' Geçiş Erişim Engellendi '' Postfix'i nasıl düzeltilir?


54

Bu sabah, güvenlik sertifikasındaki ad uyumsuzluğu ile ilgili bir sorunu düzeltmek için Posta sunucusu SSL nasıl düzeltilir? , ancak şimdi bir istemciden e-posta göndermeye çalışırken (bu durumda istemci Windows Mail'dir), aşağıdaki hatayı alıyorum.

Reddedilen e-posta adresi 'email@gmail.com' idi. Konu 'Bu bir test. ', Hesap:' mail.domain.com ', Sunucu:' mail.domain.com ', Protokol: SMTP, Sunucu Yanıtı:' 554 5.7.1: Erişim reddedildi ', Bağlantı Noktası: 25, Güvenli (SSL): Hayır , Sunucu Hatası: 554, Hata Numarası: 0x800CCC79

Düzenleme : Bu hesaptan e-posta almaya devam edebilirim ve aynı etki alanındaki diğer hesaplara e-posta gönderirim. Alanımızın dışındaki alıcılara e-posta gönderemiyorum.

TLS'yi tamamen devre dışı bırakmayı denedim ama zar yok, hala aynı hatayı alıyorum.

Dosyayı kontrol ederken mail.log, aşağıdakileri görüyorum.

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

Dosya main.cfşuna benzer:

#
# 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

Bir ek not olarak, işverenim hem yerel ağımızın içinden hem de dışından müşterilerden (Thunderbird ve Outlook) e-postalar gönderebilmek istiyor.


6
Neden kabul etmiyorsun
Rook

Yanıtlar:


58

TLS sadece smtp oturumunda şifrelemeyi etkinleştirir ve Postfix'in bir mesajı iletmesine izin verilip verilmeyeceğini doğrudan etkilemez.

İletim reddedildi iletisi, smtpd_recipient_restrictions kurallarının eşleşmemesi nedeniyle oluşur. Mesajın geçmesine izin vermek için bu koşullardan birinin yerine getirilmesi gerekir:

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

Bu kuralları açıklamak için:

permit_sasl_authenticated

SASL aracılığıyla kimliği doğrulanmış gönderenlere izin verir. Bu, normalde engellenen ağınız dışındaki kullanıcıların kimliğini doğrulamak için gerekli olacaktır.

check_recipient_access

Bu, posta adresinin alıcı adresini temel alan kurallar için / etc / postfix / filter_domains dizinine bakmasına neden olacaktır. (Dosya adındaki dosya adına bakılırsa, muhtemelen sadece belirli alanları engelliyordur ... gmail.com'un orada listelenip listelenmediğini kontrol edin?)

permit_mynetworks

Bu, ana makinelere $ mynetworks'te belirtilen IP aralıklarıyla eşleşen IP adreslerine izin verecektir. Yayınladığınız main.cf dosyasında $ mynetworks, 127.0.0.1 olarak ayarlandı, bu nedenle yalnızca sunucunun kendisi tarafından oluşturulan e-postaları iletecek.

Bu yapılandırmaya bağlı olarak, posta istemcinizin, ileti iletmesine izin verilmeden önce SMTP Kimlik Doğrulaması'nı kullanması gerekir. SASL'nin hangi veritabanını kullandığından emin değilim. Bu, /usr/lib/sasl2/smtpd.conf dosyasında belirtilmiştir. Muhtemelen sanal posta kutularınızla aynı veritabanını kullanmaktadır, bu nedenle posta istemcinizde SMTP kimlik doğrulamasını etkinleştirebilmeli ve ayarlanmış olmalısınız.


14
smtpd_use_tls = no

TLS'yi devre dışı bıraktınız, şimdi yerel ağınızı ekleyerek yetkilendirmeniz gerekiyor mynetworks. Örneğin,

mynetworks = 192.168.1.0/24 127.0.0.0/8

Bu, yalnızca yerel ağınızdan göndermeyi düzeltir. Yerel ağınızın dışından e-posta göndermek için, TLS kimlik doğrulamasının çalışmasını sağlamanız gerekir.


Smtpd_use_tls = evet ayarını yaptım çünkü ağ dışından e-posta gönderebilmemiz gerekiyor. Ancak, sorun devam ediyor.
Noah Goodrich

Smtpd_tls_loglevel değerini 3'e kadar artırın ve günlüklerde ilginç bir şey olup olmadığını görün (ve işiniz bittiğinde tekrar 1'e ya da 0'a düşürmeyi unutmayın).
pgs

Ayrıca, smtp_use_tls değerini hayır olarak ayarlamayı deneyin (harici e-posta göndermek için). Bkz postfix.org/postconf.5.html#smtp_use_tls
syf

1
-1 çünkü herkes tls'i devre dışı bırakamaz.
jgifford25

3
Bunu devre dışı bırakması gerektiğini söylemiyorum; Zaten engelli olduğu için mynetworks kurması gerektiğini söylüyorum. Ve tam çözüm, tekrar çalışmaya başlayabilmektir.
pgs

6

Sanırım seni domain.com'da kararsızlıkla özlüyorsun, çünkü varsayılan relay_domains=$mydestination, bu yüzden sana bir satır ekleyebilirsin:

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

veya:

relay_domains = $mydomain

service postfix restartPostfix conf dosyasını her düzenlediğinizde postfix sunucusunu ( ) yeniden başlatmayı unutmayın .


Ana bilgisayar listesine "localhost, localhost.localdomain" eklemek için + 1 (genellikle bazı sistemlerde sorun var, bunun neden başkaları için sorun değil)
Iain Collins

2

Aynı sorunu Outlook'ta da (dovecote ve postfix backend ile) yaşadım ve iki günümü çözüm aradım ve config dosyalarımı çimdikledim. Tek yapmam gereken görünümdeki posta ayarlarında Giden sekmesinde "Sunucu kimlik doğrulaması gerekiyor" u işaretlemekti ve mesajlarım şimdi gmail’e gönderildi. Http://support.bluetie.com/node/440 Burada ayarı nasıl bulacağınızla ilgili ayrıntılı talimatlara bakın .


2

Bu sorun beni bir süre rahatsız ediyordu. Server1.domain.com adresinden server2.domain.com adresine bağlanmaya çalışıyordum.

İşte bunu nasıl düzelttim -

#/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

Ayrıca / etc / hosts ve / etc / hostname öğesinin düzgün ayarlandığından ve ağ değişikliklerinden sonra aşağıdakileri çalıştırdığınızdan emin olmanız gerekir -

sudo service networking restart

ve postfix yapılandırma değişikliklerinden sonra aşağıdakiler

sudo service postfix reload

0

Benim için: ben eklemek zorunda localhostiçin mynetworksaslında ne olursa olsun 127.0.0.0/8zaten yoktu. Yani, şimdi görünüyor:

mynetworks = 1.1.1.1/32, 127.0.0.0/8, localhost

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.