Неприступный почтовый сервер, или жизнь без спама / Хабр

А получатель-то вообще существует?

Вот мы и дошли до последнего заголовка конверта — до получателя. Тут всё просто: во-первых, хорошо бы проверить, что переданная нам информация вообще является адресом электронной почты. Для этого служит директива

reject_non_fqdn_recipientКроме того нам бы не хотелось принимать почту на адреса, для которых у нас нет почтовых ящиков. Чтобы настроить такое поведение надо сначала создать список обслуживаемых ящиков, дальше рассказать о нём Postfix через один из *_recipient_maps параметров конфигурационного файла, ну а дальше либо воспользоваться параметром конфигурационного файла

smtpd_reject_unlisted_recipient = yesЛибо запрещающей опцией, имеющей тот же эффект:

reject_unlisted_recipientВ любом случае Postfix перестанет принимать письма для обслуживаемых доменов, если не существует ящика для получателя. Однако это ограничение никак не скажется на пересылке корреспонденции на адреса, которые не находятся в обслуживаемых доменах.

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

reject_unauth_destinationОна запрещает отсылку писем всем незарегистрированным пользователям (да, вам придётся настроить SMTP авторизацию). Всегда используйте эту опцию! Иначе быстро попадёте во всякие DNSBL.

Блоклисты, или как делать не надо

Некоторые администраторы почты при фильтрации спама полагаются на так называемые DNSBL (RBL) — чёрные списки узлов, замеченных в рассылке спама. Так вот,

никогда

не добавляйте

никаких проверок DNSBL

на ваши почтовые сервера. Тому есть две причины: первая, и самая основная, кроется во второй части первого предложения этого раздела. В эти списки узлы заносятся совершенно беспорядочно и нет никаких гарантий, что туда не попадёт нормальный хост (на котором, может быть, в какой-то момент поселился вирус, рассылающий спам, но теперь вирус уже вылечили, или проще и гораздо реальней — один внешний IP для большой сети, в которой завёлся спамер).

Грейлистинг


Иногда почтовые серверы бывают перегружены и не могут принять письмо. Как вы думаете, что они отвечают на входящие запросы в этом случае? Как ни странно так и отвечают — сервер

временно

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

Этот факт можно (и без сомнения нужно!) очень эффективно использовать: при каждой первой попытке соединения с незнакомого хоста наш сервер будет отправлять сообщение о временной ошибке, а пропускать письмо только со второго раза. Это отсеит сразу чуть ли не весь оставшийся спам, поскольку спамсерверы практически никогда не предпринимают больше одной попытки доставки письма (иначе они бы просто «упали» от переполнения очереди). Эта технология называется Greylisting, и использовать её в современных реалиях просто необходимо.

Минусом применения является небольшая (обычно не более получаса) задержка в доставке писем при первом соединении от неизвестного хоста. То есть если ещё не известный нашему постфиксу сервер хочет передать письмо, то при первой попытке соединения ему отправляется ошибка о временной недоступности.

О настройке грейлистинга в Postfix так же предлагаю прочитать в Google, это несложно и ошибиться не получится.

Домены smtp

Домены SMTP нельзя путать с сетевыми доменами или доменами,
относящимися к DNS либо являющимся сетевым доменом Windows. ДоменSMTP
предназначен для организации сообщений. Любой SMTP-сервер может иметь
от одного до трех типов доменов.

  • Local (Локальный). Сообщения с адресами электронной почты,
    использующими локальный домен, обслуживаются локальным сервером. Если
    сервер локального домена является сервером по умолчанию, то адреса
    электронной почты, поступающие без указания домена, дополняются именем
    локального домена.
  • Alias (Псевдоним). Локальный домен, использующий ту же конфигурацию,
    что и локальный домен по умолчанию, но другое доменное имя.
  • Remote (Удаленный). Сообщения с адресами электронной почты,
    использующими нелокальное имя домена, обслуживаются удаленным сервером.

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

Каждый виртуальный сервер должен
содержать, по крайней мере, один доменпо умолчанию. Доменом по
умолчанию является назначенный локальный домен.

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

Маршрутизация ldap

Настройка маршрутизации облегченного протокола службы каталогов LDAP
(Lightweight Directory Access Protocol) позволяет виртуальному серверу
SMTP получать настройки в LDAP для обработки отправителей и
получателей.

Если в LDAP уже определены группы (например, LDAP
используется для управления другим пользователем), адреса электронной
почты можно извлечь из существующих групп и расширить SMTP при указании
имени группы в сообщении.

