URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 94037
[ Назад ]

Исходное сообщение
"Проблемы с почтовой системой на Postfix"

Отправлено mr brightside , 17-Ноя-12 00:34 
Добрый день, уважаемые!

Итак, есть две проблемы.

Проблема 1ая.

Я попытался настроить Postfix на работу с TLS. Как итог - отправляется наружу из локалки. Снаружи не принимается.

Кусок main.cf с настройками TLS:

++++++++++++++++++++++++++++++++++++++++++++++++
smtp_use_tls = no
smtpd_use_tls = yes
smtpd_tls_security_level = may
smtpd_tls_auth_only = yes
smtpd_tls_key_file = /usr/local/etc/postfix/ssl/unencrypted-key.pem
smtpd_tls_cert_file = /usr/local/etc/postfix/ssl/cert.pem
smtpd_tls_CAfile = /usr/local/etc/postfix/ssl/CAcert.pem
smtpd_tls_session_cache_database = btree:/var/db/postfix/smtpd_tls_session_cache
smtpd_tls_loglevel = 3
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
smtp_sasl_password_maps = hash:/usr/local/etc/postfix/sasl/sasl_passwd
tls_random_source = dev:/dev/urandom    
++++++++++++++++++++++++++++++++++++++++++++++++

В логах упорно пишет Session encryption required, хотя у меня же "may"?

Чего я хотел от TLS? хотел, чтобы мои клиенты отправляли почту через 465 порт с TLS. Извне почту получать, конечно же, без шифрования, по 25 порту.

master.cf (привожу то, что касается 25/465 портов):

++++++++++++++++++++++++++++++++++++++++++++++++
smtp      inet  n       -       n       -       -       smtpd
    -o content_filter=spamassassin
#smtp      inet  n       -       n       -       1       postscreen
#smtpd     pass  -       -       n       -       -       smtpd
#dnsblog   unix  -       -       n       -       0       dnsblog
#tlsproxy  unix  -       -       n       -       0       tlsproxy
#submission inet n       -       n       -       -       smtpd
#  -o syslog_name=postfix/submission
#  -o smtpd_tls_security_level=encrypt
#  -o smtpd_sasl_auth_enable=yes
#  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
#  -o milter_macro_daemon_name=ORIGINATING
smtps     inet  n       -       n       -       -       smtpd
#  -o syslog_name=postfix/smtps
  -o smtpd_tls_wrappermode=yes
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject    
++++++++++++++++++++++++++++++++++++++++++++++++

Как заставить мой сервак принимать почту от, скажем, mail.ru и не требовать от них использования шифрования?

http://www.postfix.org/TLS_README.html#quick-start - читал, не помогло.

Вторая проблема - это какое то невероятное количество возвратов.

Отследил при помощи pflogsumm.

За примерно 5 минут получил 11 тысяч попыток доставить почту Mailer Daemon.

++++++++++++++++++++++++++++++++++++++++++++++++
-Queue ID- --Size-- ----Arrival Time---- -Sender/Recipient-------
C49975E275D    27755 Fri Nov 16 20:15:59  ukrashenie.fasadov@ukr.net
                                         kuzimovich@dneprokor.com.ua

05C425E275E   488747 Fri Nov 16 20:16:00  meta.stellagi@ukr.net
                                         stepan@aport.crimea.com

0651F5E275F    54171 Fri Nov 16 20:16:00  novogodnie.tury@ukr.net
                                         car@selena.kherson.ua

109315E2760     5796 Fri Nov 16 20:16:00  shalene-svyato@ukr.net
                                         chashkorez@list.ru

22D105E2761     5154 Fri Nov 16 20:16:00  billbordy31@ukr.net
                                         kostya_k86@mail.ru

605485E2762     5797 Fri Nov 16 20:16:00  shalene-svyato@ukr.net
                                         chashkina@a-snab.ru

606FD5E2763    27750 Fri Nov 16 20:16:00  ukrashenie.fasadov@ukr.net
                                         fiveportalru@gmail.com

C531C5E2738    27753 Fri Nov 16 20:16:00  ukrashenie.fasadov@ukr.net
                                         vitalij.kroplis@yandex.ua

95B385E2764    54160 Fri Nov 16 20:16:01  novogodnie.tury@ukr.net
                                         zoloozdolddz@mail.ru

BEF875E2765     3672 Fri Nov 16 20:16:01  billbordy31@ukr.net
                                         kostya@uma.dp.ua

D5E2F5E2766     4044 Fri Nov 16 20:16:01  billbordy31@ukr.net
                                         kostya_mail@ukr.net

2ED7D5E2767     4105 Fri Nov 16 20:16:02  email_ss@ukr.net
                                         den1111@ukr.net

89DD85E2768    54167 Fri Nov 16 20:16:02  novogodnie.tury@ukr.net
                                         info@ukrcognita.com.ua    
