Вопрос: Обнаружение спамеров на моем сервере


Недавно я получил Undelivered Mail Returned to Sender отправляя мой информационный бюллетень одному из моих 1500 клиентов. Мой сайт использует процедуру двойного доступа, чтобы убедиться, что пользователь явно хочет получать мой информационный бюллетень.

Сообщение об ошибке:

smtp; 554 ...
    Swisscom AG IP: 94.130.34.42, You are not allowed to send us mail. Please
    refer to xyz.com if you feel this is in error.

Я получил пример спам-почты (от почтового провайдера получающего почтового сервера):

Received: from mail.com ([94.130.34.42])
        by smtp-27.iol.local with SMTP
        id itOWeYZ6O42IFitOWe35TR; Tue, 13 Feb 2018 03:54:09 +0100
From: "Servizi online - Poste Italiane" <posteitaliane@test123.it>
Subject: Abbiamo ricevuto una segnalazione di accredito
Date: Mon, 12 Feb 2018 11:32:03 -0500

Поставщик также заявил, что мой сервер, похоже, взломан. Далее он заявил, что «почтовый сервер получателя просто записал rDNS, представленный ему соединительным IP, в этом случае mail.com ([94.130.34.42])"- это определенно НЕ, поскольку я настроил свою запись rDNS (mail.lotsearch.de) для моего IP-адреса. Поэтому, если я правильно понял rDNS, получающий почтовый сервер запрашивает IP-адрес отправителя для записи rDNS (94.130.34.42 => должен разрешить to => mail.lotsearch.de, что он определенно делает, когда я тестирую его с локальной машины через $ host 94.130.34.42).

Как можно обмануть rDNS? Я не могу представить, каким образом это может технически работать (только с атакой «человек-в-середине» где-то в инфраструктуре между получающим почтовым сервером и моим сервером).

Провайдер также отметил, что «вероятно, что компьютер, подключающийся к моему IP, был взломан и отправил эти сообщения через прямые соединения с почтовым сервером получателя (также называемым прямым MX)». Что значит direct MX имею в виду? Кто-то украл или обнаружил утечку почтовых учетных данных на одну из моих почтовых учетных записей и использовал их для отправки почты?

То, что я сделал до сих пор, чтобы убедиться, что мой сервер НЕ / не будет взломан,

  • просмотрел почтовые журналы (var/log/mail*): ничего особенного там
  • проверили журналы регистрации ssh (last, lastb): ничего необычного
  • если postfix выполняет ретрансляцию: нет, нет (проверено через telnet)
  • проверено на наличие вредоносного ПО через clamav: нет результатов
  • установлен и настроен fail2ban для ssh, postfix и dovecot
  • установил последние обновления / обновления для Ubuntu 16.04 (я делаю это каждую неделю)
  • если мой IP-адрес находится в любом черном списке: это не
  • проверенную запись rDNS в консоли управления моего хостинг-провайдера: она правильно установлена ​​на mail.lotsearch.de,
  • измененные пароли всех почтовых учетных записей
  • изменение открытых ключей для доступа к оболочке

Что еще более важно: информации о posteitaliane@test123.it в журналах. Поэтому, если мой сервер был бы неправильно использован спамером (т. Е. Из-за утечки учетных данных smtp одной из почтовых учетных записей), я бы увидел это в файлах журнала.

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

Как я могу отслеживать исходящий почтовый трафик (за процесс и на порт)?

Только мониторинг исходящего порта 25 не помог бы, так как это могло бы улавливать нерегулярные письма, отправленные через постфикс, но не почтовый трафик, вызванный потенциальной вредоносной программой (если вредоносное ПО использует другой порт, чем 25 для прямой отправки сообщений / общения с почтовыми серверами получателей) , Если я отслеживаю исходящий трафик на всех портах, я получаю доступ к огромному файлу журнала, который я не могу выполнить для подозрительной активности.

EDIT - добавлен тест для открытого реле:

