NOQUEUE: reject: RCPT из freebsd и postfix

12

Я создаю сервер, используя эту конфигурацию -> http://www.purplehat.org/?page_id=4, и при попытке проверить основные возможности электронной почты я получаю -> NOQUEUE: reject: RCPT с момента попытки отправить тестовое электронное письмо.

Ниже мои связанные конфиги

Как получить постфикс для отправки писем?

Выход логов:

Feb 13 18:37:43 r2d2 dovecot: pop3-login: Login: user=<bra@telecomm.com>, method=PLAIN, rip=67.85.57.155, lip=107.191.60.48, mpid=13390, TLS, session=<QA0yiPwOiwBDVTmb>
Feb 13 18:37:43 r2d2 dovecot: pop3(bra@telecomm.com): Disconnected: Logged out top=0/0, retr=0/0, del=0/4, size=68813
Feb 13 18:37:44 r2d2 postfix/smtpd[13391]: connect from ool-4355399b.dyn.optonline.net[67.85.57.155]
Feb 13 18:37:46 r2d2 postfix/smtpd[13391]: NOQUEUE: reject: RCPT from ool-4355399b.dyn.optonline.net[67.85.57.155]: 454 4.7.1 <bcddd214@yahoo.com>: Relay access denied; from=<bra@telecomm.com> to=<bcddd@yahoo.com> proto=ESMTP helo=<Bramini>
Feb 13 18:37:49 r2d2 postfix/smtpd[13391]: disconnect from ool-4355399b.dyn.optonline.net[67.85.57.155]

postconf -n

broken_sasl_auth_clients = yes
command_directory = /usr/local/sbin
config_directory = /usr/local/etc/postfix
daemon_directory = /usr/local/libexec/postfix
data_directory = /var/db/postfix
debug_peer_level = 2
debug_peer_list = 127.0.0.1
debugger_command = PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin ddd $daemon_directory/$process_name $process_id & sleep 5
html_directory = /usr/local/share/doc/postfix
inet_protocols = ipv4
mail_owner = postfix
mailman_destination_recipient_limit = 1
mailq_path = /usr/local/bin/mailq
manpage_directory = /usr/local/man
mydestination = $myhostname, localhost.$mydomain, localhost
mydomain = ex-mailer.com
myhostname = r2d2.ex-mailer.com
mynetworks_style = host
newaliases_path = /usr/local/bin/newaliases
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
queue_directory = /var/spool/postfix
readme_directory = /usr/local/share/doc/postfix
relay_domains = proxy:mysql:/usr/local/etc/postfix/mysql_relay_domains_maps.cf list.ex-mailer.com
sample_directory = /usr/local/etc/postfix
sendmail_path = /usr/local/sbin/sendmail
setgid_group = maildrop
smtp_tls_note_starttls_offer = yes
smtp_use_tls = yes
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_non_fqdn_sender, reject_non_fqdn_recipient, reject_unauth_destination, reject_unauth_pipelining, reject_invalid_hostname, reject_rbl_client list.dsbl.org, reject_rbl_client bl.spamcop.net, reject_rbl_client sbl-xbl.spamhaus.org
smtpd_sasl_auth_enable = yes
smtpd_sasl_authenticated_header = yes
smtpd_sasl_local_domain = $myhostname
smtpd_sasl_path = private/auth
smtpd_sasl_security_options = noanonymous
smtpd_sasl_type = dovecot
smtpd_sender_restrictions = permit_sasl_authenticated, permit_mynetworks
smtpd_tls_CAfile = /etc/ssl/postfix/smtpd.pem
smtpd_tls_cert_file = /etc/ssl/postfix/smtpd.pem
smtpd_tls_key_file = /etc/ssl/postfix/smtpd.pem
smtpd_tls_loglevel = 0
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
smtpd_use_tls = yes
soft_bounce = no
tls_random_source = dev:/dev/urandom
transport_maps = hash:/usr/local/etc/postfix/transport
unknown_local_recipient_reject_code = 550
vacation_destination_recipient_limit = 1
virtual_alias_maps = proxy:mysql:/usr/local/etc/postfix/mysql_virtual_alias_maps.cf
virtual_gid_maps = static:125
virtual_mailbox_base = /usr/local/virtual
virtual_mailbox_domains = proxy:mysql:/usr/local/etc/postfix/mysql_virtual_domains_maps.cf
virtual_mailbox_limit = 51200000
virtual_mailbox_limit_maps = proxy:mysql:/usr/local/etc/postfix/mysql_virtual_mailbox_limit_maps.cf
virtual_mailbox_limit_override = yes
virtual_mailbox_maps = proxy:mysql:/usr/local/etc/postfix/mysql_virtual_mailbox_maps.cf
virtual_maildir_limit_message = Sorry, this user has overdrawn their diskspace quota. Please try again later.
virtual_minimum_uid = 125
virtual_overquota_bounce = yes
virtual_transport = virtual
virtual_uid_maps = static:125
postconf: warning: /usr/local/etc/postfix/main.cf: unused parameter: contencontent_filter=smtp-amavis:[127.0.0.1]:10024
postconf: warning: /usr/local/etc/postfix/main.cf: unused parameter: virtual_create_maildirsize=yes
postconf: warning: /usr/local/etc/postfix/main.cf: unused parameter: virtual_mailbox_extended=yes

