Postfix reject_unknown_recipient_domain срабатывает ложно

EXIM, sendmail, postfix, Dovecot и прочие. Решение проблем связанных с работой электронной почты

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
DarkAGeS
мл. сержант
Сообщения: 75
Зарегистрирован: 2009-05-30 14:07:28

Postfix reject_unknown_recipient_domain срабатывает ложно

Непрочитанное сообщение DarkAGeS » 2014-02-13 15:23:47

почтарь postfix-2.11 на freebsd-9.2 x64 внутри kvm на Debian 7 x64
в качестве DNS сервера на почтаре прописан контроллер домена в локалке, у которого в качестве сервера пересылки стоит 8.8.8.8
Народ стал жаловаться на то, что не отправляются и не приходят некоторые письма.

Смотрю логи - вижу:

Код: Выделить всё

cat /var/log/maillog | grep "Recipient address rejected: Domain not found"
...

Код: Выделить всё

Feb 7 13:30:56 vm1 postfix/smtpd[17152]: NOQUEUE: reject: RCPT from unknown[192.168.51.102]: 450 4.1.2 <correctuser1@correctdomain1.com>: Recipient address rejected: Domain not found; from=<correctuser2@correctdomain2.com> to=<correctuser1@correctdomain1.com> proto=ESMTP helo=<w102>
и есть аналогичные записи и для reject_unknown_sender_domain - т.е. "Sender address rejected: Domain not found"
процент таких реджектов от общего числа почты невелик, но все же.

ну, думаю, затык какой то с DNS на контроллере домена, поставил в качестве DNS сервера 8.8.8.8
Неделю было все нормально и тут сегодня опять посыпалось, причем ДАЖЕ зареджектилась отправка в домен, обслуживаемый этим в почтарем, из этого же домена, т.е. по сути внутренняя переписка, причем внутри локалки.

с другими почтарями (еще 4 штуки) такой проблемы нет. На них стоит dns-сервер локально, причем является авторитетным для доменов, обслуживаемых почтарем.

в общем, запустил пока named локально в минимальной конфигурации (зоны почтаря не держит) и подкрутил:

Код: Выделить всё

# Количество попыток и таймаут между попытками проверки существования отправителя
# и получателя (reject_unknown_sender_domain, reject_unknown_recipient_domain)
#address_verify_poll_count = 3
address_verify_poll_count = 6
#address_verify_poll_delay = 3s
address_verify_poll_delay = 5s
посмотрим что будет дальше, но осадок остался.

Кто сталкивался? Это проблема с интернет соединением или с гугловским DNS?.. или может еще в чем то?

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
DarkAGeS
мл. сержант
Сообщения: 75
Зарегистрирован: 2009-05-30 14:07:28

Re: Postfix reject_unknown_recipient_domain срабатывает ложн

Непрочитанное сообщение DarkAGeS » 2014-02-13 17:46:23

на всякий случай postconf -n

Код: Выделить всё

