Проблема
Я думаю, что мой сервер используется для рассылки спама с помощью sendmail, я получаю в очереди много писем, которых я не узнаю, а мой mail.log и syslog становятся огромными.
Я отключил sendmail, поэтому ничего не выходит, но я не могу понять, откуда он.
На данный момент расследование:
Я пробовал решение в Сообщение блога ниже и также показано в этом нить.
Он предназначен для добавления заголовка оттуда, где добавляется почта, и записи всей почты в файл, поэтому я изменил следующие строки в моем файле php.ini:
mail.add_x_header = On
mail.log = /var/log/phpmail.log
Но в журнале phpmail.log ничего не отображается.
Я использовал команду здесь, чтобы исследовать cron для всех пользователей, но все в порядке. Единственный запущенный cron - это cron для веб-сайта.
Затем я обнаружил все файлы php, которые были изменены за последние 30 дней, но ни один из них не выглядел подозрительно.
Что еще я могу сделать, чтобы узнать, откуда это?
Отчеты Mail.log
Включил sendmail на секунду. Вот небольшой образец отчетов:
Jun 10 14:40:30 ubuntu12 sm-mta[13684]: s5ADeQdp013684: from=<>, size=2431, class=0, nrcpts=1, msgid=<201406101220.s5ACK1cC011438@ubuntu12.pcsmarthosting.co.uk>, proto=ESMTP, daemon=MTA-v4, relay=localhost [127.0.0.1]
Jun 10 14:40:30 ubuntu12 sm-msp-queue[13674]: s5ACK1cC011438: to=www-data, delay=01:20:14, xdelay=00:00:00, mailer=relay, pri=571670, relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, stat=Sent (s5ADeQdp013684 Message accepted for delivery)
Jun 10 14:40:30 ubuntu12 sm-mta[13719]: s5ADeQdp013684: to=<www-data@ubuntu12.pcsmarthosting.co.uk>, delay=00:00:00, xdelay=00:00:00, mailer=local, pri=32683, dsn=2.0.0, stat=Sent
Jun 10 14:40:30 ubuntu12 sm-mta[13684]: s5ADeQdr013684: from=<www-data@ubuntu12.pcsmarthosting.co.uk>, size=677, class=0, nrcpts=1, msgid=<201406101200.s5AC0gpi011125@ubuntu12.pcsmarthosting.co.uk>, proto=ESMTP, daemon=MTA-v4, relay=localhost [127.0.0.1]
Jun 10 14:40:31 ubuntu12 sm-msp-queue[13674]: s5AC0gpi011125: to=www-data, ctladdr=www-data (33/33), delay=01:39:49, xdelay=00:00:01, mailer=relay, pri=660349, relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, stat=Sent (s5ADeQdr013684 Message accepted for delivery)
Jun 10 14:40:31 ubuntu12 sm-mta[13721]: s5ADeQdr013684: to=<www-data@ubuntu12.pcsmarthosting.co.uk>, ctladdr=<www-data@ubuntu12.pcsmarthosting.co.uk> (33/33), delay=00:00:01, xdelay=00:00:00, mailer=local, pri=30946, dsn=2.0.0, stat=Sent
Jun 10 14:40:31 ubuntu12 sm-mta[13684]: s5ADeQdt013684: from=<www-data@ubuntu12.pcsmarthosting.co.uk>, size=677, class=0, nrcpts=1, msgid=<201406101215.s5ACF2Nq011240@ubuntu12.pcsmarthosting.co.uk>, proto=ESMTP, daemon=MTA-v4, relay=localhost [127.0.0.1]
Jun 10 14:40:31 ubuntu12 sm-msp-queue[13674]: s5ACF2Nq011240: to=www-data, ctladdr=www-data (33/33), delay=01:25:29, xdelay=00:00:00, mailer=relay, pri=660349, relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, stat=Sent (s5ADeQdt013684 Message accepted for delivery)
Jun 10 14:40:31 ubuntu12 sm-mta[13723]: s5ADeQdt013684: to=<www-data@ubuntu12.pcsmarthosting.co.uk>, ctladdr=<www-data@ubuntu12.pcsmarthosting.co.uk> (33/33), delay=00:00:00, xdelay=00:00:00, mailer=local, pri=30946, dsn=2.0.0, stat=Sent
Ju
Дальнейшее расследование
Обнаружено 4 спам-аккаунта, зарегистрированных за последний день, что подозрительно, но все они имеют обычные права пользователя.
На сайте нет контактных форм, есть несколько форм, которые принимают либо отфильтрованный ввод текста, либо ввод обычного текста.
Почта все еще находится в очереди, так как сайт был переведен в режим обслуживания, который блокирует всех, кроме администратора.
Хорошо, продолжаем расследование, похоже, что электронное письмо отправляется cron моего сайта, которое запускается каждые 5 минут. Однако у меня нет заданий cron, которые я настроил, которые запускаются более одного раза в час и отображаются в журнале веб-сайта, поэтому, вероятно, кому-то удалось как-то отредактировать мой cron.
Проблема окончена:
Оказывается, по большей части это было моим незнанием. Cron пытается отправить электронное письмо при запуске. Поскольку cron запускался с помощью www-data, он пытался отправить его на www-data. Необычный адрес был из-за того, что я никогда не менял свое dnshostname с сервера по умолчанию, которым по какой-то странной причине было pcsmarthosting.co.uk. (Странно, потому что это никак не связано с моим хостом.)
Как я выяснил, формат адреса www-data по умолчанию - hostname @ dnshostname.
Копия электронного письма:
V8
T1402410301
K1402411201
N2
P120349
I253/1/369045
MDeferred: Connection refused by [127.0.0.1]
Fbs
$_www-data@localhost
${daemon_flags}c u
Swww-data
Awww-data@ubuntu12.pcsmarthosting.co.uk
MDeferred: Connection refused by [127.0.0.1]
C:www-data
rRFC822; www-data@ubuntu12.pcsmarthosting.co.uk
RPFD:www-data
H?P?Return-Path: <�g>
H??Received: (from www-data@localhost)
by ubuntu12.pcsmarthosting.co.uk (8.14.4/8.14.4/Submit) id s5AEP13T015507
for www-data; Tue, 10 Jun 2014 15:25:01 +0100
H?D?Date: Tue, 10 Jun 2014 15:25:01 +0100
H?x?Full-Name: CronDaemon
H?M?Message-Id: <201406101425.s5AEP13T015507@ubuntu12.pcsmarthosting.co.uk>
H??From: root (Cron Daemon)
H??To: www-data
H??Subject: Cron <www-data@ubuntu12> /usr/bin/drush @main elysia-cron
H??Content-Type: text/plain; charset=ANSI_X3.4-1968
H??X-Cron-Env: <PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin>
H??X-Cron-Env: <COLUMNS=80>
H??X-Cron-Env: <SHELL=/bin/sh>
H??X-Cron-Env: <HOME=/var/www>
H??X-Cron-Env: <LOGNAME=www-data>
Спам с вероятностью 99% исходит из плохо закодированной контактной формы, развернутой на размещенном веб-сайте. В
ctl-addr=www-data
line - это мертвая распродажа (Подсказка: www-data - это имя пользователя, от имени которого работает веб-сервер. Это будет apache на RH-подобной машине).
Выключите веб-сервер, посмотрите его журнал, выясните, кто использует контактные формы. Это может быть что-то более сложное (команда / sql-инъекция) или полный захват / взлом веб-сайта, но это первое, что я проверю при отсутствии других доказательств.
Как отмечает Alien Life Form, письмо, похоже, было отправлено пользователем www-data. Вы не предоставили достаточно информации, чтобы сделать вывод, является ли проблема «плохо закодированной контактной формой».
Вполне возможно, что какое-то веб-приложение, которым злоупотребляют, или неправильно настроено и пытается вам сообщить об этом. Содержание электронных писем должно прояснить это. Посмотрите на несколько файлов в вашей почтовой спуле, если иначе получить копию не так-то просто.
Обращает на себя внимание очень высокая частота этих записей, равно как и тот факт, что www-data, похоже, отправляет себя по почте. Это цикл рассылки? Это особенно вероятно, если вы иначе не имеете дело с несколькими запросами php в секунду. Кроме того, www-data не кажется наиболее вероятной целью для спама.
Убедитесь, что учетная запись www-data связана с чем-то разумным. например, вы можете использовать / etc / aliases (и запускать newaliases после редактирования этого файла). В зависимости от вашего дистрибутива это может быть другое место, например / etc / mail / aliases.
Если проблема не в почтовом цикле, то, вероятно, у вас есть веб-запросы, поступающие с высокой скоростью, связанные с генерируемыми электронными письмами. Вы можете захватить некоторый веб-трафик с помощью tcpdump и просмотреть его (например, с помощью wirehark), чтобы найти задействованные веб-запросы (например, поискать некоторый контент в электронных письмах в то время). Если он не идет через https, у вас будет исходный IP-адрес и URL-адрес.
Скорее всего, вы также можете получить IP-адрес и URL-адрес из журналов доступа http, в зависимости от времени запросов. К скольким URL-адресам осуществляется доступ много раз в секунду? Если у вас нет сервера с очень высоким трафиком, это, вероятно, проще, чем захват трафика. Это также может позволить вам быстро исключить веб-доступ, являющийся источником электронных писем.
-
Я вижу, вы прокомментировали ответ Alien Life Form о том, что почта ставится в очередь «каждые 5 минут или около того», что намного реже, чем в журнале, который вы предоставили. Учитывая это, я бы попытался согласовать время отправки этих писем с обращениями по тому же URL-адресу в вашем журнале доступа (особенно посмотрите на запросы POST, поскольку они более вероятны).
Запросы поступают ровно каждые 5 минут? У вас есть 5-минутная работа cron?
Немногое о содержании электронных писем может немного помочь в понимании того, что искать в первую очередь.
Команды и полезные места, которые я искал, чтобы отладить эту проблему (помимо всего, что указано в приведенных выше ответах)
Добавьте заголовки в php, чтобы отслеживать всю электронную почту, показанную в этом Сообщение блога и эта ошибка сервера нить.
Проверьте все выполняемые задания cron с помощью этой команды Вот.
Вы можете найти все электронные письма sendmails в /var/spool/mqueue
или /var/spool/mqueue-client
Вы можете просмотреть свою очередь почты с помощью mail -q
.
Адрес отправителя для писем sendmail, если он отправляется из www-data, вероятно, будет вашим именем хоста компьютера @ dnshostname с командами:
hostname
dnshostname
Вы можете отключить всю электронную почту из cronjob, добавив >/dev/null 2>&1
до конца: например
*/5 * * * * /usr/bin/drush @main elysia-cron >/dev/null 2>&1
чтобы проверить, откуда это.
Вы можете установить переменную
MAILTO="me@me.com"
В верхней части задания cron, чтобы все письма от этого конкретного cron были отправлены вам.