$ telnet mail.lotsearch.de 25
$ HELO test@test.de
250 mail.lotsearch.de
$ MAIL FROM: test@test.com
250 2.1.0 Ok
$ RCPT TO:<realEmail@gmail.com>
454 4.7.1 <realEmail@gmail.com>: Relay access denied

EDIT - запуск webapps


12
2018-02-14 14:52


Источник


«Если я отслеживаю исходящий трафик на всех портах ...» Почему? Какой еще трафик является отправкой этого почтового сервера? Вы уверены, что не настроили открытое реле? И никто, у кого нет доступа к отправке почты на сервер, пропустил учетные данные? - Daniel Widrick
@DanielWidrick Почтовый сервер также используется как веб-сервер, поэтому также возможен трафик с 443 и 80. Я подумал о каком-то вредоносном ПО, размещенном на моем сервере, обменивающемся непосредственно с внешними почтовыми серверами (а не по умолчанию почтового сервера postfix). Об открытом реле: я отредактировал свой вопрос с проверкой, которую я выполнил, чтобы убедиться, что нет открытого реле. Ваш последний вопрос трудно ответить, поскольку я не знаю о «здоровье» компьютеров моих клиентов (где настроены почтовые учетные записи моего сервера) или если они заражены вредоносными программами / кейлоггерами, которые получили учетные данные и т. Д. - mfuesslin
Диск дешевый. В вашей ситуации есть действительный случай для хранения журналов за год. Рассмотрите возможность использования syslog и т. Д., Чтобы отправить их с сервера напрямую. - Criggie


Ответы:


Прежде чем перейти к моему предложению, я хочу немного рассказать о чем-то, что ваш провайдер сказал вам:

 Received: from mail.com ([94.130.34.42])
        by smtp-27.iol.local with SMTP
        id itOWeYZ6O42IFitOWe35TR; Tue, 13 Feb 2018 03:54:09 +0100

Эта не указывают, что обратный DNS для 94.130.34.42 является (или был) mail.com. Скорее, это указывает, что клиент SMTP отправлен mail.com в своем HELO (или EHLO) линия. (Хорошо сконфигурированный почтовый сервер полностью отклонил это соединение, но это касается Swisscom, а не вы ...). Эта строка не указывает на обратную запись DNS. Если бы это произошло, оно появилось бы в круглых скобках. Например:

Received: from mail-io0-f197.google.com (mail-io0-f197.google.com [209.85.223.197])

В этом случае первое имя хоста - это то, что почтовый сервер идентифицировал как EHLO, Второе имя хоста - это обратный DNS, записанный во время соединения.

RFC 5321 раздел 4.4 объясняет формат строки Received: с формальной грамматикой.

В вашем случае не было зарегистрировано обратное DNS. Поскольку ваш IP-адрес имеет запись PTR, это может быть связано с тем, что они не искали его, или произошел временный сбой DNS.


Теперь, похоже, вы запускаете веб-хостинг и имеете множество веб-приложений. Если один из них скомпрометирован, он может начать отправку спама. Они часто делают прямые подключения к удаленным почтовым серверам, просматривая их записи MX и подключаясь к порту 25, как если бы они были самим почтовым сервером, вместо того, чтобы отправлять почту в местную почтовую катушку или аутентифицированную почтовую службу на портах 587 или 465 как это делают законные веб-приложения.

Один из способов остановить это - реализовать правило брандмауэра, которое предотвращает исходящие соединения на порту 25, если пользователь не является пользователем почтового сервера. Например:

iptables -I OUTPUT -m owner ! --uid-owner postfix -m tcp -p tcp --dport 25 -j REJECT

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


13
2018-02-14 15:59