++++++++++++++++++++++++++++++++++++++++++++++++

Рядом стоит сервер на сендмыле - там такая же проблема. Постоянны возвраты писем постмастеру о невозможности ВЕРНУТЬ письмо отправителю. Причем, последний столбец - это Sender/Recipient. Т.е. отправитель из домена ukr.net, а получатель произвольный.

Меня ДДОСят? У меня вирус в сети? Как это можно отловить?

заранее благодарю за советы


Содержание

Сообщения в этом обсуждении
"Проблемы с почтовой системой на Postfix"
Отправлено mr brightside , 17-Ноя-12 02:26 
Продолжу.

Судя по логам письмо поступает с совершенного левого ip - это адресат. Мой почтовик не используется, как релей, - указывается также и левый релей. В качестве получателя указывают какого-либо юзера на, например, mail.ru.

Т.е. получается, что посылается письмо с фальшивыми FROM и REPLY TO на несуществующего пользователя в домене. Так как пользователь в моем домене не существует, то мой сервер пытается доставить почту либо FROM, либо REPLY TO.

И если FROM точно фальшивый, то REPLY TO может существовать. В этом случае совершенно ничего не подозревающему пользователю упадет письмо, что посланное "им" письмо не доставилось. Какое письмо? Когда? Кому? Начинается чтение содердимого возврата - а там спам.

В случае, если и REPLY TO не существует, то возвраты перенаправляются моему постмастеру.

Тем не менее, вопрос для меня остается открытым - как эту дыру закрыть?


"Проблемы с почтовой системой на Postfix"
Отправлено Etch , 17-Ноя-12 04:04 
По первому вопросу - вот рабочий конфиг с моего компа (самоподписанные сертификаты):

### TLS:

tls_random_source = dev:/dev/urandom

smtp_tls_note_starttls_offer = yes
smtp_tls_loglevel = 2
smtp_tls_security_level = may
smtp_tls_enforce_peername = no
smtp_use_tls = yes

smtpd_tls_security_level = may
smtpd_tls_key_file = /etc/postfix/certs/smtpd.pem
smtpd_tls_cert_file= /etc/postfix/certs/smtpd.pem
smtpd_tls_loglevel = 2
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
smtpd_tls_ask_ccert = no
smtpd_tls_req_ccert = no
smtpd_tls_auth_only = yes
smtpd_tls_ccert_verifydepth = 0


По второму вопросу - читайте про reject_unlisted_recipient


"Проблемы с почтовой системой на Postfix"
Отправлено Etch , 17-Ноя-12 04:13 
> По первому вопросу - вот рабочий конфиг с моего компа (самоподписанные сертификаты):

И в master.cf стоит следующее:

smtps     inet  n       -       y       -       50       smtpd
  -o smtpd_tls_wrappermode=yes
  -o smtpd_tls_security_level=encrypt
  -o smtpd_client_port_logging=yes
  -o smtpd_client_restrictions=
  -o smtpd_sender_restrictions=reject_unlisted_sender,permit_sasl_authenticated,reject
  -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject
  -o smtpd_client_connection_count_limit=2


"Проблемы с почтовой системой на Postfix"
Отправлено mr brightside , 18-Ноя-12 16:49 
> По первому вопросу - вот рабочий конфиг с моего компа (самоподписанные сертификаты):
> По второму вопросу - читайте про reject_unlisted_recipient

Используется, но не спасает

вот кусок конфига, где описаны ограничения:

+++++++++++++++++++++++++++++++++
#4. Ограничения recipient_restrictions, sender_restrictions, client_restrictions, helo_restrictions, etrn_restrictions, data_restrictions

smtpd_etrn_restrictions =
  permit_mynetworks,
  reject
smtpd_helo_restrictions=
  permit_mynetworks,
  reject_invalid_helo_hostname,
  reject_invalid_hostname,
  check_helo_access hash:/usr/local/etc/postfix/checks/access_helo
smtpd_data_restrictions=
  permit_mynetworks,
  reject_multi_recipient_bounce,
  reject_unauth_pipelining
smtpd_sender_restrictions=
  check_sender_access hash:/usr/local/etc/postfix/checks/access_sender,
  permit_sasl_authenticated,
  permit_mynetworks,
  reject_non_fqdn_sender,
  reject_unknown_sender_domain,
  reject_unlisted_sender,
  reject_unverified_sender,
  check_sender_access hash:/usr/local/etc/postfix/checks/access_sender
