Как определить какой скрипт рассылает спам через postfix

1 minute read

Если вы обнаружили, что ваш postfix сервер рассылает спам (spam), сами понимает - вас ломанули. Довольно противное состояние.

Как правило спам рассылка запускается каким-то скриптом.

Не расстраивайтесь. Определить какой именно скрипт инициализирует рассылку можно.

Для этого переключитесь в учетную запись суперпользователя:

sudo su

Проверьте очередь рассылки:

mailq |less

less позволит вам просмотреть всю очередь, если вывод команды не вмещается на экран. Для выхода нажмите q.

Первая колонка будет содержать ID сообщений в очереди на отправку.

Посмотреть содержимое письма можно с помощью:

postcat -q <ID>

Ищем что-то похожее на X-PHP-Originating-Script или X-Originating-Script.

Остается удалить скрипты и очистить очередь рассылки:

for m in $(/usr/bin/mailq 2&gt;&1 |grep -v postqueue |grep -i "^[1-9]\|^[A-Z]\|^0" |awk '{print $1}');
do
  if (/usr/sbin/postcat -q $m |grep X-PHP-Originating-Script |grep -q eval); then
		/usr/sbin/postsuper -d $m;
  fi;
done

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

Полностью очистить очередь можно следующей командой:

postsuper -d ALL

К сожалению, на этом беды не заканчиваются. Осталось определить как же бяка попала на сервер. Для этого просмотрите логи apache и системные логи. Пересмотреть запланированые задачи (cron jobs).

Полезными также могут быть следующие статьи:

  1. Лечим инфицированный сайт/сервер
  2. Сканирование сервера с помощью Rkhunter
  3. Сканирование сервера с помощью Chkrootkit

Настоятельно рекондуется обновить все, что только можно (движек сайта, php, apache).

Предотвратить дальшейние вмешательства может fail2ban и mod_security

Всем добра и успешных проэктов!