понедельник, 7 июля 2014 г.

Обнаружение источника спама с сервера и устранение проблемы

В связи с многочисленными уязвимостями в некоторых плагинах популярных CMS, сервер был подвержен вводу в систему вредоносного скрипта.
Скрипт отправлял письма (как правило прон-содержания) с генерируемых адресов, а-ля [email protected], [email protected] домена взломанного сайта. Таких взломанных сайтов было несколько.

В этой заметке я опишу, как я выявлял источник спама и боролся с последствиями работы вредоносных скриптов.

Всё началось с того, что мне пришло письмо от Nagios, о том, что у меня в очереди стоит немного больше писем чем обычно, а именно >50000.

Проверяем очередь:
# mailq
Действительно, в очереди очень много писем и эта очередь всё растёт и растёт.

Останваливаем postfix:
# service postfix stop

Смотрим в очередь писем, ищем домен(-ы), с которого идёт рассылка. Пусть этим доменом для примера будет example.com.

Смотрим логи для этого сайта. Посмотреть где находятся логи для сайта можно в /etc/nginx/nginx.conf в директиве access_log
Пример:
# cat /etc/nginx/nginx.conf
...
location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|swf)$ {
   root $root_path;
   access_log /var/www/nginx-logs/example isp;
   access_log /var/www/httpd-logs/example.com.access.log;
   error_page 404 = @fallback;
   expires max;
}
...

Смотрим логи, находим подозрительные запросы (как правило POST-запросы), к примеру:
# tail /var/www/httpd-logs/example.access.log
123.123.123.123 - - [06/Jul/2014:20:20:10 +0400] "POST /includes/js/include.php HTTP/1.1" 404 55665 "-" "-"
123.123.123.222 - - [06/Jul/2014:20:20:10 +0400] "POST /includes/js/include.php HTTP/1.1" 404 55665 "-" "-"
...

Смотрим содержимое подозрительного файла:
# cat /var/www/.../includes/js/include.php
Как правило там очень-очень много букв и цифр, обфусцированного php-кода. Сразу видно, что это вредоносный скрипт. Если этот файл не нужен, его можно удалить, либо же попробовать вылечить, ай-болитом каким-нибудь.

После того, как обнаружен и обезврежен источник спама, нужно удалить все его письма из очереди:
# postqueue -p | grep example.com  | cut -f1 -d " " | postsuper -d -

Ну и ip-адрес(-а) рассыльщика можно добавить в бан:
# vim /etc/nginx/nginx.conf
deny 123.123.123.123;
deny 123.123.123.222;

Так как поломанных сайтов у меня несколько, то процедуру я повторил несколько раз.
В итоге в очереди писем не стало. Спам больше не рассылается.

Также проверьте наличие вашего ip-адреса в чёрных списках спамеров, сделать это можно тут: mxtoolbox.com/blacklists.aspx
Если вы туда попали, то вы можете подать заявку на делистинг из чёрных списков.

via.

1 комментарий:

Анонимный комментирует...

Спасибо огромное!
В дёсна готов расцеловать ))) Очень помогло