web-dev-qa-db-ja.com

Postfix 2.11.0、エラーコード:リレーアクセスが554.5.7.1を拒否、すべての外部の受信メールを拒否

ここにいくつかのTLCが必要です。ここのチュートリアルに従って、このpostfix/dovecot/clamavメールサーバーを構築しています: https://www.exratione.com/2014/05/a-mailserver-on-ubuntu-1404-postfix-dovecot-mysql/

この問題に遭遇し、何時間も何の結果ももたらさなかった。このサーバーにはメールクライアントが問題なくアクセスできます。メールは正常に送信されますが、外部からのインバウンドメールは受け取らず、拒否されます。

Mail.logからのエラーメッセージは次のとおりです。

Oct  7 12:52:19 mail postfix/smtpd[7612]: NOQUEUE: reject: RCPT from mail-la0-f49.google.com[209.85.215.49]: 554 5.7.1 <[email protected]>: Relay access denied; from=<[email protected]> to=<[email protected]> proto=ESMTP helo=<mail-la0-f49.google.com>

これが私のpostconf -nの結果です:

    append_dot_mydomain = no
    biff = no
    broken_sasl_auth_clients = yes
    config_directory = /etc/postfix
    content_filter = amavis:[127.0.0.1]:10024
    disable_vrfy_command = yes
    dovecot_destination_recipient_limit = 1
    enable_original_recipient = no
    header_checks = regexp:/etc/postfix/header_checks
    inet_interfaces = all
    mailbox_size_limit = 0
    maximal_backoff_time = 8000s
    maximal_queue_lifetime = 7d
    minimal_backoff_time = 1000s
    mydestination =
    myhostname = mail.ncullc.com
    mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
    mynetworks_style = Host
    myorigin = /etc/hostname
    readme_directory = no
    recipient_delimiter = +
    smtp_helo_timeout = 60s
    smtp_tls_note_starttls_offer = yes
    smtp_tls_security_level = may
    smtpd_banner = $myhostname ESMTP $mail_name
    smtpd_client_restrictions = reject_rbl_client sbl.spamhaus.org, reject_rbl_client blackholes.easynet.nl, reject_rbl_client dnsbl.njabl.org
    smtpd_data_restrictions = reject_unauth_pipelining
    smtpd_delay_reject = yes
    smtpd_hard_error_limit = 12
    smtpd_helo_required = yes
    smtpd_helo_restrictions = permit_mynetworks, warn_if_reject reject_non_fqdn_hostname, reject_invalid_hostname, permit
    smtpd_recipient_limit = 16
    smtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination, permit
    smtpd_sasl_auth_enable = yes
    smtpd_sasl_authenticated_header = yes
    smtpd_sasl_local_domain =
    smtpd_sasl_path = private/auth
    smtpd_sasl_security_options = noanonymous
    smtpd_sasl_type = dovecot
    smtpd_sender_restrictions = permit_sasl_authenticated, permit_mynetworks, warn_if_reject reject_non_fqdn_sender, reject_unknown_sender_domain, reject_unauth_pipelining, permit
    smtpd_soft_error_limit = 3
    smtpd_tls_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem
    smtpd_tls_key_file = /etc/ssl/private/ssl-cert-snakeoil.key
    smtpd_tls_loglevel = 1
    smtpd_tls_received_header = yes
    smtpd_tls_security_level = may
    smtpd_tls_session_cache_timeout = 3600s
    tls_random_source = dev:/dev/urandom
    unknown_local_recipient_reject_code = 450
    virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf, mysql:/etc/postfix/mysql_virtual_alias_domainaliases_maps.cf
    virtual_gid_maps = static:8
    virtual_mailbox_base = /var/vmail
    virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_domains_maps.cf
    virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf, mysql:/etc/postfix/mysql_virtual_mailbox_domainaliases_maps.cf
    virtual_transport = dovecot
    virtual_uid_maps = static:150

これが私のdovecot -nの結果です:

    # 2.2.9: /etc/dovecot/dovecot.conf
    # OS: Linux 3.13.0-36-generic x86_64 Ubuntu 14.04.1 LTS ext3
    auth_mechanisms = plain login
    first_valid_uid = 150
    last_valid_uid = 150
    mail_gid = mail
    mail_location = maildir:/var/vmail/%d/%n
    mail_uid = vmail
    namespace inbox {
      inbox = yes
      location =
      mailbox Drafts {
        special_use = \Drafts
      }
      mailbox Junk {
        special_use = \Junk
      }
      mailbox Sent {
        special_use = \Sent
      }
      mailbox "Sent Messages" {
        special_use = \Sent
      }
      mailbox Trash {
        special_use = \Trash
      }
      prefix =
    }
    passdb {
      args = /etc/dovecot/dovecot-sql.conf.ext
      driver = sql
    }
    postmaster_address = [email protected]
    protocols = " imap pop3"
    service auth {
      unix_listener /var/spool/postfix/private/auth {
        group = postfix
        mode = 0666
        user = postfix
      }
      unix_listener auth-userdb {
        group = mail
        mode = 0666
        user = vmail
      }
    }
    ssl_cert = </etc/ssl/certs/ssl-cert-snakeoil.pem
    ssl_key = </etc/ssl/private/ssl-cert-snakeoil.key
    userdb {
      args = /etc/dovecot/dovecot-sql.conf.ext
      driver = sql
    }

Gmailからメールを送信すると、すぐにメールが返送され、554 5.7.1エラーコードが吐き出されます。

私はsmtpd_relay_restrictionsとsmtpd_recipient_restrictionsを少し試してみましたが、正解はありません。

ありがとう、ウェイン

1
Wayne

あなたのmydestinationは空です。これはおそらくあなたの問題です。サーバーは、宛先ドメイン(受信者アドレスの@サインの後の部分)がmydestinationにリストされている場合にのみ、「着信」としてメールを受け入れます。それ以外の場合、サーバーは「このドメインはmydestinationにないので、メールは私のためではなく、ただ中継する」と考えます。

したがって、mydestination = $mydomainmain.cfに追加します。

0
fkraiem