Домен telecomm.comбыл определен в relay_domainsпараметре. Здесь содержание/usr/local/etc/postfix/mysql_relay_domains_maps.cf

 user = doughnuts
 password = [redacted]
 hosts = localhost
 dbname = postfix
 query = SELECT domain FROM domain WHERE domain="%s" and backupmx ="0" and active ="1"

netstat -an | меньше

Active Internet connections (including servers)
Proto Recv-Q Send-Q Local Address          Foreign Address        (state)
tcp4       0      0 *.587                  *.*                    LISTEN
tcp4       0      0 127.0.0.1.10025        *.*                    LISTEN
tcp4       0      0 *.465                  *.*                    LISTEN
tcp4       0      0 *.25                   *.*                    LISTEN
tcp4       0    128 107.191.60.48.2222     67.85.57.155.51823     ESTABLISHED
tcp4       0      0 127.0.0.1.953          *.*                    LISTEN
tcp4       0      0 127.0.0.1.53           *.*                    LISTEN
tcp6       0      0 ::1.53                 *.*                    LISTEN
tcp4       0      0 107.191.60.48.53       *.*                    LISTEN
tcp6       0      0 2001:19f0:7000:8.53    *.*                    LISTEN
tcp4       0      0 *.8282                 *.*                    LISTEN
tcp6       0      0 *.8282                 *.*                    LISTEN
tcp4       0      0 *.8181                 *.*                    LISTEN
tcp6       0      0 *.8181                 *.*                    LISTEN
tcp4       0      0 107.191.60.48.2222     67.85.57.155.57964     ESTABLISHED
tcp46      0      0 *.3306                 *.*                    LISTEN
tcp4       0      0 127.0.0.1.10024        *.*                    LISTEN
tcp6       0      0 *.993                  *.*                    LISTEN
tcp4       0      0 *.993                  *.*                    LISTEN
tcp6       0      0 *.143                  *.*                    LISTEN
tcp4       0      0 *.143                  *.*                    LISTEN

ОБНОВЛЕНИЕ 14.02.2015 1430 EST

Подробный вывод журнала:

https://bpaste.net/show/6a2a70cb2ab5

Установив для IP-адреса тестового компьютера mynetworks = IP, вы можете видеть, как почта проходит намного дальше через систему, но затем заглушает классы соответствия. Как заставить Postfix соответствовать 0.0.0.0 любому источнику IP и домену назначения?

cat /usr/local/etc/postfix/master.cf

