Перейти к основному контенту

Как остановить рассылку спама с VPS

В этой статье мы расскажем, как остановить рассылку спама с VPS.

Что сделать, если с вашего сервера рассылается спам:

  • проверьте сервер на наличие вирусов,
  • включите лог сообщений в файле php.ini,
  • очистите очередь сообщений.

Проверьте сервер на вирусы

Вы можете использовать сканер Linux Malware Detect. Для этого:

  1. 1.
    Подключитесь к серверу по SSH.
  2. 2.

    Установите сканер с помощью команд:

    cd /usr/local/src/
    wget http://www.rfxn.com/downloads/maldetect-current.tar.gz
    tar -xzf maldetect-current.tar.gz
    cd maldetect-*
    sh ./install.sh
  3. 3.

    Запустите сканирование с помощью команды:

    maldet -b -a /
  4. 4.

    Проверьте, закончилось ли сканирование, с помощью команды:

    ps aux | grep [m]aldet

    Если сканирование закончилось, вывод команды будет пустым. Если содержимое сервера ещё проверяется, вы увидите такое сообщение:

    ps aux | grep [m]aldet
    root     12429 17.8  0.0 118408  6304 pts/0    S    09:24   1:35 bash /usr/local/sbin/maldet -b -a /var/www/user/data/www/site.ru/
  5. 5.

    Когда закончится сканирование, проверьте результат с помощью команды:

    maldet -e

    Примерный вывод команды:

    HOST:      5-63-155-200.xen.vps.regruhosting.ru
    
    SCAN ID:   160721-1022.31393
    STARTED:   Jul 21 2016 03:19:34 +0400
    COMPLETED: Jul 21 2016 10:22:42 +0400
    ELAPSED:   0s [find: 0s]
    
    PATH:          /var/www/user/data/www/mysite.ru/
    TOTAL FILES:   37845
    TOTAL HITS:    1
    TOTAL CLEANED: 0
    
    WARNING: Automatic quarantine is currently disabled, detected threats are still accessible to users!
    To enable, set quarantine_hits=1 and/or to quarantine hits from this scan run:
    /usr/local/sbin/maldet -q 160721-1022.31393
    
    FILE HIT LIST:
    {MD5}php.cmdshell.unclassed.4690  :  /var/www/user/data/www/site.ru/pgtz.php

    В нижней части вывода команды приведён список файлов, в которых найдены угрозы (FILE HIT LIST). В нашем примере файл один: /var/www/user/data/www/site.ru/pgtz.php, в нём найден cmdshell. Этот файл нужно проанализировать.

Если у вас заказана панель управления ISPManager, можно воспользоваться антивирусом Virusdie. Он уже интегрирован в ISPManager и подключается через неё.

Включите лог сообщений phpmail

  1. 1.

    В корневой папке сайта создайте файл info.php. Добавьте в него такое содержимое:

    <?php
    phpinfo();
    ?>
  2. 2.

    Перейдите по адресу site.ru/info.php, где site.ru — ваше доменное имя. Если файл создан корректно, вы увидите такую страницу:

    Вы можете добавить логирование почты только для конкретного сайта или для всех сайтов на сервере.

    • Чтобы добавить настройки для одного сайта, внесите записи в файл, путь к которому указан в «Loaded Configuration File». В нашем примере это /var/www/php-bin/user_name/php.ini.
    • Чтобы добавить настройки для всех сайтов на сервере, внесите записи в файл php.ini, путь к которому указан в строке «Configuration File (php.ini) Path». В нашем примере путь до общего файла php.ini выглядит так: /opt/php/5.3/etc/php.ini, где 5.3 — ваша версия PHP. Если на сервере расположено несколько сайтов с разными версиями PHP, повторите запись в php.ini для всех версий PHP.
Права на файл php.ini могут ограничивать запись в него.

Перед изменением php.ini разрешите запись в него через панель ISPmanager или через SSH при помощи команды:

