Прошлой ночью мой сервер был взломан (я полагаю, одна из устаревших PHP CMS), и было отправлено много спам-сообщений. Я ограничил доступ к Postfix (via authorized_submit_users
директива в main.cf
), что привело к успешному устранению повреждений - теперь рассылка спама предотвращена, и я получаю такие сообщения, как:
Jun 13 10:12:16 aurora postfix/sendmail[11715]: fatal: User www-data(33) is not allowed to submit mail
Jun 13 10:12:16 aurora postfix/sendmail[11717]: fatal: User www-data(33) is not allowed to submit mail
Jun 13 10:12:17 aurora postfix/sendmail[11719]: fatal: User www-data(33) is not allowed to submit mail
Jun 13 10:12:18 aurora postfix/sendmail[11721]: fatal: User www-data(33) is not allowed to submit mail
Jun 13 10:12:19 aurora postfix/sendmail[11723]: fatal: User www-data(33) is not allowed to submit mail
У меня вопрос - что делать, чтобы найти скрипт, который пытается злоупотребить моим сервером Postfix? есть ли способ для Postfix сказать мне, что запускает команду в локальной системе?
Я не могу сохранить пользователя веб-сервера (www-data
) от возможности отправлять электронные письма навсегда.
Вы, возможно, захотите задать себе вопрос: какая польза от знания того, какой сценарий отправил электронное письмо? Конечно, вы должны попытаться исправить свою безопасность, но эксплойт - это не то же самое, что и уязвимость - злоумышленник может сделать с вашей системой несколько вещей, а не просто отправить электронную почту. Так что на самом деле вы должны сосредоточиться на исправлении уязвимости. Но я пока подыграю ....
что делать, чтобы найти сценарий
Скорее всего, это будет тот, который содержит вызов функций mail или fsockopen. Хотя он также мог быть отправлен одной из функций exec. Возможно это мог были отправлены вызовом preg_replace с модификатором 'e'.
Если бы это был я, я бы начал с попытки сопоставить записи журнала почты с access_log веб-сервера, чтобы попытаться определить URL-адреса, которые могли привести к отправке электронных писем.
Вы проверяли веб-журнал? Попробуйте посмотреть процесс с ps
идентифицировать процесс, который рассылает спам. Может ты поймаешь его там.
Во-вторых, возможно, спамер периодически рассылается crontab, проверяйте каждый crontab
в вашей системе, чтобы идентифицировать поддельный сценарий.
Проверьте одно из писем с postcat
чтобы узнать, какой сценарий пытается их отправить: postcat / var / spool / postfix / deferred / 1 / {$ mail-id}