Для настройки виртуального сервера SMTP используется оснастка Computer Management (Управление компьютером) и окно Properties (Свойства)
соответствующего виртуального сервера SMTP.

Во вкладке LDAPRouting (МаршрутизацияLDAP) доступен единственный
элемент управления – опция Enable LDAPRouting (Включить маршрутизацию
LDAP). По умолчанию опция отключена, и ее настройки недоступны.

При выборе привязки другой учетной записи (не анонимной или учетной
записи службы) откроется доступ к полю имени пользователя, пароля и
домена, поскольку в данном случае следует указать аутентификационные
данные. Для учетной записи службы входные данные пользователя,
подключающегося к SMTP-серверу, отправляются для аутентификации в LDAP.
Входные данные имени пользователя следует указывать в формате
отличительного имени (DN).

Похожее:  Creating and Using SSH Keys | Research Computing | RIT

Настройка доменов

Домен типа Alias (псевдоним) не имеет каких-либо параметров.
Единственной настройкой такого домена является либо переименование,
либо удаление: щелкните правой кнопкой мыши на имени домена и выберите
соответствующую команду. Окно свойств для домена типа Alias не содержит
каких-либо изменяемых атрибутов.

Настройка дополнительных параметров доставки

Для настройки дополнительных параметров доставки сообщений нажмите на
кнопку Advanced (Дополнительно), расположенную в левой нижней части
вкладки Delivery (Доставка) окна Properties (Свойства). В открывшемся
окне установите следующие параметры.

Если сообщение передается через большее количество маршрутизаторов, чем
задано в параметре Maximum Hop Count, генерируется отчет о
невозможности доставки, и сообщение не отправляется. Сообщение и отчет
о невозможности доставки передаются отправителю. Значением по умолчанию
является 15.

Установка значения в текстовом поле Masquerade Domain вызывает замену
домена, указываемого в строке From (От) сообщения, этим значением. Если
получатель ответит на сообщение, то оно будет направлено виртуальному
серверу SMTP, использующему доменное имя, установленное в данном
параметре.

Параметр Fully-Qualified Domain Name позволяет администратору
дополнительно контролировать поиск, выполняемый службой DNS при
отправке сообщения. Значением по умолчанию является имя, указанное в
качестве сетевого идентификатора узла.

Использование этого имени
является допустимым, поскольку сервер SMTP должен получить IP-адрес и
преобразовать его в доменное имя для выполнения доставки сообщения.
IP-адрес узла можно получить из сетевого идентификационного имени; он
используется для поиска записи адреса (A) в записи MX.

При обычной
отправке сообщения виртуальный SMTP-сервер осуществляет поиск в записи
MX перед выполнением поиска записи A. При указании полного доменного
имени виртуального сервера SMTP сначала выполняется его поиск в записи
MX, что исключает повторный поиск IP-адреса.

Значение Smart Host используется виртуальным сервером SMTP этого
смарт-узла для доставки сообщений. По умолчанию параметр не установлен.
При указании в текстовом поле значения открывается доступ к опции
Attempt Direct Delivery Before Send Directly To Smart Host (Попробовать
доставить напрямую перед отправкой в смарт-узел).

При ее включении
виртуальный сервер SMTP попытается отправить сообщение напрямую перед
тем, как использовать указанный смарт-узел. Преимущество от
использования смарт-узла заключается в освобождении ресурсов,
необходимых для доставки сообщений. Смарт-узел принимает на себя
подключение и отправку сообщения клиентом вместо SMTP-сервера, к
которому клиент подключился изначально.

Опция Reverse DNS Lookup обеспечивает выполнение сервером поиска DNS
при получении сообщений и сопоставление результатов со значением DNS,
указанным в команде EHLO/HELO. При обнаружении различий полученный
заголовок сообщения помечается значением RDNS failed (Обратный поиск
DNS не удался).

Если поиск DNS не дает результата, то полученный
заголовок сообщения помечается как unverified (незаверенный). Если
результат поиска DNS соответствует DNS, определенному в команде
EHLO/HELO, полученный заголовок сообщения остается без изменений.

Настройка локального домена по умолчанию

Локальный домен по умолчанию настраивается в консоли Computer
Management (Управление компьютером). Щелкните правой кнопкой мыши на
узле домена в правой части консоли MMC и выберите команду Properties
(Свойства). В окне свойств откроется вкладка General (Общие),
содержащая два параметра.

По умолчанию каталог входящих сообщений является подкаталогом корневого
каталога почтового ящика и имеет имя Drop. Квота для каталога Drop
включена по умолчанию.

