LINUX.ORG.RU

Определить источник спама

 , , ,


0

2

Добрый день!

Есть VDS, на котором хостятся сайты (около 40шт). Пару дней назад появилась большая активность в отправке писем и очень много ***frozen*** в очереди.

Что было предпринято:

Удалил письма из очереди — появляются снова.

Пробовал отыскать откуда идут (exim -bp ID, потом находил поле R=ID и смотрел в него) — ничего толкового не нашёл.

Включен php mail.log, но в логе фиксируются только валидные письма, все остальные (которые спам) там не появляются.

Пробовал grep'ать лог exim на предмет cwd — ничего нет.

Сайт, адрес которого указан в логах этих писем, проверил на php файлы, где их не должно быть — ничего не нашёл.

Идеи закончились, как найти того, кто шлёт эти письма?

в теле исходящих писем кто источник этих писем? Точнее, не «в теле», а в файле исходящего письма.

targitaj ★★★★★
()
Последнее исправление: targitaj (всего исправлений: 1)
Ответ на: комментарий от targitaj

Письма шлются от какого-то info@ecco.ru или как-то так, на разные адреса.

Пока для этого сайта изменил отправку в apache2.conf:

php_admin_value sendmail_path "/dev/null"
вроде в очереди ничего не попадается, посмотрим. Пробовал поиск по созданным недавно файлам, последний доступ к файлам — нашёл только то, что в mod-tmp этого сайта создаются куча файлов-сессий. Хотя сайт не такой уж популярный (от слова совсем).

conformist ★★★
() автор топика
Ответ на: комментарий от conformist

источником письма может быть или локальный процесс или удалённый. То есть или какой-то код локально тупо шлёт (через уязвимость в сайте могли запустить) или кто-то удалённо через твой почтовик шлёт (если оно доступно). Применяй метод исключения.

targitaj ★★★★★
()

Идеи закончились, как найти того, кто шлёт эти письма?

Надо, для начала, определить, это по smtp, или вызовом локального bin/sendmail. Во втором случае дописать врапер на предмет дописывания в заголовок того, откуда его вызвали. Использование smtp запретить всем, кроме пользователя, от которого работает exim (посредством iptables). Хотя это может быть чревато, я не знаю, как оно происходит, когда отправка у Exim через вывод локального приложения идёт. Например, отправке оригинальным Sendmail это мешает, так как bin/sendmail запускается от пользователя и, сразу, пытается переслать на локалхост по smtp, но после облома сообщение остаётся в очереди, а её уже рутовый процесс обрабатывает.

AS ★★★★★
()
Последнее исправление: AS (всего исправлений: 1)
Ответ на: комментарий от targitaj