address_verify_negative_cache = no
address_verify_poll_count = 6
address_verify_poll_delay = 5s
address_verify_sender = <>
alias_maps = hash:/etc/mail/aliases, hash:/usr/local/mailman/data/aliases
base = /usr/local/etc/postfix
bounce_template_file = $base/bounce.cf
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
debugger_command = PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin ddd $daemon_directory/$process_name $process_id & sleep 5
delay_warning_time = 10s
disable_vrfy_command = YES
dovecot_destination_recipient_limit = 1
html_directory = /usr/local/share/doc/postfix
inet_protocols = ipv4
mail_owner = postfix
mailq_path = /usr/local/bin/mailq
manpage_directory = /usr/local/man
maximal_backoff_time = 600s
message_size_limit = 40960000
mydestination = $myhostname, localhost.$mydomain, localhost
mydomain = domain.ru
myhostname = mail.domain.ru
mynetworks = 127.0.0.0/8, 192.168.51.4
myorigin = $myhostname
newaliases_path = /usr/local/bin/newaliases
notify_classes = 2bounce, resource, software, delay
queue_directory = /var/spool/postfix
readme_directory = /usr/local/share/doc/postfix
recipient_delimiter = +
sample_directory = /usr/local/etc/postfix
sendmail_path = /usr/local/sbin/sendmail
setgid_group = maildrop
show_user_unknown_table_name = no
smtp_tls_CAfile = /usr/local/etc/ssl/create-cert/certs/rootca.pem
smtp_tls_loglevel = 2
smtp_tls_note_starttls_offer = yes
smtp_tls_security_level = may
smtp_tls_session_cache_database = btree:$data_directory/smtp_scache
smtpd_banner = $myhostname ESMTP
smtpd_data_restrictions = reject_multi_recipient_bounce reject_unauth_pipelining permit
smtpd_discard_ehlo_keyword_address_maps = hash:$base/maps/discard_ehlo
smtpd_helo_required = yes
smtpd_recipient_restrictions = permit_mynetworks reject_non_fqdn_sender reject_unknown_sender_domain reject_non_fqdn_recipient reject_unknown_recipient_domain permit_sasl_authenticated reject_non_fqdn_helo_hostname reject_invalid_helo_hostname reject_unauth_destination reject_unlisted_recipient check_helo_access pcre:$base/maps/helo_checks.pcre check_sender_access pcre:$base/maps/sender_checks.pcre check_policy_service inet:127.0.0.1:2501 check_recipient_access pcre:$base/maps/recipient_checks.pcre permit
smtpd_relay_restrictions =
smtpd_sasl_auth_enable = yes
smtpd_sasl_path = private/auth
smtpd_sasl_security_options = noanonymous
smtpd_sasl_tls_security_options = noanonymous
smtpd_sasl_type = dovecot
smtpd_tls_cert_file = /usr/local/etc/ssl/create-cert/certs/mail.domain.ru.pem
smtpd_tls_key_file = /usr/local/etc/ssl/create-cert/private/mail.domain.ru.key
smtpd_tls_loglevel = 2
smtpd_tls_received_header = yes
smtpd_tls_security_level = may
smtpd_tls_session_cache_database = btree:$data_directory/smtpd_scache
unknown_local_recipient_reject_code = 550
virtual_alias_maps = mysql:$base/maps/sql/virtual_alias_maps.cf, hash:/usr/local/mailman/data/virtual-mailman
virtual_mailbox_domains = mysql:$base/maps/sql/virtual_mailbox_domains.cf
virtual_mailbox_maps = mysql:$base/maps/sql/virtual_mailbox_maps.cf
virtual_transport = dovecot
прозвучало предложение добавить в mynetworks всю локалку, либо поставить проверки reject_unknown_sender_domain и reject_unknown_recipient_domain после permit_sasl_authenticated, но это, конечно, проблему решает криво и только для локальных (или авторизованных) отправителей.
А первом случае дает раздолье для троянов в локалке и превращает почтарь в open relay для локалки. Также потенциально будем иметь кучу писем в почтовой очереди с неверным доменом получателя (юзеры часто ошибаются с адресом). Однако попутно все так криво решает проблему, потому что письма с правильным доменом получателя все таки отправятся,в момент когда исчезнет проблема с DNS-резолвингом.

Но для внешних отправителей проблема не решается никак:

Код: Выделить всё

Feb  7 11:42:40 vm1 postfix/smtpd[79732]: NOQUEUE: reject: RCPT from unknown[94.100.176.58]: 450 4.1.8 <correctuser@mail.ru>: Sender address rejected: Domain not found; from=<correctuser@mail.ru> to=<correctuser@domain.ru> proto=ESMTP helo=<fallback3.mail.ru>
понятное дело, что mail.ru существует и спасибо ему за то, что он упорно продолжает попытки доставить письмо после 450 ответа и в конце концов таки его доставляет

Код: Выделить всё

Feb  7 12:35:00 vm1 postfix/qmgr[9423]: 0A6FB64202: from=<correctuser@mail.ru>, size=463349, nrcpt=20 (queue active)
в http://www.postfix.org/postconf.5.html# ... der_domain ясно сказано, что реджект происходит в случаях если:
1) no DNS A or MX record, or 2) a malformed MX record such as a record with a zero-length MX hostname
т.е. проблема с DNS-резолвингом

еще советую почитать Postfix Address Verification Howto http://www.postfix.org/ADDRESS_VERIFICATION_README.html
а также библию Postfix anti-UCE configuration http://jimsun.linxnet.com/misc/postfix-anti-UCE.txt