Спасибо за ваш ответ. Как мне указать iptables правило, чтобы пользователи postfix и plesk отправляли электронные письма (как я думаю, панель Plesk отправляет почту напрямую, а не через постфикс). Можно ли также настроить crondaemon (мои cronjobs) для отправки электронной почты через smtp через постфикс? Я не хочу добавлять пользователя cron к iptables (как к другому исключению), так как было бы безопаснее отправлять почтовый трафик, где это возможно, через постфикс. Можно ли использовать crontab для postfix для отправки журналов ошибок? Должен ли я помещать это в новый вопрос здесь на serverfault? - mfuesslin
Я не знаю, как это сделать с Плеском. Здесь мы не ставим вопросы о Plesk так или иначе. - Michael Hampton♦
Хорошо, но если я хочу указать несколько пользователей, которым разрешено отправлять данные через порт 25, могу ли я просто скопировать правило iptables и добавить второй с другим пользователем или мне нужно указать его в одном правиле? - mfuesslin
Возможно нет; Думаю, вам придется создать цепочку пользователей. - Michael Hampton♦
Одна вещь о предоставленном правиле iptables: вы уверены, что нам не нужно устанавливать правило для пользователя root? Поскольку мастер-процесс постфикса выполняется root в большинстве случаев. Или мастер-процесс postfix запускает подпроцессы, используя postfix-user для отправки электронных писем / записи? Я попробовал правило iptables, электронные письма не могли быть доставлены ... Если я это сделаю ps -ef | grep "postfix" Я вижу некоторые подпроцессы, выполняемые postfix-user и один мастер-процесс, выполняемый root... - mfuesslin


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

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

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

  • Храните журналы в течение нескольких недель в минимальные и лучшие месяцы. Поэтому в любое время что-то случается, вы исследуете.

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

  • Не уверен, как они это реализуют, но одна вещь, которую я знаю, многие провайдеры делают для исходящих почтовых служб, заключается в том, что второй провайдер / IP блокирует электронную почту, а другие электронные письма не пытаются отправиться. В идеале вы хотите что-то подобное. Потому что вторая блокируется, отправка большего числа просто усугубит проблему.


7
2018-02-14 15:22



@mfuesslin Mailchimp будет неправильной платформой для использования. Mailchimp - это служба маркетинга по электронной почте, вам нужна служба транзакций электронной почты. Посмотрите на Mandrill (принадлежащий тем же людям, которые владеют Mailchimp). Это 20 долларов в месяц за блок из 25 000 писем. Не очень дорого. Отправка этого большого количества писем ежедневно с вашего собственного IP-адреса приведет только к высокой скорости спам-бокса ... это проигрышная битва. Вы могли бы нанять целую команду, чтобы ничего не делать, но стремиться к своим показателям эффективности в течение дня каждый день и все равно не быть таким же хорошим, как с помощью транзакционной службы. - SnakeDoc
Люди, использующие serverfault.com, должны иметь возможность запуска почтового сервера; это не так сложно. Тем не менее, похоже, что почтовый сервер виноват, похоже, что какая-то скомпрометированная веб-страница напрямую отправляет спам. - wurtel
@wurtel только потому, что у вас есть знания о том, как делать что-то, это не значит, что имеет смысл сделать это. Если вы можете найти услугу за X / месяц, чтобы сделать то, что вам нужно, и вам потребуется 4 часа в месяц / усилий, чтобы сделать это самостоятельно, тогда действительно не имеет смысла делать это самостоятельно. - Francisco1844
@wurtel Capable? Да. Постоянно поступать в папку «Входящие», отправляя 1500+ писем в день? Сомнительный и, вероятно, №. Никто не говорит, что вы не можете этого сделать ... только для того, чтобы сделать это хорошо, последовательно и в течение длительного периода времени, это будет стоить вам гораздо больше, чем 20 долларов в месяц , - SnakeDoc
@wurtel Я не пытаюсь спорить или что-то еще, но тратит час в месяц на самом деле дешевле, чем $ 20? Предоставляет ли ваша система тарифы Open и Click? Отслеживать и обрабатывать отписки и как мягкие, так и жесткие отскоки? Использует ли он все это для каждого типа электронной почты или для каждой кампании? Знаете ли вы свои тарифы для входящих почтовых ящиков, какие службы электронной почты занесены в черный список вашего IP-адреса, какие RBL выбрали ваш IP-адрес и как снова удалить его? Вы знаете, как ваша статистика сравнивается с другими в вашей отрасли? - Если это так, вы делаете намного больше, чем 1 час работы в месяц ... или вы не получаете хорошие результаты. - SnakeDoc