IP сервера постоянно попадает в SPAM-листы, как узнать, какие скрипты рассылают спам. Инструкция для Postfix. Подходы могут быть применены и к другим почтовикам.
Пути и названия файлов могут немного отличаться, зависит от версии ОС.
Узнаем в какой папке находится скрипт, который рассылает спам функцией mail() и аналогами.
- Создать скрипт /usr/sbin/sendmail.postfix-wrapper:
12
touch
/usr/sbin/sendmail
.postfix-wrapper
vi
/usr/sbin/sendmail
.postfix-wrapper
Добавить в файл эти две строчки:
1 2 | #!/bin/sh ( echo X-Additional-Header: $PWD ; cat ) | tee -a /var/tmp/mail .send| /usr/sbin/sendmail .postfix-bin "$@" |
- Создать лог-файл /var/tmp/mail.send, дать ему права a+rw. Сделать созданный враппер исполнимым файлом, переименовать старый sendmail и пирлинковать sendmail к созданному врапперу.
12345
touch
/var/tmp/mail
.send
chmod
a+rw
/var/tmp/mail
.send
chmod
a+x
/usr/sbin/sendmail
.postfix-wrapper
mv
/usr/sbin/sendmail
.postfix
/usr/sbin/sendmail
.postfix-bin
ln
-s
/usr/sbin/sendmail
.postfix-wrapper
/usr/sbin/sendmail
.postfix
-
Ждем час и возвращаем sendmail на место:
12rm
-f
/usr/sbin/sendmail
.postfix
mv
/usr/sbin/sendmail
.postfix-bin
/usr/sbin/sendmail
.postfix
Изучаем файл /var/tmp/mail.send. Должны быть записи, которые начинаются строчкой X-Additional-Header: где указана директория, в которой находится скрипт, рассылающий спам.
Если ни какой подозрительной активности в файле лога нет, значит спам рассылается через взломанный почтовый аккаунт.
Всё что далее, написано для Plesk 12 и мною не тестировалось. Источник: http://kb.odin.com/en/114845
1 2 3 4 | zgrep -c 'sasl_method=LOGIN' /var/log/maillog * /var/log/maillog :221000 /var/log/maillog .processed:362327 /var/log/maillog .processed.1.gz:308956 |
Если видно подозрительно высокое количество попыток входа в какой-либо почтовый аккаунт, значит скорее всего его взломали.
Можно использовать следующую команду для поиска таких аккаунтов:
1 2 | zgrep 'sasl_method=LOGIN' /var/log/maillog * | awk '{print $9}' | sort | uniq -c | sort -nr | head 891574 sasl_username=admin@example.com |
Чтобы остановить спам в этом случае, нужно установить устойчивые пароли на взломанные почтовые аккаунты.