Назад | Перейти на главную страницу

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

У меня есть небольшой сервер, на котором размещено около 100 уникальных клиентов. У меня были проблемы с тем, что мой законный почтовый сервер отображался в черных списках DNS, поэтому мне нужно выяснить, есть ли у одного из моих многочисленных клиентов плохой скрипт, отправляющий мусор через мой виртуальный SMTP-сервер в IIS6.

У меня электронная почта отправляется правильно, у меня настроена ретрансляция, разрешающая только 127.0.0.1, поэтому я знаю, что кто-то где-то в этом ящике разрешает плохую почту через службу. Я включил все журналы в службе SMTP, но это не дает мне никакого представления о том, какой сценарий (скорее всего, классическое приложение ASP VBScript) является виновником.

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

Как упомянул jdw в своем комментарии; В прошлом я использовал exim для этой конкретной цели, и я считаю, что MTA на основе Linux намного более гибок и мощнее для такого рода вещей. Но это не поможет, если все, что у вас есть, - это IIS.

Поскольку классический ASP представляет собой обычный текст, вы можете выполнять текстовый поиск на сервере общих команд ASP для отправки почты, например

CreateObject("CDO.Message")

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

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

Это строго теоретически, но я читал статью о подобной ситуации некоторое время назад. Вы должны иметь возможность использовать продукт типа Wireshark, настроенный на адрес обратной связи, чтобы получить захват пакета, содержащий все ссылки на ваш SMTP-коннектор по умолчанию. Может быть стоит посмотреть.

http://wiki.wireshark.org/CaptureSetup/Loopback