smtpd_recipient_restrictions=
  permit_sasl_authenticated,
  permit_mynetworks,
  reject_unauth_destination,
  check_policy_service inet:127.0.0.1:10023,
  reject_unauth_pipelining,
  reject_unknown_client_hostname,
  reject_non_fqdn_recipient,
  reject_unknown_recipient_domain,
  reject_unverified_recipient,
  reject_unlisted_recipient,
  reject_invalid_helo_hostname,
  reject_non_fqdn_helo_hostname,
  reject_non_fqdn_sender,
  reject_unknown_sender_domain,
  reject_unverified_sender,
smtpd_client_restrictions=
  permit_sasl_authenticated,
  reject_plaintext_session,
  check_client_access hash:/usr/local/etc/postfix/checks/access_client,
  check_client_access pcre:/usr/local/etc/postfix/checks/access_client.pcre
+++++++++++++++++++++++++++++++++


"Проблемы с почтовой системой на Postfix"
Отправлено mr brightside , 18-Ноя-12 19:34 
Продолжу.

На всякий случай проверил все машины в сети этим:

- AVZ
- CureIt
- Nod32

Проверял предварительно выдернув из сети, после проверки вырубал комп, и тогда подключал проводок обратно.

После того, как проверил все машины и серваки на виндах, пошел смотреть в почту.

Проблема с MAIL DELIVERY осталась. Какое то сумасшедшее количество возвратов.

Postfix настроен на работу с LDAP. Там хранятся все виртуальные пользователи. При проверке postfix смотрит в базу на предмет валидности юзера и принимает решение о приеме письма или отлупе.

Как в таком случае можно отослать в мой домен письмо на несуществуещий адрес?

Или мне шлют на несуществующий адрес, но поля FROM и REPLY TO поддельные. В итоге мой сервер пытается отправить по этим поля уведомление о возврате. Если это так работает, то как можно это закрыть?

При этом в логе черным по белому (а вернее белым по черному) написано, что

++++++++++++++++++++++++
from=<ukrashenie.fasadov@ukr.net> to <kuzimovich@dneprokor.com.ua>    
++++++++++++++++++++++++

Как тогда мой сервер принимает это письмо и пытается отправить уведомление о возврате?

В общем, я не совсем понимаю

Что, неужели никто не сталкивался?


"Проблемы с почтовой системой на Postfix"
Отправлено mr brightside , 18-Ноя-12 20:59 
>[оверквотинг удален]
> smtpd_tls_security_level = may
> smtpd_tls_key_file = /etc/postfix/certs/smtpd.pem
> smtpd_tls_cert_file= /etc/postfix/certs/smtpd.pem
> smtpd_tls_loglevel = 2
> smtpd_tls_received_header = yes
> smtpd_tls_session_cache_timeout = 3600s
> smtpd_tls_ask_ccert = no
> smtpd_tls_req_ccert = no
> smtpd_tls_auth_only = yes
> smtpd_tls_ccert_verifydepth = 0

Вроде это то, что нужно. Во всяком случае теперь я не получаю отлупов, пытаясь послать почту в свой домен о том, что необходимо использовать шифрование.

Шифрование предполагалось только при авторизации и отправке писем от меня, от моих пользователей. Но все остальные серверы, конечно же, должны иметь возможность по 25 порту передать почту без всяких сложностей.

Спасибо за подсказку.

По второму вопросу:

Валидность юзера проверялась на этапе локальной доставки доставки/

Сделал на этапе smtp-сессии - пошли нормальные отлупы. Я еще помониторю ситуацию, но тысячу MAILER DAEMON'ов я больше не вижу.

Конечно, ведь он принимал почту от кого угодно...

Но, есть новая проблема:

Nov 18 20:47:38 mail postfix/smtpd[19660]: NOQUEUE: reject: RCPT from f97.mail.ru[217.69.129.120]: 550 5.1.7 <myPersonalMail@mail.ru>: Sender address rejected: undeliverable address: host mxs.mail.ru[94.100.176.20] said: 550 Unroutable sender address (in reply to MAIL FROM command); from=<myPersonalMail@mail.ru> to=<mycorporatemail@mydomain.ru> proto=ESMTP helo=<f97.mail.ru>

Теперь он тупо не видит пользователя в виртуальной базе... Вернее, он и не смотрит в виртуальную базу. Он смотрит в локальную passwd.

куски конфига:

Код:    
myhostname = mail.mydomain.ru
mydomain = mydomain.ru
myorigin = $mydomain
inet_interfaces = all
mydestination = $mydomain, $myhostname, localhost.$mydomain, localhost.$myhostname, localhost
mynetworks_style = host
...
virtual_transport = dovecot
virtual_mailbox_base = /usr/home/virtualmail
virtual_mailbox_domains = ldap:$config_directory/ldap/virtual_domain.cf
virtual_minimum_uid = 100
virtual_uid_maps = ldap:$config_directory/ldap/virtual_uid.cf
virtual_gid_maps = $virtual_uid_maps
virtual_mailbox_maps = ldap:$config_directory/ldap/virtual_mailbox_recipient.cf
virtual_alias_maps = ldap:$config_directory/ldap/virtual_aliases.cf
dovecot_destination_recipient_limit = 1
mailbox_transport = dovecot
smtpd_sender_login_maps = ldap:$config_directory/ldap/virtual_sender_login.cf    


