8 октября 2012 г.

Убей в себе SPAM'ера или SPF, DKIM и прочий DMARC

 - «Spam, Spam, Spam, Spam... Любимый Spam! 
Замечательный Spam!»
-  Я не люблю SPAM!

История рассылки SPAM'а стара как мир - когда-то он слался через т.н. open relay'и, затем это делали вирусы и вот ... третье пришествие - спамеры использующие Ваше доменное имя для своих грязных дел. Но обо всем по порядку ...

Годика эдак с 3 назад обратил я внимание, что периодически возвращается ко мне почта с сообщением о недоставке. И письма все сплошь какие-то странные: отправитель  несуществующий, адресат не найден и по тексту явный спам. Ладно думаю, сейчас мы их быстро... Почта у нас Google Apps - нашли статейку, что куда добавить (теперь я знаю, что это был SPF :). Добавили что-то в DNS, и вроде бы спам прекратился (ну или перестал бросаться в глаза).

А с пол года назад проблема вернулась и как ... Несколько наших клиентов не получили важные письма (скажем прямо - проекты договоров). Затем они их даже нашли - в "Нежелательной почте" (WTF!?). Это было последней каплей, которая заставила "засучить рукава" и устроить "кровавый террор" за наш домен.

Для начала не была понятна суть проблемы - почта рассылается от лица нашего домена, но через какие сервера (иногда через Google, а иногда нет - судя по тому, что возвращалось в клуджах писем). Начали копать вглубь.

Сперва "полезли" в документацию и нашли там, что появился DKIM, который по сути представляет из себя пару ключей (один в DNS, а второй в письме) и по ним позволяет определить, а точно ли Вы имеете право отправлять письма от лица этого домена (тоже какая-то "левая" тема - почему спамер не может "найти" наш "закрытый" ключ и его передавать при отправке письма?). Да, забыл написать SPF - определяет с каких IP можно слать корреспонденцию. Ну, Вы уже поняли, DKIM не дал видимого эффекта - (надеюсь) наши письма прекратили попадать в "нежелательные", но поток спам'а не ослабевал.

Затем поняли, что SPF (см. выше) он если не проходит валидацию (т.е. если отправка идет не с Google'овских ипшников) просто помечает почту как soft fail - т.е. типа "не получилось" и что с этим всем делает тот почтовый сервер через который шла отправка не знает никто - в идеале письмо будет помечено как спам, но это в идеале. Можно изменить soft fail, на hard fail, но особо это делать не рекомендуют. Не знаю с чем это связано, но по логам DMARC'а (о нем ниже) - часть внутригугловой корреспонденции не проходит SPF и/или DKIM авторизацию (менее 0,1% :).

Остаться без важной почты мы не захотели, поэтому SPF решили руками не трогать. И тут пришел на помощь DMARC. Фактически он работает поверх SPF'а и DKIM'а и позволяет что-то делать с корреспонденцией, которая не соответствует ни тому, ни другому (может я путаю, но по отчетам я вижу, что есть несколько сообщений, с которыми все ОК, но по которым или SPF, или DKIM проверка не прошла). Настройка DMARC'a это то еще шаманство - вы добавляете в DNS информацию о том, сколько % корреспонденции обрабатывать, на какой email отправлять ежедневный отчет (а зачем два email'а указывать?) и что делать с корреспонденцией, которая не соответствует - ничего, в карантин (на самом деле пометить как SPAM) или не доставлять. Для особо ленивых есть "генерилки" DNS записей (см., например, на DMARC analyzer'e).

В общем, после того как Вы это все настроите и получите первый email начинается самое интересное (и здесь без "нюансов" не обошлось - если у Вас почта на Google Apps и Вы укажите ящик несуществующий, например, postmaster@yourdomain.com, в надежде на то, что отчет "приедет" на адрес на который поступает вся корреспонденция о недоставке, то отчет по DMARC'у не дойдет, хотя корреспонденция с несуществующих адресов будет возвращаться на Ваш email - странно правда?).

Итак, получен первый DMARC отчет - это зазипованый XML файл. И возникает первый разумный вопрос "И что с ним теперь делать!?" Есть достаточное количество локальных и on-line просмотрщиков этого формата, но я нашел только 1 который делает ровно то, что я хочу. Принимает по почте письмом с отчетом и показывает отчет за период с динамикой и процентным соотношением SPAM'а - DMARC analyzer. "Загнав" в него отчет за 2 недели я понял, что ежедневный поток SPAM'а "от нашего лица" составляет до 25% по кол-ву сообщений (о кол-ве адресатов в сообщении боюсь и думать - такой статистики или нет, или я ее не нашел). Количество доменов от которых шел SPAM тоже заставило себя уважать - более 250 штук с географией от Индии до Бразилии. В среднем по 2-3 сообщения от домена. Т.е. какой-то SPAM бот выбрал себе наш домен для прикрытия и "шарашил" от него всякую ерунду (а не дай Бог фишинг или еще чего похуже?).

В общем, переключив в DMARC'е режим в карантин свели мы этот процент к 0 (т.е. спам адресатам слать прямо в сад "нежелательную почту"). А если будут усердствовать - отключим газ включим режим отмена доставки сообщений. Как это делается в Google Apps описано здесь.

Возможно я заблуждаюсь, но мне кажется, что DMARC идеологически отличается от предшественников тем, что почта проверяется еще и "в пути", а не только на сервере отправки (во всяком случае мненесколько раз приходило по два отчета за день - один от Google, а второй ... от Yahoo :).

И напоследок - все эти "бодания" напоминают соперничество броня-патрон: чем толще броня, тем больше калибр создают, и тем толще броню делают и так в цикле :) Какая аббревиатура будет следующей ;)?

Комментариев нет:

Отправить комментарий