Настройка параметров безопасности доставки

Некоторые серверы требуют аутентификацию SMTP-сервера для отправки
сообщения. Для получения доступа к настройкам аутентификации
виртуального сервера SMTP нажмите на кнопку Outbound Security
(Безопасность исходящих сообщений) во вкладке Delivery (Доставка).

В
окне Outbouns Security устанавливаются необходимые параметры
аутентификации, и включается шифрование сообщений при помощи протокола
безопасности транспортного уровня (TLS). По умолчанию уровень
аутентификации для исходящих сообщений – Anonymuos Access (Анонимный
доступ). Существуют другие виды аутентификации, проводимой при отправке
сообщений.

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

Настройка повторных попыток и интервалов

В области Outbound (Исходящие) вкладки Delivery (Доставка)
настраиваются параметры доставки сообщений. Параметр First Retry
Interval (Minutes) (Интервал перед первым повтором, мин) указывает
время, в течение которого сервер ожидает повторной доставки сообщения,
не доставленного с первого раза.

Значение по умолчанию – 15 мин,
диапазон допустимых значений находится в интервале от 1 до 9999 мин.
Если возникает ошибка при второй попытке доставки сообщения, сервер
ожидает следующую попытку в течение времени, установленного в параметре
Second Retry Interval (Minutes)

(Интервал перед вторым повтором, мин).
Значение по умолчанию – 30 мин, диапазон допустимых значений – от 1 до
9999 мин. Если доставка сообщения срывается в третий раз, сервер
ожидает истечения времени, установленного в параметре Third Retry
Interval (Minutes)

Возможна настройка первых трех попыток доставки сообщений. После
возникновения трех ошибок настраивается лишь единая конфигурация
последующих повторов доставки с помощью параметра Subsequent Retry
Interval (Minutes) (Интервал последующих повторов, мин), который также
расположен во вкладке Delivery (Доставка).

Похожее:  Личный кабинет смп банка: как зарегистрироваться, сменить или восстановить пароль

Значение по умолчанию
данного параметра – 240 мин, диапазон допустимых значений – от 1 до
9999 мин. Может оказаться так, что сообщение не будет доставлено,
независимо от количества повторов доставки. Для такой ситуации
устанавливается максимальный промежуток времени для последующих попыток
доставки.

С помощью параметра Expiration Timeout (Срок повторения)
задается окончание доставки сообщения по прошествии определенного
промежутка времени. Срок повторения можно также установить и для
локальной сети посредством изменения параметра в области Local
(Локальная сеть).

Значение по умолчанию – 2 дня. При доставке сообщения
можно отложить отправку уведомления о доставке в соответствии с
задержками сети. Задержки в локальной сети значительно отличаются от
задержек в других типах сетей, поэтому параметр Delay Notification
(Отложить уведомление) устанавливается отдельно для каждого типа сети.

Настройка удаленных доменов

Удаленные домены имеют гораздо больший набор параметров, чем локальные.
Для удаленных доменов настраивается требование подключения с TLS,
маршрутизация и аутентификация, независимо от параметров виртуального
сервера SMTP.

Для внесения изменений в настройки откройте окно Properties (Свойства)
домена. Оно содержит две вкладки: General (Общие) и Advanced
(Дополнительно). Вкладка General (Общие) по умолчанию открывается при
вызове данного окна. В ней настраиваются следующие параметры.

Все параметры удаленного домена также настраиваются и для виртуального
сервера SMTP, однако при возникновении конфликта настроек параметры
виртуального SMTP-сервера игнорируются. Параметры безопасности
исходящей почты можно использовать для принудительной аутентификации
клиентов (базовой или интегрированной аутентификации Windows).

На вкладке Advanced (Дополнительно) окна Properties (Свойства) для
удаленного домена находятся параметры, относящиеся к использованию ATRN
(аутентифицированный TURN). Если опция Queue Messages For Remote
Triggered Delivery (Ставить сообщения в очередь для удаленно
инициируемой доставки) включена, то клиенту разрешается периодически
подключаться и загружать сообщения.

Немного об smtp протоколе

Электронная почта имеет много аналогий с почтой обычной. Самое для нас главное сейчас то, что вся информация на электронном «конверте» представляет из себя всего лишь два адреса: получателя и отправителя, а также штампик почтальона, конверт доставившего.

