Как определить кто шлет спам на 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