Поделюсь парой полезных ссылок по горячим следам для начала, чуть позже расскажу подробнее.
Наша конфигурация упрощена: используется только один транспортный сервер, без пограничного.
Итак, первое что мы обнаружили - это open relay - когда через наш сервер отправляют по всему Интернету письма. Чтобы его закрыть нужно создать 2 SMTP Receive коннектора, один для внутренней сети с аутентификацией Exchange User, другой для анонимных пользователей с TLS аутентификацией из всей сети, кроме локальной.
Второе - это спам без отправителя, с подменой отправителя и другими вопиющими нарушениями. Для защиты нужно убедиться что на всех машинах работает антивирус, а также включить на транспортном сервере механизмы антиспама Exchange (команда Install-AntispamAgents.ps1 и перезагрузка транспортного хаба)
http://support.microsoft.com/kb/555924
Настройки по умолчанию антиспама в Exchange не пропускают многие письма, поэтому пришлось отключить чёрный список, а также смягчить проверку на спам:
- Фильтрация контента - снимаются все галочки с наказаниями;
- Репутация отправителей ставится в МАКСИМУМ (не смотря на размытое описание на русском языке) ползунок и в 0 число часов добавления в чёрные списки;
- В транспортном сервере где smtp-receive коннекторы на закладке антиспама добавить в белый список IP адреса серверов почты ваших партнёров, у которых проблемы с доставкой вам почты. Узнать их можно на http://www.ip-ping.ru/iphost/ сначала введя имя их сайта, потом последовательно все домены с MX-записями, их IP и нужно добавлять в белые листы.
- В Eset добавить в список allowed доменов домены почты (те, что после собаки) и IP-адреса которые добавлялись в Exchange.
- Проверка отправителя сильно тормозит почту, мы у себя отключили эту службу. Получателя же надо проверять обязательно, чтобы не пользовались всякие.
Остальные отключили, особенно фильтрацию внутреннего контента и чёрный список IP-адресов.
Ну и есть ещё тонкая настройка антиспам-движка Eset Mail Security, если выбрать режим антиспама custom и зайти в текстовый конфиг. Но есть ещё скрытые настройки, например RejectionThreshold=75 должно снизить количество спама с большим рейтингом спамности, их работоспособность под вопросом, но информации мало не бывает.
http://www.mailshell.com/mail/client/oem2.html/step/sendmailconfig
Наша настройка кастомного антиспама сейчас:
most accurate + greylist
Но для серых листов поставили отшиб на 15 минут для проверки, бан на 2 часа и добавление в белые списки на 136 дней. Так как некоторые почтовики ждут час до следующей попытки, а потом начинают увеличивать интервал между отправками.
И теперь самое интересное: грейлисты начинают задерживать почту. Чтобы она проходила через greylist, надо сделать то, что написано в этой гениальной статье. Если коротко - он байпассит данные SafeSenders из ActiveDirectory. Для начала их надо сделать глобальными командой в командной консоли:
Get-Mailbox | Update-SafeList –Type SafeSenders
После этого нужно их регулярно собирать по аутлукам и сохранять в Active Directory:
get-mailbox | where {$_.RecipientType -eq [Microsoft.Exchange.Data.Directory.Recipient.RecipientType]::UserMailbox } | update-safelist
Ну и в статье описано как сделать чтобы при отправке письма в Аутлуке получатель автоматом добавлялся в доверенные. Для работающих с большим количеством новых абонентов это не подходит - есть ограничение в 3000 этих безопасных отправителей.