Немного отвлечёмся: представьте, что к вам придёт лицо крайне отталкивающей наружности и вручит плотно запечатанную посылку с обратным адресом «Трям из Тилимилитрямдии». Рискнёте принять и открыть? Вряд ли. Так вот, электронную почту можно тоже легко проверять и отсеивать исходя только из адресной информации, причём простор для возможных действий тут гораздо шире.

Как вам должно быть известно, почта в интеренете передаётся между почтовыми серверами по протоколу SMTP. Любое общение по этому протоколу начинается с трёх обязательных заголовков: HELO, MAIL FROM и RCPT TO. То есть перед тем, как начать передавать какие-либо данные, сервер сначала представляется (HELO), потом сообщает обратный адрес отправителя (MAIL FROM) и затем — адрес получателя (RCPT TO).

Эти три заголовка и есть подпись на электронном конверте, и практически весь спам можно отсеять только исходя из их анализа. Большинство попыток передать что-то моему серверу не доходят дальше MAIL FROM, то есть письма отсеиваются ещё до фактического принятия, что значительно снижает нагрузку.

Итак, что же надо делать, чтобы не принимать письма, заведомо являющиеся спамом? Пойдём по порядку.

Ограничения на ретрансляцию сообщений

На виртуальном SMTP-сервере можно установить ограничения на
ретрансляцию сообщений. Выполните следующие действия.

  1. Откройте окно Properties (Свойства), перейдите во вкладку Access
    (Доступ) и нажмите на кнопку Relay (Ретрансляция), расположенную в
    области Relay Restrictions (Ограничения на ретрансляцию).
  2. Окно Relay Restrictions (Ограничения на ретрансляцию), которое
    откроется после нажатия кнопки, практически идентично окну Connection
    (Подключение). Вверху окна расположены две исключающие опции, а поля со
    списком функционируют так же, как аналогичные элементы окна Connection
    (Подключение).

Ограничения по ip-адресам и именам доменов

Можно запретить или разрешить компьютерам с конкретными IP-адресами или
именами доменов доступ к виртуальному серверу SMTP. Для установки
ограничений выполните следующие действия.

  1. Откройте окно Properties (Свойства), перейдите во вкладку Access
    (Доступ) и нажмите на кнопку Connection (Подключение), расположенную в
    области Connection Control (Управление подключением).
  2. В окне Connection находятся два селектора опций и список с
    расположенными под ним кнопками Add (Добавить) и Remove (Удалить).
    Селекторы опций называюся Only The List Below (Только список ниже) и
    All Except The List Below (Все, за исключением списка ниже). Выберите
    одну из опций. Список обновится и отобразит IP-адреса или имена
    доменов, относящиеся к данному ограничению.
  3. Нажмите на кнопку Add (Добавить), чтобы перейти в окно с запросом
    IP-адреса, имени домена или подсетей, добавляемых в список для данного
    ограничения.
  4. Выберите опцию из списка и нажмите на кнопку Remove (Удалить) для
    удаления указанного IP-адреса или имени домена.
  5. Нажмите на кнопку OK для сохранения изменений; иначе нажмите на
    кнопку Cancel (Отмена), и в конфигурацию виртуального сервера SMTP
    изменения внесены не будут. По умолчанию для виртуального сервера SMTP
    ограничения не установлены.

Отправитель — а стоит ли ему доверять?

Итак, сервер успешно вам представился, следующим пунктом программы идёт адрес отправителя. Из него тоже можно извлечь массу полезной информации. Сразу хочу заметить, что адрес отправителя вовсе не обязан быть из того же домена, что и сам сервер. Это распространённое заблуждение, поэтому имейте ввиду, что это не так. Один почтовый сервер спокойно может обслуживать несколько доменов.

Похожее:  Как исправить ошибку аутентификации SSH | Блог Timeweb Cloud

Однако если в адресе отправителя указан домен, который вовсе не существует, то письмо совершенно очевидно принимать не стоит. И уж точно не стоит принимать письмо, в котором в качестве обратного адреса указано нечто, вообще адресом не являющееся. За отказ в принятии для таких писем отвечают две опции:

reject_non_fqdn_senderreject_unknown_sender_domainПервая — проверка адреса на написание, вторая — проверка существования домена.

Уже неплохо, но можно сделать кое-что ещё. Можно запросить сервер, обслуживающий указанный адрес отправителя, на предмет существования на нём пользователя с этим адресом. Действительно, вроде бы неплохая идея удостовериться в том, что обратный адрес действительно существует, иначе нам вполне может придти письмо от эфемерного фантома, о котором никто и не слыхивал.

