Назад | Перейти на главную страницу

Как проверить, что мой Linux-сервер не рассылает спам

Меня беспокоят изворотливые скрипты php или другое вредоносное программное обеспечение на моем сервере Linux, рассылающее спам. Или, может, я оставил открытое реле

Как можно проверить, не рассылается ли спам?

Один из самых простых способов - проверить ваш / var / log / maillog (расположение по умолчанию), чтобы узнать, отправляет ли он почту, которой вы не ожидаете.

Лучший способ - отслеживать трафик, генерируемый машиной. Это может показать, происходит ли что-то подозрительное, независимо от источника спама (это плохо настроенный почтовый сервер, плохо настроенный прокси-сервер или какое-то вредоносное программное обеспечение). Особенно обратите внимание на исходящие подключения к порту 25. Если вы видите гораздо больше таких подключений, чем сообщения, которые машина должна отправлять, то машина, вероятно, является неправильной. Но при ближайшем рассмотрении вы также можете найти множество запросов типа «MX» (отправленных для поиска серверов имен жертв) или подозрительных входящих соединений (используемых для управления программным обеспечением «троянский конь»).

Следующий шаг - найти службу, которой подверглись злоупотребления, и исправить ее.

Есть ли на вашем сервере PHP-скрипты, использующие электронную почту? Делать черт убедитесь, что они не позволяют посетителям указывать адрес, на который отправляется почта. Это означает отсутствие полей «Кому» в формах, создающих электронную почту.

Одного этого недостаточно, поскольку спамеры могут вставлять заголовки почты в плохо написанные сценарии почтовой программы. Проверять, выписываться http://www.alt-php-faq.org/local/115/ для обсуждения этого.

У вас может не быть контроля над всеми скриптами на вашем сервере, поэтому вы можете прочитать http://ilia.ws/archives/149-mail-logging-for-PHP.html который дает подробную информацию о расширении PHP, которое регистрирует все использование почтовой функции. Это даст вам конкретное место для поиска почтовой активности, связанной с PHP, что может быть полезно, если вы также легально отправляете почту с этого сервера.

Я использовал abuse.net в прошлом, чтобы убедиться, что мой сервер не является открытым реле.

Некоторое время не использовал его, но стоит провести быстрый тест, если вы беспокоитесь / не уверены.

Вам нужно проверить свои почтовые журналы -

/var/log/exim_mainlog. 

и есть много способов определить, не рассылает ли кто-нибудь спам. Если ваш IP находится в черном списке - скорее всего, ваш сервер рассылает много спама. И если очередь почты очень большая - тоже ..

В любом случае, вот что нужно проверить:

  • Проверьте свою очередь почты, особенно никому не приходящие отказы и никому электронные письма.
  • Убедитесь, что вы установили расширение MailHeaders для PHP и что никто
    servermail перенаправляется на существующую учетную запись, и вы действительно проверяете
    эти отказы служат для определения источника спама. Это расширение PHP добавит путь к
    файл, который сгенерировал это письмо.
  • Убедитесь, что у вас есть ограничение на количество писем, которое ваши пользователи могут отправлять в час.


Это некоторые моменты, которые будут периодически уведомлять, если какой-то скрипт отправляет слишком много писем.

Если вы не уверены во всем этом, я могу посмотреть и исправить эти вещи.

Что касается этого скрипта, он также найдет php-скрипт, отправляющий спам

find / -type f -name ".php" | xargs grep -l 'mail' | xargs grep -in 'mail' > ~/mail.scripts.log

печатает адресат всей электронной почты, отправленной с вашего сервера:

 grep  'to=<[a-z0-9_\.-]\+@[\da-z\.-]\+\.[a-z\.]\{2,6\}>' -o /var/log/maillog