Постфиксная ошибка: запрещен доступ к ретрансляции

Я не могу отправить почту на внешние адреса электронной почты, такие как gmail.

Когда я пытаюсь отправить почту с помощью telnet, я получаю следующую ошибку:

Trying 130.xx.xx.128... Connected to mydomain.com. Escape character is '^]'. 220 server2.mydomain.com ESMTP Postfix mail from: info@mydomain.com 250 2.1.0 Ok rcpt to: mymail@gmail.com 554 5.7.1 <mymail@gmail.com>: Relay access denied 

Это мой файл main.cf:

 queue_directory = /var/spool/postfix command_directory = /usr/sbin daemon_directory = /usr/libexec/postfix data_directory = /var/lib/postfix mail_owner = postfix inet_interfaces = all inet_protocols = all mydestination = server2.myserver.com, localhost, localhost.localdomain unknown_local_recipient_reject_code = 550 alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases debug_peer_level = 2 debugger_command = PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin ddd $daemon_directory/$process_name $process_id & sleep 5 sendmail_path = /usr/sbin/sendmail.postfix newaliases_path = /usr/bin/newaliases.postfix mailq_path = /usr/bin/mailq.postfix setgid_group = postdrop html_directory = no manpage_directory = /usr/share/man sample_directory = /usr/share/doc/postfix-2.6.6/samples readme_directory = /usr/share/doc/postfix-2.6.6/README_FILES virtual_alias_domains = $virtual_alias_maps virtual_alias_maps = proxy:mysql:/etc/postfix/mysql-virtual_forwardings.cf, mysql:/etc/postfix/mysql-virtual_email2email.cf virtual_mailbox_domains = proxy:mysql:/etc/postfix/mysql-virtual_domains.cf virtual_mailbox_maps = proxy:mysql:/etc/postfix/mysql-virtual_mailboxes.cf virtual_mailbox_base = /var/vmail virtual_uid_maps = static:5000 virtual_gid_maps = static:5000 smtpd_sasl_auth_enable = yes broken_sasl_auth_clients = yes smtpd_sasl_authenticated_header = yes smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, check_recipient_access mysql:/etc/postfix/mysql-virtual_recipient.cf, reject_unauth_destination smtpd_use_tls = yes smtpd_tls_security_level = may smtpd_tls_cert_file = /etc/postfix/smtpd.cert smtpd_tls_key_file = /etc/postfix/smtpd.key transport_maps = proxy:mysql:/etc/postfix/mysql-virtual_transports.cf relay_domains = mysql:/etc/postfix/mysql-virtual_relaydomains.cf relay_recipient_maps = mysql:/etc/postfix/mysql-virtual_relayrecipientmaps.cf proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks $virtual_mailbox_limit_maps smtpd_sender_restrictions = check_sender_access mysql:/etc/postfix/mysql-virtual_sender.cf smtpd_client_restrictions = check_client_access mysql:/etc/postfix/mysql-virtual_client.cf maildrop_destination_concurrency_limit = 1 maildrop_destination_recipient_limit = 1 virtual_transport = maildrop header_checks = regexp:/etc/postfix/header_checks mime_header_checks = regexp:/etc/postfix/mime_header_checks nested_header_checks = regexp:/etc/postfix/nested_header_checks body_checks = regexp:/etc/postfix/body_checks myhostname = server2.myserver.com mynetworks = 127.0.0.0/8 [::1]/128 content_filter = amavis:[127.0.0.1]:10024 receive_override_options = no_address_mappings 

Что мне делать?

Ключом к пониманию вашей проблемы являются следующие две строки.

 smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, check_recipient_access mysql:/etc/postfix/mysql-virtual_recipient.cf, reject_unauth_destination mynetworks = 127.0.0.0/8 [::1]/128 

mynetworks перечисляет только localhost, и в вашем транскрипте подключения нет ничего, чтобы указать, что вы подключаетесь к localhost (на самом деле есть много, чтобы указать, что вы этого не mynetworks ). И вы не аутентифицируетесь через SASL.

Таким образом, вы почти наверняка попадаете в reject_unauth_destination в конце, что означает, что почтовая транзакция отклоняется.

Либо подключайтесь к вашему почтовому серверу через интерфейс loopback, либо увеличивайте mynetworks чтобы включить IP-адрес, с которого вы подключаетесь, или аутентифицируйтесь на почтовый сервер с использованием SASL. Тогда ретрансляция будет работать намного лучше.

Кроме того, хорошее место для начала этих вопросов часто является журналом сервера. Редко, что они не содержат подробностей о том, почему почтовая транзакция была опровергнута, и они часто указывают вам на решение.