Назад | Перейти на главную страницу

Не получено письмо: доступ к ретрансляции запрещен в Postfix (CentOS 7)

По какой-то причине мой почтовый сервер Postfix, работающий на CentOS 7, недавно перестал работать, возможно, потому, что я обновил модули через Webmin, я не знаю. Я могу отправлять электронные письма, но я не получаю их. Также не работают POP3 и IMAP. Я много чего пробовал, но сам не разобрался, поэтому мне нужна помощь.

Прочитал несколько веток по темам:

Моя начальная ошибка: Relay access denied из файла /var/log/maillog:

Jul 31 11:18:40 myhostname postfix/smtpd[6787]: connect from mail-wm0-f51.google.com[74.125.82.51]
Jul 31 11:18:40 myhostname postfix/smtpd[6787]: NOQUEUE: reject: RCPT from mail-wm0-f51.google.com[74.125.82.51]: 454 4.7.1 <contact@mydomain.com>: Relay access denied; from=<myemail@gmail.com> to=<contact@mydomain.com> proto=ESMTP helo=<mail-wm0-f51.google.com>
Jul 31 11:18:41 myhostname postfix/smtpd[6787]: disconnect from mail-wm0-f51.google.com[74.125.82.51]

Моя начальная настройка (/etc/postfix/main.cf) запуск команды postconf -n:

alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
command_directory = /usr/sbin
config_directory = /etc/postfix
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
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
html_directory = no
mailq_path = /usr/bin/mailq.postfix
manpage_directory = /usr/share/man
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
newaliases_path = /usr/bin/newaliases.postfix
readme_directory = /usr/share/doc/postfix-2.10.1/README_FILES
sample_directory = /usr/share/doc/postfix-2.10.1/samples
sendmail_path = /usr/sbin/sendmail.postfix
setgid_group = postdrop
smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
unknown_local_recipient_reject_code = 550

Прочитав упомянутые выше статьи, я определил mydomain, myhostname и mynetworks; теперь я получаю другую ошибку (см. ниже). Вот main.cf настройки с переделками:

alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
command_directory = /usr/sbin
config_directory = /etc/postfix
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
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
html_directory = no
mailq_path = /usr/bin/mailq.postfix
manpage_directory = /usr/share/man
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
mydomain = mydomain.com
myhostname = 9dok43ksalv.hostname.com
mynetworks = 11.22.33.44/28, 127.0.0.0/8
myorigin = $mydomain
newaliases_path = /usr/bin/newaliases.postfix
readme_directory = /usr/share/doc/postfix-2.10.1/README_FILES
relay_domains = $mydestination
sample_directory = /usr/share/doc/postfix-2.10.1/samples
sendmail_path = /usr/sbin/sendmail.postfix
setgid_group = postdrop
smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
unknown_local_recipient_reject_code = 550

Теперь я получил ошибку Recipient address rejected: User unknown in local recipient table; как показано ниже:

connect from mail-wm0-f49.google.com[74.125.82.49]
Aug  1 16:22:27 9dok43ksalv postfix/smtpd[2583]: NOQUEUE: reject: RCPT from mail-wm0-f49.google.com[74.125.82.49]: 550 5.1.1 <contact@mydomain.com>: Recipient address rejected: User unknown in local recipient table; from=<myemail@gmail.com> to=<contact@mydomain.com> proto=ESMTP helo=<mail-wm0-f49.google.com>
Aug  1 16:22:28 9dok43ksalv postfix/smtpd[2583]: disconnect from mail-wm0-f49.google.com[74.125.82.49]

Судя по всему, Postfix не находит конечный адрес электронной почты. Мне никогда раньше не приходилось настраивать Postfix, поэтому сейчас я немного потерялся, как первый таймер; VestaCP раньше заботился об этом за меня, и до сих пор у меня никогда не было проблем.

Не мог бы кто-нибудь указать мне правильное направление? Я был бы очень признателен снова получить электронные письма и заставить работать POP3 и IMAP.

Заранее спасибо. Дайте мне знать, если вам понадобится дополнительная информация.

Сообщение об ошибке 550 5.1.1 пользователь неизвестен в локальной таблице получателей

Я думаю, вам может потребоваться посмотреть на карту локальных получателей / карты псевдонимов и убедиться, что они настроены правильно. Также посмотрите на значение mydestinations в main.conf, как если бы домен был настроен, тогда должна произойти локальная доставка

Стоит прочитать этот ответ Смущает насчет alias_maps и virtual_alias_maps

Некоторая полезная информация также ниже http://www.postfix.org/postconf.5.html#local_recipient_maps

"Локальная база данных псевдонимов

Когда почта должна быть доставлена ​​локально, агент локальной доставки запускает каждое имя локального получателя через базу данных псевдонимов. Отображение не влияет на адреса в заголовках сообщений. Локальные псевдонимы обычно используются для реализации списков рассылки или для рассылки стандартных псевдонимов, таких как postmaster, реальным людям. Таблицу также можно использовать для сопоставления адресов Firstname.Lastname с именами пользователей ".

или, может быть, Virtual Alias ​​Maps

«При таком подходе каждый размещенный домен может иметь свой собственный адрес электронной почты для информации и т. Д. Однако он по-прежнему использует системные учетные записи Linux для доставки локальных почтовых ящиков.

В виртуальных доменах псевдонимов каждому размещенному адресу присваивается псевдоним локальной системной учетной записи UNIX или удаленного адреса. В приведенном ниже примере показано, как использовать этот механизм для доменов fossedu.org и linuxelabs.com ".

https://help.ubuntu.com/community/PostfixBasicSetupHowto#Local_Alias_database

https://help.ubuntu.com/community/PostfixBasicSetupHowto#Postfix_virtual_Aliases_for_separate_domains_and_Linux_system_accounts

Проверь это:

Постфикс: адрес получателя отклонен: пользователь неизвестен в локальной таблице получателей

Решение (в этом случае), как объяснено b techieb0y, состоит в том, чтобы удалять $ mydomain из строки:

mydestination = $mydomain, localhost.$mydomain, localhost