Как определить кто шлет спам на VPS/Dedicated. Блокировка почты для отдельного сайта

Как определить кто шлет спам на VPS/Dedicated

Практически па всех наших серверах мы используем для отправки почты сервис под названием Exim.
Exim — это так называемый MTA ( Mail Transfer Agent ), агент передачи сообщений, в просторечии – почтовик или почтовый сервер, использующийся во многих операционных системах семейства Unix.

У каждого письма, которое проходит через почтовый сервис есть свой идентификатор или по-другому уникальный номер письма. Идентификаторы сообщений в очередях Exim, представляют из себя буквенно-цифровые последовательности в верхнем и нижнем регистра, например "1TrXS1-0003SL-3h", и используются большинством команд администрирования очереди и логгирования в Exim.

Теперь рассмотрим краткий список команд ssh по управлению почтой и почтовой очередью. Важно! Все команды нужно выполнять от root и они доступны только для VPS/Dedicated

Вывести количество сообщений в почтовой очереди (то, что мы видим в мониторинге):

exim -bpc

Печать списка сообщений в очереди. Выводятся, время постановки в очередь, размер, ID сообщения, отправитель, получатель:

exim -bp 

Пример такого списка: 
4h 791 1TrXgs-0004t8-0W Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript. 
Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript.

4h 1.8K 1TrXgu-0004tZ-5w 
Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript.

 

Соответственно идентификаторы этих двух сообщений: 1TrXgs-0004t8-0W и 1TrXgu-0004tZ-5w

Удалить сообщение из очереди: exim -Mrm [id] 
(Пример: exim -Mrm 1TrXgs-0004t8-0W, удалит из очереди сообщение с переданным идентификатором)

Просмотреть заголовки сообщений: exim -Mvh [id]

Просмотреть тело сообщений: exim -Mvb [id]

Просмотр логов сообщения: exim -Mvl [id]

Удалить все заблокированные сообщения в почтовой очереди: exipick -z -i | xargs exim -Mrm

Удалить все сообщения из почтовой очереди, где домен отправителя domain: exipick -f @domain -i | xargs exim -Mrm

Удалить все сообщения из почтовой очереди, где домен получателя domain: exipick -r @domain -i | xargs exim -Mrm

Удалить все сообщения из почтовой очереди: exipick -i | xargs exim -Mrm

Если в очереди несколько сотен тысяч сообщений, быстрее будет выполнить удаление очереди командами

rm -rfv /var/spool/exim4/input/
rm -rfv /var/spool/exim4/msglog/

Теперь рассмотрим как найти кто и каким образом рассылает спам на сервере и как это заблокировать?

Для этого мы делаем следующее:
Вывести список сообщений в почтовой очереди с помощью команды

exim -bp

Визуально определить в списке с какого домена либо ящика идет почта. Обычно это легко видно за счет большого количества почты, отправленной с одного и того-же почтового ящика. Также определить с чего именно идет спам можно анализируя логи, тело и заголовок несколько однообразных писем с помощью команд, описанных выше.

Если спам идет со взломанного почтового ящика – отключить его, либо сменить пароль ящика в его свойствах в разделе Почтовые ящики

Если спам идет с крон-задания – удалить такое задание в разделе Планировщик Cron
Если с сайта – Найденный WWW домен нужно либо заблокировать либо заблокировать почту для этого www домена, сайт при этом будет работать – не работать будет только почта, отправленная скриптом php mail – для режимов работы php cgi и apache это делается по разному:
- для режима php apache в общем конфиге apache2 сервера под root /etс/apache2/apache2.conf найти блок Virtualhost нужного домена и в строчке
php_admin_value sendmail_path "/usr/sbin/sendmail -t -i -f 
сменить в пути /usr/sbin/sendmail слово sendmail на sendmoil. 

Либо сделать та же в разделе www домены в свойствах конфига apache2. После этого нужно перезагрузить сервис apache2 чтобы изменения вступили в силу. После этого php mail только для этого сайта и только в режиме php apache работать не будет и скрипты не смогут рассылать письма. 

- для режима php cgi под пользователем – владельцем сайта в файле php-bin/php.ini в строчке sendmail_path = "/usr/sbin/sendmail -t -i -f меняем в пути /usr/sbin/sendmail слово sendmail на sendmoil. При этом перезагружать ничего не нужно и указанная блокировка будет распространятся на ВСЕ www домены данного пользователя, которые работают в режиме php cgi, а не на какой-то конкретный. 
Еще раз хотелось бы отметить, что такая блокировка распространяется только на скрипты и крон с помощью которых распространяется почта – ящики, созданные на этом же домене будут работать.

 

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

tail -n 1000 /var/log/nginx/access.log | grep POST

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

Увидели файл скрипта? Ищем его на сервере командой

find / -name filename

Также рассылку могут делать подключившись по ssh. Для определения взломанного пользователя воспользуйтесь командой

ps axu | grep ssh

которая выведет все ssh подключения к серверу. Затем наберите команду

w

которая выведет все активные соединения. Обычно пользователь, которого нет в выводе этой команде, но есть в выводе предыдущей взломан – в таком случае просто смените пароль пользователя либо его ftp аккаунта

команда killall -u user закроет все открытые ssh соединения пользователя user

Если вместо логина пользователя указаны цифры либо ftp-аккаунт пользователя, которого в Пользователях не видно, найти можно в файле /etc/group либо /etc/passwd

Также скрипт рассылки может быть в папках tmp и var/tmp – эти папки также стоит проверить и почистить

Еще рассылать спам можно запуская скрипты через cron. Быстро просмотреть все cron всех пользователей можно в папке /var/spool/cron/crontabs

Если на сервере установлен не Exim a postfix, можно воспользоваться следующими командами
mailq вывод почтовой очереди

postsuper -d ALL чистка почтовой очереди

Также в панели управления ISP Manager 4 для работы с почтовой очередью есть возможность установить и использовать плагин, который называется Почтовая очередь.
Установить плагин можно только из под root в разделе Плагины – нажмите Установить справа вверху, из списка выберите ispmque и установите его. После этого обновите панель управления и в разделе Инструменты появится новый раздел Почтовая очередь. В этом разделе можно полностью просматривать всю очередь и все записи каждого письма в очереди, а также чистить очередь и повторять отправку отдельных писем, то есть по сути все то же что и описанным выше методом по ssh.

 

Источник - https://thehost.ua/wiki/SPAM

 

(Средний рейтинг 0 из оценок)

Рейтинг: 0 / 5