В настоящее время я развертываю конфигурацию Postfix/Dovecot на наших серверах, чтобы заменить наш монолитный почтовый сервер.
В тестовой среде у меня все настроено, и там все работает. Сейчас выкатываю конфигурацию еще на 5 серверов, тут к сожалению ничего не работает как хотелось бы.
Когда я пытаюсь отправить электронное письмо с законного почтового адреса на внешний (например, gmail), я получаю следующее сообщение об ошибке:
Доступ к передаче закрыт
14 сентября 10:23:51 px-10042 postfix/smtpd[21569]: match_list_match: УДАЛЕНО: совпадений нет
14 сентября 10:23:51 px-10042 postfix/smtpd[21569]: generic_checks: name=permit_mynetworks статус=0
14 сентября 10:23:51 px-10042 postfix/smtpd[21569]: generic_checks: name=reject_unauth_destination
14 сентября 10:23:51 px-10042 postfix/smtpd[21569]: reject_unauth_destination: REMOVED@gmail.com
14 сентября 10:23:51 px-10042 postfix/smtpd[21569]: Permit_auth_destination: REMOVED@gmail.com
14 сентября 10:23:51 px-10042 postfix/smtpd[21569]: ctable_locate: оставить существующий ключ входа test@REMOVED.com?REMOVED@gmail.com
14 сентября 10:23:51 px-10042 postfix/smtpd[21569]:NOQUEUE:reject: RCPT из REMOVED[REMOVED]: 554 5.7.1 REMOVED@gmail.com: Доступ к ретрансляции запрещен; from=test@REMOVED.com to=REMOVED@gmail.com proto=ESMTP helo=
14 сентября 10:23:51 px-10042 postfix/smtpd[21569]: generic_checks: name=reject_unauth_destination status=2
14 сентября 10:23:51 px-10042 postfix/smtpd[21569]: >>> КОНЕЦ Адрес получателя ОГРАНИЧЕНИЯ
Если отправляю почту на внутренний адрес или на свой, с которого тоже отправляю, работает без проблем.
Почтовый сервер должен пересылать все письма, которые он получает, на один из наших трех почтовых шлюзов proxmox. Аналогично, входящие электронные письма также принимаются только почтовым шлюзом Proxmox. Это настраивается в настройках DNS и отлично работает как в нашем монолите, так и в первой тестовой среде.
Вот результаты работы postconf -n:
append_dot_mydomain = no
biff = no
bounce_queue_lifetime = 1h
inet_interfaces = 127.0.0.1, ::1, REMOVED
local_recipient_maps = $virtual_mailbox_maps
mailbox_size_limit = 0
maximal_backoff_time = 15m
maximal_queue_lifetime = 1h
message_size_limit = 52428800
minimal_backoff_time = 5m
mua_client_restrictions = permit_mynetworks,permit_sasl_authenticated,reject
mua_relay_restrictions = reject_non_fqdn_recipient,reject_unknown_recipient_domain,permit_mynetworks,permit_sasl_authenticated,reject
mua_sender_restrictions = permit_mynetworks,reject_non_fqdn_sender,reject_sender_login_mismatch,permit_sasl_authenticated,reject
mydomain = REMOVED
myhostname = REMOVED
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
queue_run_delay = 5m
recipient_delimiter = +
relayhost = [REMOVED.de]:26
smtp_dns_support_level = dnssec
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
smtp_tls_ciphers = high
smtp_tls_mandatory_protocols = TLSv1.3 TLSv1.2, !TLSv1.1, !TLSv1, !SSLv2, !SSLv3
smtp_tls_protocols = TLSv1.3 TLSv1.2, !TLSv1.1, !TLSv1, !SSLv2, !SSLv3
smtp_tls_security_level = dane
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
smtpd_client_restrictions = permit_mynetworks check_client_access hash:/etc/postfix/without_ptr reject_unknown_client_hostname
smtpd_data_restrictions = reject_unauth_pipelining
smtpd_helo_required = yes
smtpd_helo_restrictions = permit_mynetworks reject_invalid_helo_hostname reject_non_fqdn_helo_hostname reject_unknown_helo_hostname
smtpd_relay_restrictions = reject_non_fqdn_recipient reject_unknown_recipient_domain permit_mynetworks reject_unauth_destination
smtpd_tls_auth_only = yes
smtpd_tls_cert_file = /etc/ssl/private/px_network.crt
smtpd_tls_ciphers = high
smtpd_tls_key_file = /etc/ssl/private/px_network.key
smtpd_tls_mandatory_ciphers = medium
smtpd_tls_mandatory_protocols = TLSv1.3 TLSv1.2, !TLSv1.1, !TLSv1, !SSLv2, !SSLv3
smtpd_tls_protocols = TLSv1.3 TLSv1.2, !TLSv1.1, !TLSv1, !SSLv2, !SSLv3
smtpd_tls_security_level = may
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
tls_high_cipherlist = EDH+CAMELLIA:EDH+aRSA:EECDH+aRSA+AESGCM:EECDH+aRSA+SHA256:EECDH:+CAMELLIA128:+AES128:+SSLv3:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!DSS:!RC4:!SEED:!IDEA:!ECDSA:kEDH:CAMELLIA128-SHA:AES128-SHA
tls_medium_cipherlist = ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384
tls_preempt_cipherlist = no
tls_ssl_options = NO_COMPRESSION
virtual_alias_maps = mysql:/etc/postfix/sql/aliases.cf
virtual_mailbox_domains = mysql:/etc/postfix/sql/domains.cf
virtual_mailbox_maps = mysql:/etc/postfix/sql/accounts.cf
virtual_transport = lmtp:unix:private/dovecot-lmtp
И это master.cf:
###
smtp inet n - y - 1 postscreen
-o smtpd_sasl_auth_enable=no
###
###
smtpd pass - - y - - smtpd
###
###
dnsblog unix - - y - 0 dnsblog
###
###
tlsproxy unix - - y - 0 tlsproxy
###
###
submission inet n - y - - smtpd
-o syslog_name=postfix/submission
-o smtpd_tls_security_level=encrypt
-o smtpd_sasl_auth_enable=yes
-o smtpd_sasl_type=dovecot
-o smtpd_sasl_path=private/auth
-o smtpd_sasl_security_options=noanonymous
-o smtpd_client_restrictions=$mua_client_restrictions
-o smtpd_sender_restrictions=$mua_sender_restrictions
-o smtpd_relay_restrictions=$mua_relay_restrictions
-o milter_macro_daemon_name=ORIGINATING
-o smtpd_sender_login_maps=mysql:/etc/postfix/sql/sender-login-maps.cf
-o smtpd_helo_required=no
-o smtpd_helo_restrictions=
-o cleanup_service_name=submission-header-cleanup
smtps inet n - y - - smtpd
-o syslog_name=postfix/smtps
-o smtpd_tls_wrappermode=yes
-o smtpd_sasl_type=dovecot
-o smtpd_sasl_path=private/auth
-o smtpd_sasl_auth_enable=yes
-o smtpd_sasl_security_options=noanonymous
-o smtpd_client_restrictions=$mua_client_restrictions
-o smtpd_sender_restrictions=$mua_sender_restrictions
-o smtpd_relay_restrictions=$mua_relay_restrictions
-o milter_macro_daemon_name=ORIGINATING
-o smtpd_sender_login_maps=mysql:/etc/postfix/sql/sender-login-maps.cf
-o smtpd_helo_required=no
-o smtpd_helo_restrictions=
-o cleanup_service_name=submission-header-cleanup
###
###
pickup unix n - y 60 1 pickup
cleanup unix n - y - 0 cleanup
qmgr unix n - n 300 1 qmgr
tlsmgr unix - - y 1000? 1 tlsmgr
rewrite unix - - y - - trivial-rewrite
bounce unix - - y - 0 bounce
defer unix - - y - 0 bounce
trace unix - - y - 0 bounce
verify unix - - y - 1 verify
flush unix n - y 1000? 0 flush
proxymap unix - - n - - proxymap
proxywrite unix - - n - 1 proxymap
smtp unix - - y - - smtp
relay unix - - y - - smtp
showq unix n - y - - showq
error unix - - y - - error
retry unix - - y - - error
discard unix - - y - - discard
local unix - n n - - local
virtual unix - n n - - virtual
lmtp unix - - y - - lmtp
anvil unix - - y - 1 anvil
scache unix - - y - 1 scache
###
###
submission-header-cleanup unix n - n - 0 cleanup
-o header_checks=regexp:/etc/postfix/submission_header_cleanup
И это вывод для postconf -P:
smtp/inet/smtpd_sasl_auth_enable = no
submission/inet/cleanup_service_name = submission-header-cleanup
submission/inet/milter_macro_daemon_name = ORIGINATING
submission/inet/smtpd_client_restrictions = $mua_client_restrictions
submission/inet/smtpd_helo_required = no
submission/inet/smtpd_helo_restrictions =
submission/inet/smtpd_relay_restrictions = $mua_relay_restrictions
submission/inet/smtpd_sasl_auth_enable = yes
submission/inet/smtpd_sasl_path = private/auth
submission/inet/smtpd_sasl_security_options = noanonymous
submission/inet/smtpd_sasl_type = dovecot
submission/inet/smtpd_sender_login_maps = mysql:/etc/postfix/sql/sender-login-maps.cf
submission/inet/smtpd_sender_restrictions = $mua_sender_restrictions
submission/inet/smtpd_tls_security_level = encrypt
submission/inet/syslog_name = postfix/submission
smtps/inet/cleanup_service_name = submission-header-cleanup
smtps/inet/milter_macro_daemon_name = ORIGINATING
smtps/inet/smtpd_client_restrictions = $mua_client_restrictions
smtps/inet/smtpd_helo_required = no
smtps/inet/smtpd_helo_restrictions =
smtps/inet/smtpd_relay_restrictions = $mua_relay_restrictions
smtps/inet/smtpd_sasl_auth_enable = yes
smtps/inet/smtpd_sasl_path = private/auth
smtps/inet/smtpd_sasl_security_options = noanonymous
smtps/inet/smtpd_sasl_type = dovecot
smtps/inet/smtpd_sender_login_maps = mysql:/etc/postfix/sql/sender-login-maps.cf
smtps/inet/smtpd_sender_restrictions = $mua_sender_restrictions
smtps/inet/smtpd_tls_wrappermode = yes
smtps/inet/syslog_name = postfix/smtps
submission-header-cleanup/unix/header_checks = regexp:/etc/postfix/submission_header_cleanup
Заранее спасибо.
1 ответ
В сценарии, который вы тестировали, порт 25 без аутентификации, постфикс отклоняет как это должно. В противном случае вы были бы открытым ретранслятором.
постфикс/SMTPD
@gmail.com: доступ к ретрансляции запрещен
Подключитесь к порту 465 и выполните аутентификацию, после чего вы сможете отправлять почту для ретрансляции в Google.
(Я могу сказать, что вы не подключаетесь через порты, предназначенные для отправки MUA, из строк журнала, поскольку ваши порты отправки указывают -o syslog_name= чтобы различать строки журналов, созданные для тех, кто из порта 25)
