чудо{вищные} заметки

Sorry for my terrible english. My native language is PHP.

Sendmail & shared hosting

Суть проблемы – на хостинге много пользователей (сайтов) и один apache (с mod_php), а с какого-то аккаунта шлют спам (через формочки, которые есть практически на каждом сайте – типа feedback и т.п.). Где-то это получается удачно (умудряются добавитб заголовок bcc и список из пару сотен (почему-то бразильских) e-mail-ов) где-то не очень и все кракозябрица отправляется в теле письма адресату, указанному в скрипте (который в свою очередь пересылает её нам, с вопросом – «а чО эта такое?»). Надо начинать бороться.

На прошлой неделе решил добавить в php.ini (httpd.conf) параметр mail.force_extra_parameters = «-fshell_user_name».
Это помогло выявить некоторые кривые скрипты и уведомить авторов(владельцев) о том что пора исправлять ошибки.
Но поскольку этот параметр легко переписывается пятым параметром в функции mail, то всё вычислить не удаёься.

Сегодня пошёл другим путём – написал враппер на php (/usr/sbin/sendmail.php и указал его как sendmail_path в php.ini), который проверяет откуда был запущен sendmail, логирует и отправляет письмо дальше к реальному бинарнику. Это помогло найти проблемные(дырявые) скрипты на сайтах, но не решает проблемы рассылки спама с сайтов.

Сегодня же увидел ещё один метод рассылки – на неком сайте есть «доска объявлений», после отправки объявления, скрипт отправляет его (объявление) на e-mail «добавляющему». Ну и кто-то умный и большой фигачит автоматом объявление и меняет адреса… владельцам сайта похоже пох.. всё равно, что там твориться, а спам идёт и идёт…

У меня теперь есть возможность создавать кучу фильтров во враппере и отправлять левые письма в топку /dev/null (например если в тексте встретилось сочетание «bcc: «, но всё-таки интересно как решают подобные проблемы «крупные хостеры» (и решают ли они их). Как например в условиях shared hosting-а (если php установлен как модуль apache) делают лимиты на количество отправляемых писем в час с одного аккаунта ? Как борются со спамерами ? И ещё куча вопросов :) или «крупные» хостеры, ставят php как [fast]cgi и такими проблемами не озадачиваются ? ;o)

Technorati Tags: , , , ,

Март 13, 2006 - Опубликовал MiRacLe | DailyWTF, dev, fun, penguin-sex, unix, web | | Комментарии (5)

Комментарии (5) »

  1. А нельзя ограничить кол-во исходящих писем в sendmail от одного юзера в единицу времени? :)

    Комментарий от adminlab | Сентябрь 15, 2006

  2. скорее всего можно(если это был вопрос, то точного ответа я не знаю ;o) )

    Смысл вышеописаного врапера не поразить в правах владельцев сайтов, а свести на нет работу spam-ботов и заодно собрать статистику о них ;o) (кто таков? куда шлёшь? что шлёшь? сигнатуры и т.п.)

    Комментарий от MiRacLe | Сентябрь 15, 2006

  3. много думал ;o)
    Ограничить нельзя.
    Так-как юзер-то один – apache (издержки mod_php) так что вот…

    Комментарий от MiRacLe | Сентябрь 20, 2006

  4. Тоже мучаюсь со схожей проблемой – 5 дней назад сильно возрос объем лог-файлов почтового сервера. Стал разбираться и выяснил что идёт куча коннектов с localhost на отправку, видимо либо php либо perl либо ещё что-то. На сервере штук 20 сайтов, запускается всё от одного юзера, поэтому выяснить виновника через “-fshell_user_name” не получится. Но враппер на php я думаю поможет вычислить виновника. У тебя он уже написан, можешь поделиться его исходником, если не сложно? Вышли пожалуйста на мыло murznn собака gmail.com.
    Заранее премного благодарен!

    Комментарий от Murz | Январь 25, 2008

  5. Нашёл в интернете другой вариант реализации PHP-враппера для sendmail, нашёл тут: http://gregmaclellan.com/blog/sendmail-wrapper/
    Заработал нормально, поставил у себя и сижу жду виновников рассылок ;)

    Комментарий от Murz | Январь 25, 2008


Оставить комментарий