Другой сайт занялся тем же :( :

1bxXoZ-000398-G7-H
Debian-exim 106 114
<info@here-is.domain>
1477048603 0
-helo_name here-is.domain
-host_address 127.0.0.1.38151
-host_name localhost
-interface_address 127.0.0.1.25
-received_protocol esmtp
-aclm 6 11
whitelisted
-body_linecount 14
-max_received_linelength 76
XX
1
izzy0874@aol.com

206P Received: from localhost ([127.0.0.1] helo=here-is.domain)
	by my.host.name with esmtp (Exim 4.76)
	(envelope-from <info@here-is.domain>)
	id 1bxXoZ-000398-G7
	for izzy0874@aol.com; Fri, 21 Oct 2016 14:16:43 +0300
044  Date: Fri, 21 Oct 2016 11:16:08 +0000 (UTC)
036F From: here-is <info@here-is.domain>
021T To: izzy0874@aol.com
061I Message-ID: <1675280561.18938229.1477048568391@here-is.domain>
024  Subject: FW:  whats up?
018  MIME-Version: 1.0
094  Content-Type: multipart/alternative; 
	boundary="----=_Part_18938228_964741237.1477048568391"
022  X-mailer: Mailer v1.0
<h2>whats up? Make love better</h2><p><a href='http://troothing.apurbatech.com/schedulem0hv0/head/'>click here</a></p>
это в теле письма.
2016-10-21 14:16:43 Received from info@here-is.domain H=localhost (here-is.domain) [127.0.0.1] P=esmtp S=1029 id=1675280561.18938229.1477048568391@here-is.domain
2016-10-21 14:16:43 izzy0874@aol.com R=dnslookup T=remote_smtp defer (-53): retry time not reached for any host

conformist ★★★
() автор топика
Ответ на: комментарий от AS

Когда я на одном сайте запретил отправку писем, они прекратились. Значит шлёт именно sendmail. Надо как-то заставить его показать, кто заставляет его слать письма.

conformist ★★★
() автор топика
Ответ на: комментарий от conformist

гм?

-host_address 127.0.0.1.38151
-host_name localhost
-interface_address 127.0.0.1.25
-received_protocol esmtp
у тебя вообще с этой машины письма в штатном режиме какие-нибудь отсылаются? Если нет - просто гаси MTA и разбирайся дальше.

targitaj ★★★★★
()
Ответ на: комментарий от conformist

Когда я на одном сайте запретил отправку писем

В смысле через sendmail_path ? Тогда врапер используй, кторый допишет X-что-то. Их есть в сети. Плюс, если это что-то на php, можно в самом php:
mail.add_x_header = On

AS ★★★★★
()
Ответ на: комментарий от targitaj

Судя по логам exim почта ходит, только я не пойму как. Например, mail -s 'subject' user@domain просто зависает. Странно.

conformist ★★★
() автор топика
Ответ на: комментарий от targitaj

Попробовал напрямую таки отослать сообщение, не пришло. В логе отправки видно, как гугл жалуется на PTR запись.

conformist ★★★
() автор топика
Ответ на: комментарий от conformist
-host_address 127.0.0.1.38151
-host_name localhost
-interface_address 127.0.0.1.25
-received_protocol esmtp

Для борьбы с этим я бы в iptables вставил строку

iptables -I OUTPUT 1 -p tcp --dport 25 -d 127.0.0.1 --syn -m owner --uid-owner XXX -j DROP
XXX - юзер от которого работает apache

ну и по-грепать в php-ных файлах всякие stream_socket_client/fsockopen/socket_connect

без базовых знаний трудно будет найти спамящие скрипты.

А еще можно сравнить скрипты с бекапом сайтов, если такой есть :)

mail -s 'subject' user@domain

оно ждет тело письма в stdin. Для проверки можно выполнить

echo test |mail -s 'subject' user@domain

vel ★★★★★
()
Ответ на: комментарий от vel

Exim настроен как смартхост на яндексовские ящики, не понимаю, почему кругом фигурирует именно localhost.

Пока обернул системный sendmail, посмотрю на логи (если всё правильно сделал. grep по файлам php ничего не даёт, только служебные формы, которые работают и использование которых попадает нормально в лог phpmail.

conformist ★★★
() автор топика
Ответ на: комментарий от conformist

ну так сделай

telnet localhost 25
helo localhost
mail from: <pupkin@mail.ru>
rcpt to: <pupkin@mail.ru>
data
Subject: xxxxx

xxxxxxxxxxxxxx
.
и посмотри на результат и логи

vel ★★★★★
()
Ответ на: комментарий от vel
~$ telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.localdomain.
Escape character is '^]'.
220 olle.pro ESMTP Exim 4.76 Sat, 22 Oct 2016 12:20:48 +0300
helo localhost
250 olle.pro Hello localhost [127.0.0.1]
mail from: <pupkin@mail.ru>
250 OK
rcpt to: <pupkin@mail.ru>
250 Accepted
data
354 Enter message, ending with "." on a line by itself
Subject: test message

hello localhost
.
250 OK id=1bxsUa-0004zO-2A
^]

в логе это письмо не появляется, в очереди его нет.

conformist ★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.