В cf-ках лежат данные о доступе к LDAP-каталогу.

Инфу брал отсюдова:

http://www.lissyara.su/articles/freebsd/mail/postfix+dovecot.../


"Проблемы с почтовой системой на Postfix"
Отправлено Etch , 19-Ноя-12 08:16 
> Но, есть новая проблема:
> Nov 18 20:47:38 mail postfix/smtpd[19660]: NOQUEUE: reject: RCPT from f97.mail.ru[217.69.129.120]:
> 550 5.1.7 <myPersonalMail@mail.ru>: Sender address rejected: undeliverable address:
> host mxs.mail.ru[94.100.176.20] said: 550 Unroutable sender address (in reply to MAIL
> FROM command); from=<myPersonalMail@mail.ru> to=<mycorporatemail@mydomain.ru> proto=ESMTP
> helo=<f97.mail.ru>

Unroutable sender address (in reply to MAIL FROM command)
^^ вот это похоже на какие-то траблы с днс.

Попробуйте убрать опции
  reject_unknown_sender_domain,
  reject_unlisted_sender,
  reject_unverified_sender,

из smtpd_sender_restrictions


"Проблемы с почтовой системой на Postfix"
Отправлено mr brightside , 19-Ноя-12 10:15 
>[оверквотинг удален]
>> host mxs.mail.ru[94.100.176.20] said: 550 Unroutable sender address (in reply to MAIL
>> FROM command); from=<myPersonalMail@mail.ru> to=<mycorporatemail@mydomain.ru> proto=ESMTP
>> helo=<f97.mail.ru>
> Unroutable sender address (in reply to MAIL FROM command)
> ^^ вот это похоже на какие-то траблы с днс.
> Попробуйте убрать опции
>   reject_unknown_sender_domain,
>   reject_unlisted_sender,
>   reject_unverified_sender,
> из smtpd_sender_restrictions

Убрал

В общем, проблему с TLS решил.

Разбираясь с возможностью приема писем дальше осознал, что что то не в порядке в связке Postfix+LDAP.

Postfix упорно не хочет смотреть в базу LDAP и выдает мне ошибку:

++++++++++++++++++++++++++++++
Recipient address rejected: User unknown in local recipient table
++++++++++++++++++++++++++++++

Т.е. пытается искать в локальном passwd, когда надо искать пользователя в LDAP.

Корень проблемы, как мне кажется, в опциях mydomain в mydestination.

Я обслуживаю 3 домена:

- gooddomain1.ru
- gooddomain2.ru
- gooddomain3.ru

Для виртуальной конфигурации я обслуживание этих доменов указал так:

++++++++++++++++++++++++++++++
virtual_mailbox_domains = ldap:$config_directory/ldap/virtual_domain.cf
++++++++++++++++++++++++++++++

В этом конфиге указаны параметры для выборки данных о виртуальных доменах, хранящихся в LDAP. Через postmap проверил - отрабатывает прекрасно, получаю ровно то, что нужно.

Поэтому эта запись эквивалентна:

++++++++++++++++++++++++++++++
virtual_mailbox_domains = gooddomain1.ru, gooddomain2.ru, gooddomain3.ru
++++++++++++++++++++++++++++++

Пробовал указывать и так и так.

А следующие параметры у меня заданы так:

++++++++++++++++++++++++++++++
mydomain = gooddomain1.ru
mydestination = $mydomain, $myhostname, localhost.$mydomain, localhost.$myhostname, localhost
++++++++++++++++++++++++++++++

Т.е. получается, что обслуживаемый домем gooddomain1.ru указан и для локальной базы. Поэтому Postfix пытается туда посмотреть.

Как это правильно настроить?


"Проблемы с почтовой системой на Postfix"
Отправлено Etch , 20-Ноя-12 06:45 
У меня один домен и юзеры в passwd, так что здесь уже не подскажу :(

"Проблемы с почтовой системой на Postfix"
Отправлено mr brightside , 22-Ноя-12 18:59 
> У меня один домен и юзеры в passwd, так что здесь уже
> не подскажу :(

Ну, вроде бы проблески надежды наблюдаются

Отлупы делаются, если отправитель неверный и проверяется это на этапе smtp-сессии, а не на этапе локальной доставки

Почта улетает и прилетает.

Правда что то уж очень бунтует грейлистинг, но это дело поправимое

Еще помониторю ситуацию, а пока всем огромное спасибо.

На будущее, если кто будет искать, то мне помогло правильное указание параметров mydomain и mydestination.