# ==========================================================================
smtp      inet  n       -       n       -       -       smtpd
smtps     inet  n       -       n       -       -       smtpd
pickup    unix  n       -       n       60      1       pickup
cleanup   unix  n       -       n       -       0       cleanup
qmgr      unix  n       -       n       300     1       qmgr
#qmgr     unix  n       -       n       300     1       oqmgr
tlsmgr    unix  -       -       n       1000?   1       tlsmgr
rewrite   unix  -       -       n       -       -       trivial-rewrite
bounce    unix  -       -       n       -       0       bounce
defer     unix  -       -       n       -       0       bounce
trace     unix  -       -       n       -       0       bounce
verify    unix  -       -       n       -       1       verify
flush     unix  n       -       n       1000?   0       flush
proxymap  unix  -       -       n       -       -       proxymap
proxywrite unix -       -       n       -       1       proxymap
smtp      unix  -       -       n       -       -       smtp
relay     unix  -       -       n       -       -       smtp
#       -o smtp_helo_timeout=5 -o smtp_connect_timeout=5
showq     unix  n       -       n       -       -       showq
error     unix  -       -       n       -       -       error
retry     unix  -       -       n       -       -       error
discard   unix  -       -       n       -       -       discard
local     unix  -       n       n       -       -       local
virtual   unix  -       n       n       -       -       virtual
lmtp      unix  -       -       n       -       -       lmtp
anvil     unix  -       -       n       -       1       anvil
scache    unix  -       -       n       -       1       scache

vacation  unix  -       n       n       -       -       pipe
  flags=DRhu user=vacation argv=/var/spool/vacation/vacation.pl

smtp-amavis unix - - n - 2 smtp
  -o smtp_data_done_timeout=2400
  -o smtp_send_xforward_command=yes
  -o disable_dns_lookups=yes
  -o max_use=20
127.0.0.1:10025 inet n - n - - smtpd
  -o content_filter=
  -o local_recipient_maps=
  -o relay_recipient_maps=
  -o smtpd_restriction_classes=
  -o smtpd_delay_reject=no
  -o smtpd_client_restrictions=permit_mynetworks,reject
  -o smtpd_helo_restrictions=
  -o smtpd_sender_restrictions=
  -o smtpd_recipient_restrictions=permit_mynetworks,reject
  -o mynetworks_style=host
  -o mynetworks=127.0.0.0/8
  -o strict_rfc821_envelopes=yes
  -o smtpd_error_sleep_time=0
  -o smtpd_soft_error_limit=1001
  -o smtpd_hard_error_limit=1000
  -o smtpd_client_connection_count_limit=0
  -o smtpd_client_connection_rate_limit=0
  -o receive_override_options=no_header_body_checks,no_unknown_recipient_checks,no_address_mappings

mailman unix - n n - - pipe
  flags=FR user=mailman:nobody
  argv=/usr/local/mailman/postfix-to-mailman.py ${nexthop} ${user}

submission inet n       -       n       -       -       smtpd
  -o smtpd_tls_security_level=may
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_delay_reject=yes
  -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject
  -o smtpd_data_restrictions=
  -o smtpd_sasl_authenticated_header=yes
  -o receive_override_options=no_address_mappings
  -o syslog_name=postfix/submission
мой
источник
Ни из доменов, ни из них не являются локальными и не настроены в качестве доменов ретрансляции, поэтому вы получаете ошибку ретрансляции отказа
Дан
@ Дэн, это должно отображать эту информацию из MySQL. mysql_relay_domains_maps.cf o.0
мое
@Dan и все запросы к базе данных работают как положено bpaste.net/show/e9be64528685
мой
nyctelecomm.com (как в вашей базе данных) и telecomm.com (как в ваших журналах) не являются одним и тем же доменом
Дан,
@Dan, потому что bpaste удаляет себя через 14 дней. Я не хочу, чтобы мои данные задерживались на www навсегда. Один отредактирован, другой нет :)
мое