Технически это реализуется очень просто: наш сервер открывает встречную SMTP сессию, пытаясь послать письмо по адресу отправителя. Если удаётся успешно пройти этап посылки RCPT TO с этим адресом, т.е. если принимающий сервер вдруг не заявляет, что указанного ящика на нём нет, то считается, что присланный нам обратный адрес существует. Данные (то есть письмо) при проверке естественно никакие не передаются, сессия прерывается после RCPT TO.

За такую проверку обратного адреса отвечает опция

reject_unverified_senderИз сказанного выше следует, что для любого адреса, с которого вы рассылаете почту из своего домена, должен существовать ящик на вашем сервере. Иначе ваши письма не пройдут проверку обратного адреса на стороне получателя и соответственно не будут доставлены по назначению.

Это актуально для всяких рассылок и прочей вроде как односторонней коммуникации, не требующей ответа. Всегда создавайте ящики для всех адресов, с которых вы рассылаете почту. Если вы не хотите получать ответы на какой-то адрес, то просто посылайте письма на него в /dev/null, но принимать эти письма вы обязаны.

Проверяем приветствие

Итак, кто-то захотел передать вашему серверу письмо. Передача начинается с приветствия — заголовка HELO. В HELO должно быть указано полное доменное имя (FQDN) отправителя, соответственно если это не так — можете смело сразу же отказывать в принятии. В Postfix для этого служат две опции:

reject_invalid_helo_hostnamereject_non_fqdn_helo_hostnameПервая запрещает приём писем от хостов, передающих приветствие с некорректным синтаксисом, вторая — от хостов, передающих не FQDN в HELO запросе.

Разрешения пользователя на администрирование

Для конфигурирования виртуального сервера SMTP нужно установить
разрешения для пользователей или групп Windows на узле или другом
аутентифицирующем сервере, имеющем доверие со стороны главного сервера.
Пользователи или группы, выполняющие задачи по администрированию,
должны быть операторами виртуального сервера SMTP.

По умолчанию группа
администраторов, учетные записи Windows NT AUTHORITYLOCAL SERVICE и Windows NT AUTHORITYNETWORK SERVICE имеют статус операторов для любого
виртуального SMTP-сервера.

Для назначения пользователя оператором виртуального сервера SMTP
выполните следующие действия.

С ног на голову, или посмотрим с другой стороны баррикад

Фильтровать спам научились, теперь же я постараюсь свести воедино всю информацию на тему того, что же надо делать, что бы

не

попасть в спам.

Для администраторов почтовых серверов:

Для тех, кто рассылает почту (из программ, с сайтов и т.д.):

Создание доменов

Создание доменов для виртуального сервера SMTP осуществляется
посредством оснастки Computer Management (Управление компьютером).

  1. Откройте оснастку MMC Computer Management и щелкните на узле Services
    And Applications (Службы и приложения) в левой части консоли, чтобы
    отобразить доступные вложенные узлы.
  2. Щелкните на узле IIS, вложенном в узел Services And Applications
    (Службы и приложения).
  3. Щелкните на узле SMTP Virtual Server (Виртуальный сервер SMTP),
    который требует создания домена.
  4. Как показано на рисунке 4.10, одним из двух узлов, вложенных в узел
    виртуального SMTP-сервера, является узел Domains (Домены). Щелкните на
    узле Domains (Домены), чтобы отобразить домены соответствующего
    виртуального сервера SMTP.
  5. Для создания нового домена щелкните правой кнопкой мыши на узле
    Domains (Домены) и выберите NewDomain (СоздатьДомен). Откроется окно
    New SMTP Domain Wizard (Мастер доменов SMTP), в котором нужно выбрать
    тип нового домена, присваиваемого виртуальному серверу SMTP.
  6. Выберите тип Alias (Псевдоним) или Remote (Удаленный), после чего
    нажмите на кнопку Next (Далее).
  7. Когда мастер предложит ввести имя домена, введите нужное имя. После
    этого нажмите на кнопку Finish (Готово).

Управление доставкой сообщений

Помимо приема сообщений служба SMTP реализует их отправку. Для отправки
сообщений виртуальный сервер SMTP устанавливает соединение с другим
сервером и проверяет его готовность к приему сообщений. Параметры,
влияющие на способ отправки сообщений виртуальным SMTP-сервером,
находятся во вкладке Delivery (Доставка) окна Properties (Свойства)
виртуального сервера SMTP (см. рис. 4.8).

В качестве промежуточного итога


Вот так только на основе анализа трёх заголовков конверта можно отсеять огромное количество спама. Однако спамеры хитрые, поэтому этого всё же недостаточно.

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector