Прошлой ночью мой сервер был скомпрометирован (я думаю - одна из устаревших CMS PHP), и было отправлено много спам-сообщений.
Я ограничил доступ к Postfix ( с помощью директивы 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
My вопрос - что делать, чтобы найти сценарий, который пытается злоупотребить моим сервером Postfix - есть ли способ для Postfix сообщить мне, что запускает команду в локальной системе ?
Я не могу сохранить пользователя веб-сервера ( www-data
) без возможности отправлять электронные письма навсегда.
Вы проверили веб-журнал? Попробуйте просмотреть процесс с помощью ps
, чтобы определить процесс рассылки спама. Может быть, вы сможете поймать его там.
Во-вторых, может быть, спамер периодически отправляет по crontab, проверьте каждый crontab
в вашей системе, чтобы определить фальшивый скрипт.
Проверьте одно из писем с помощью postcat
, чтобы посмотреть, какой скрипт пытается их отправить:
postcat /var/spool/postfix/deferred/1/{$mail-id}
Вопрос, который вы, возможно, захотите задать себе, в чем польза от того, что вы знаете, какой сценарий послал письмо? Конечно, вы должны стремиться исправить вашу безопасность, но эксплойт не является тем же самым, что и уязвимость - есть множество вещей, которые злоумышленник может сделать с вашей системой, а не просто отправить электронное письмо. Так что на самом деле вам нужно сосредоточиться на исправлении уязвимости. Но я пока подыграю....
что делать, чтобы найти скрипт
Скорее всего, это будет скрипт, содержащий вызов почтовых или fsockopen-функций. Хотя он также мог быть отправлен одной из исполняющих функций. По-видимому мог быть отправлен вызовом на preg_replace с модификатором 'e'.
Если бы это был я, я бы начал с попытки сопоставить записи почтового журнала с данными access_log web-сервера, чтобы попытаться определить URL, которые могли привести к отправке писем.
.