Вирусы и спам с сайта

После вирусной атаки на ряд сайтов, расположенных на одном сервере, и после лечения, рассылка спама с сайта продолжалась. Для локализации понадобилось сделать следующее.

 1. Сайты архивированы, архивы загружены на локальную машину и проверены антивирусом. Найдены модификации вирусов Backdoor.PHP.Agent и Backdoor.PHP.Shell. Все зараженные файлы удалены или заменены копиями на сервере. Это было сделано сразу. Но через некоторое время была замечена неустойчивая работа сервера.

2. Тогда была проведена проверка на наличие свободного дискового пространства.

Команда

df -h

показала, что место на диске есть.

Filesystem                                               Size Used Avail Use% Mounted on
rootfs                                                   148G 116G   25G   83% /

Используется 83% от общего дискового пространства, или 116 гигабайт из 148.

3. Следующий шаг - проверяем занятые файловые дескрипторы. При значении в 100% и отсутствии свободных файловых дескрипторов VDS работать корректно не будет. А у нас именно такой вариант - выделенный сервер (VDS). Выполняем команду:

df -i

Ее результат:

Filesystem                                               Inodes   IUsed IFree IUse% Mounted on
rootfs                                                   9797632 9797632     0 100% /  

Проверяем очередь Exim (директория для OC Debian: /var/spool/exim4/input) и видим ее огромный размер.

4. Исследуем заголовки отправляемых писем в очереди Exim, найдена строка:

X-PHP-Originating-Script: 513:lib.php

То есть определено имя файла со скриптом, отправляющим почту: lib.php.

5. Поиском по пользовательским директориям с сайтами ищем искомый файл. Команда для поиска:

find /var/ -type f -name "lib.php"

Файл удалён.

Таким же образом находим и несколько других скриптов, отправляющих несанкционированную почту.

6. Далее следует очистить очередь exim.

Очистить все замороженные сообщения из очереди:

exipick -zi | xargs exim -Mrm

Очистить все сообщения из очереди:

exipick -i | xargs exim -Mrm

Дело оказалось очень долгое.

В интернете был найден и такой вариант:

rm -rf /var/spool/exim4/input/*

Но это выглядит в буквальном смысле топорно.

В результате очистки очереди Exim сайты на сервере работают устойчиво, файловые дескрипторы занимают теперь всего 5%, проверяем командой

df -i

Вот что получили:

Filesystem                                              Inodes   IUsed   IFree IUse% Mounted on
rootfs                                                 9797632 483246 9314386    5% /  

Прекрасный результат!

 

Команды Exim для работы с очередью сообщений

exim -bp // просмотр очереди сообщений Exim

exim -bpc // получить число сообщений, находящихся в очереди

exim -M email-id // принудительно повторить попытку отправки конкретного письма ( с конкретным message-id)

exim -qf // выполнить обработку очереди

exim -qff // выполнить обработку очереди и попытаться сбросить "замороженные" письма

exim -Mvl email-id // просмотреть логи для указанного сообщения

exim -Mvb email-id // просмотреть тело сообщения

exim -Mvh email-id // просмотреть заголовки сообщения

exim -Mrm email-id // удалить сообщение из очереди, не отправляя сообщений об ошибке

exim -Mg email-id // удалить из очереди и отправить отправителю диагностику о невозможности доставки

exiqgrep -o 86400 -i | xargs exim -Mrm // удалить из очереди все сообщения, возраст которых старше чем 86400 секунд (1 сутки)

df -i

Rambler's Top100 Яндекс.Метрика

 

© 2017 Web-Мастерская А