Мой постфикс (V: 2.5.5-1.1), запущенный на сервере ubuntu (9.04), начал отклонять почту, приходящую извне, около 2 недель назад. Выполнение «ручного» сеанса через telnet показывает, что соединение всегда закрывается после
MAIL FROM: xxx@xxx.tld
вводится строка с сообщением «Соединение закрыто внешним хостом».
То же самое с другого клиента внутри локальной сети работает нормально. В файлах журнала я получаю строку «потеряно соединение после ПОЧТЫ от xxxxx.tld [xxx.xxx.xxx.xxx]». Это после некоторых строк вроде:
match_hostaddr: XXX.XXX.XXX.XXX ~? [::1]/128
match_hostname: XXXX.tld ~? 192.168.1.0/24
...
match_list_match: xxx.xxx.xxx.xxx: no match
которые, кажется, предлагают какой-то фильтр, который проверяет разрешенные адреса. Мне не удалось найти, где находится этот фильтр и как его отключить. Я даже не уверен, что это вызывает мою проблему. Соединения из локальной сети не отключаются, даже если они также показывают строку "match_list_match: ... no match".
В последнее время я не менял никаких конфигурационных файлов, ниже мой main.cf в его нынешнем виде. Я действительно не знаю, что делают все параметры и как они взаимодействуют. Я просто настроил его изначально, и он работал нормально (до недавнего времени).
smtpd_banner = $myhostname ESMTP $mail_name (GNU)
biff = no
readme_directory = no
# TLS parameters
smtpd_tls_cert_file=/etc/ssl/certs/server.crt
smtpd_tls_key_file=/etc/ssl/private/server.key
#smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtp_sasl_auth_enable = no
smtp_use_tls=no
smtp_sasl_password_maps = hash:/etc/postfix/smtp_auth
myhostname = XXXXXXX.com
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = XXXX.XXXX.com, XXXX.com, localhost.XXXXX.com, localhost
relayhost = XXX.XXX.XXX.XXX
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 192.168.1.0/24
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
smtpd_sasl_local_domain =
#smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_authenticated_header = yes
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_unauth_
при проверке списка процессов postfix / smtpd запускается как
smtpd -n smtp -t inet -u -c -o stress -v -v
Какие-нибудь подсказки?
Оказывается, это не имело никакого отношения к моей конфигурации, но похоже, что мой провайдер прерывал smtp-соединения. Они были переданы новой компании, и, похоже, были приняты новые правила.
В итоге я использовал почтовый сервер своего провайдера в качестве ретранслятора. Это было достаточно просто, потому что они разрешают ретрансляционный доступ с любого IP-адреса в их пуле без аутентификации.