Ответы:

9

К вашему сведению, 454 4.7.1 <someemail@example.com: Relay access denied; это результат defer_unauth_destination . Это немного отличается от reject_unauth_destination , с reject означает постоянную ошибку с кодом 550, а defer означает временную ошибку с кодом 450.

Но подождите ..., у меня нет параметров, использующих defer_unauth_destination. Откуда происходит странное ограничение?

На самом деле, у postfix есть один скрытый параметр ограничения smtpd_relay_restriction. Это новая функция, поэтому старый учебник может ее не охватывать. По умолчанию smtpd_relay_restriction имеет значение

# postconf smtpd_relay_restriction
permit_mynetworks, permit_sasl_authenticated, defer_unauth_destination

Итак, это объясняет, где defer_unauth_destination

Но он не ответил на мой вопрос об отклонении моего клиента :(

Поведение (defer | reject) _unauth_destination было описано в справочных страницах постфикса .

reject_unauth_destination

Отклонить запрос, если не выполнено одно из следующих действий:

  • Postfix - это пересылка почты: разрешенный домен RCPT TO соответствует $ relay_domains или его поддомену и не содержит маршрутизации, указанной отправителем (user @ elsewhere @ domain),
  • Postfix является конечным пунктом назначения: разрешенный домен RCPT TO соответствует $ mydestination, $ inet_interfaces, $ proxy_interfaces, $ virtual_alias_domains или $ virtual_mailbox_domains и не содержит маршрутизации, указанной отправителем (user @ elsewhere @ domain).

Проще говоря: postfix проверит адрес получателя . Если часть домена не была определена в relay_domains(или его поддомене), $ mydestination, $ inet_interfaces, $ proxy_interfaces, $ virtual_alias_domains или $ virtual_mailbox_domains, то postfix отклонит его .

В ваших журналах выше получателем был somebody@yahoo.com, поэтому очевидно, что postfix отклонил его.

masegaloeh
источник
Я честно думал, что ты прибил. Я столкнулся с подобной проблемой некоторое время назад. Внося изменения, я попытался установить для mynetworks значение 0.0.0.0, и я даже скопировал конфигурацию, которая решает именно ту проблему, которую вы выявили. Та же ошибка :( bpaste.net/show/a26076c941b4 bpaste.net/show/6def40226cea
мой
Не устанавливайте mynetworks в 0.0.0.0/0. Ваш сервер превратится в openrelay
masegaloeh
Тем не менее, я действительно не знаю, что вы пытаетесь сделать ... Ваше утверждение о «тестировании основных возможностей электронной почты» было все еще расплывчатым. Этот ответ только объяснить, почему вы получаете ошибку. Здесь пока нет решения ...
masegaloeh
это стандартный почтовый сервер на общедоступном IP. Все клиенты являются динамическими и маршрутизируемыми. Мне просто нужно найти кнопку «отправить все» (не открытое реле). то есть sasl auth. Это попало в базу данных в порядке.
мое
1
Хорошо. Теперь нам нужно убедиться, что аутентификация SASL была правильно настроена как на сервере, так и на клиенте. Не могли бы вы проверить это, следуя [этой документации] (www.postfix.org/SASL_README.html#server_test)?
Масегалоэ
1

Я использую THUNDERBIRD в качестве MUA и у меня такие же проблемы. Я решил добавить IP-адрес моего домашнего ПК в параметре mynetworks на main.cf

mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 MyIpAddress

PS У меня нет статического ip для домашнего компьютера, поэтому, когда мой провайдер меняет его, я каждый раз настраиваюсь.

Мауро Ферро
источник
0

FWIW добавление ниже работал для меня. Я использую проверку spf, которая необходима для check_policy_service. Мой клиент - это squirrelmail, а мой сервер postfix.

smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, check_policy_service unix:private/policyd-spf

dhromyk
источник