chmod +w /путь/php.ini
  1. 3.

    Чтобы включить логирование сообщений, добавьте код в конец файла php.ini:

    mail.add_x_header = On
    mail.log = "/var/tmp/php.mail.log"

    Где /var/tmp/php.mail.log — путь до файла, в который будет записываться лог отправки сообщений.

  2. 4.

    Назначьте файлу php.mail.log права на запись с помощью команды:

    chmod +w /var/tmp/php.mail.log

    Также вы можете назначить права через панель ISPmanager.

  3. 5.
    Перезапустите сервер Apache, для этого выполните команду:
Debian/Ubuntu
CentOS
service apache2 restart
service httpd restart

Готово, вы включили логирование сообщений.

Почистите очередь сообщений

  1. 1.
    Подключитесь к серверу по SSH.
  2. 2.
    Выполните команду в зависимости от вашего почтового сервера:
Exim
Postfix
Sendmail
exim -bpc                        ## узнать количество писем в очереди
exipick -zi | xargs exim -Mrm    ## удалить все замороженные сообщения из очереди
exipick -i | xargs exim -Mrm     ## удалить все сообщения из очереди
postqueue -p| wc -l     ## узнать количество писем в очереди
postsuper -d ALL        ## очистить очередь
mailq | wc -l                                ## узнать количество писем в очереди
find /var/spool/mqueue -type f -exec rm -f {} \;   ## очистить очередь
Время выполнения команд напрямую зависит от количества сообщений в очереди.

Что делать, если сайт заражён

Вот что можно сделать, если сайт заражён:

  1. 1.
    Смените все пароли доступа к серверу.
  2. 2.
    Обновите CMS и все плагины, шаблоны, модули.
  3. 3.

    Проверьте список запущенных процессов на наличие вредоносного ПО. Для этого подключитесь к серверу по SSH и выполните команду:

    pstree

    Вы получите вывод запущенных процессов. В этом примере вредоносное программное обеспечение — процесс под именем «ps», так как оригинальный процесс запускается под «bash»:

  4. 4.

    Проверьте наличие исходящих соединений у процесса с помощью команды:

    lsof -i

    В нашем примере видно, что процесс «ps» создает подозрительные подключения:

  5. 5.

    Узнайте детальную информацию по запущенному процессу:

    lsof -p ID

    Где ID — это PID процесса из вывода. Обратите внимание на строки cwd и txt. В них указан путь до директории, в которой запущен процесс:

    Эта информация поможет вам найти, из какого каталога запускается вредоносный процесс, и удалить вирус.

Обратите внимание
Создайте резервную копию сайта, прежде чем удалять заражённые файлы. Если удалить критически важный файл, появятся проблемы с доступностью сайта.

Дополнительные рекомендации по проведению рассылок

Рекомендации от популярных служб:

Чтобы ваши письма не попадали в спам:

  • во всех сообщениях рассылки используйте один и тот же адрес «От»;
  • email, с которого осуществляется рассылка, должен существовать. Если настроен автоответчик, в тексте автоответчика должны присутствовать чёткие инструкции, следуя которым с вами можно связаться;
  • ваш клиент должен иметь возможность отказаться от рассылки при помощи чёткой и заметной ссылки, ведущей на страницу подтверждения отмены подписки и не требующей от него каких-либо дополнительных данных, кроме подтверждения;
  • обновляйте вашу базу подписчиков. В вашей базе могут присутствовать уже несуществующие адреса, с которых могут приходить отбойники. Такие адреса необходимо удалять из списков рассылки;
  • не рассылайте сообщения пользователям, которым не интересна ваша рассылка. Желательно периодически запрашивать согласие пользователей на получение сообщений в дальнейшем. Со временем интерес к вашей рассылке может ослабнуть и гораздо лучше, если пользователь отпишется от вашей рассылки, нежели отметит ваше сообщение как спам.
Была ли эта статья полезной?
Пользователи, считающие этот материал полезным: 0 из 0