Итак, имеем сервер на базе Debian.
Жалоба на исходящий спам с сервера.
Задача: очистить очередь отправлений и обнаружить причину.
Решение: вариантов, конечно, много. Рассмотрим один из них.
1. Подключаемся по SSH и смотрим очередь писем:
mailq
Да, писем много.
2. Отключаем почтовый сервер (стоит postfix)
/etc/init.d/postfix stop
3. Смотрим на соединения на 25й порт:
netstat -apn | grep :25
Если Established нет — значит, спам рассылается не через вредоносный скрипт, который отправляет почту в обход локального почтового сервера.
4. Очищаем очередь писем. Конечно, при условии, что мы это сделать можем (в очереди могут быть реальные письма реальным пользователям).
postsuper -d ALL
postsuper: Deleted: 72849 messages
5. Пробуем включить расширенное логирование почты:
mv /usr/sbin/sendmail /usr/sbin/sendmail.org
touch /usr/sbin/sendmail
chmod +x /usr/sbin/sendmail
echo -n '#!/bin/bash
logger -p mail.info sendmail-ext-log: site=${HTTP_HOST}, client=${REMOTE_ADDR}, script=${SCRIPT_NAME}, pwd=${PWD}, uid=${UID}, user=$(whoami)
/usr/sbin/sendmail.org -t -i' > /usr/sbin/sendmail
6. Запускаем почтовый сервер
/etc/init.d/postfix start
7. Смотрим логи
tail -f /var/log/mail.info
Видим что-то вроде:
Jan 23 16:25:25 danma logger: sendmail-ext-log: site=, client=, script=send.php, pwd=/var/www/danma/data/www/site.ru, uid=33, user=www-data
Jan 23 16:25:25 danma postfix/pickup[11520]: E3CD259403D: uid=33 from=
Jan 23 16:25:25 danma postfix/cleanup[11522]: E3CD259403D: message-id=<b381adaa7a41abcb0359b5233047a74b@www.site.ru>
Обращаю внимание, что это один из вариантов действий.
Если есть ID письма в жалобе — стоит посмотреть его в логах отправлений.
Бывает так, что на сервере стоит опенрелей.
А еще бывает, что просто подобрали пароль к ящику — на это так же стоит обратить внимание!
Как удалить очередь писем?
Вот типовые команды для удаления всех писем в очереди.
Exim:
exipick -i | xargs exim -Mrm
Postfix:
postsuper -d ALL
Sendmail:
rm -rf /var/spool/mqueue/*