размещен на Dreamhost

Блокируем спам с помощью iptables

Заметка написана 27 декабря 2006 ночью в категориях: webdev, blogs, programming, faq, linux

Поизучал сегодня логи сервера и заметил, что 99% спама идет из пары десятков подсетей (позор вам, китайские открытые прокси!). Спам фильтры для Wordpress - это вещь хорошая, но проверка каждого комментария довольно сильно нагружает сервер (каждый комментарий - это лишний httpd процесс + обращение к mysql базе).

Так что самым правильным решением я выбрал блокировку эти подсетей на уровне ядра. Для этого в Linux есть замечательная штука - iptables (английская справка - man iptables, русская - здесь). Итак, что у нас получилось:

  • Отслеживаем отправку комментариев:
    tail -f accesslog | grep 'post.php'
  • Спамеров - блокируем:
    /sbin/iptables -A INPUT -s 66.199.252.0/255.255.255.0 -p tcp -m multiport --dports 80 -j DROP
  • Контролируем результат:
    /sbin/iptables -L -v -n --line-numbers

В итоге - нагрузка сервера упала на порядок. Эффект достигнут!

« XNeur - аналог Punto Switcher для LinuxЦифровые фото 10×15 по 1 руб. »

Если вам понравилась эта заметка, рекомендуйте ее другим: 

Комментариев 17

  1. Не спится в 2 часа ночи ? , на ночь самое оно логи изучать ^_^

    Комментарий отправил автор Nepall 27 декабря 2006 утром

  2. А Comment Blacklist не то же самое делает?

    Комментарий отправил автор Mishail 27 декабря 2006 утром

  3. Mishail: нет, не тоже. Нагрузка в разы больше из-за обращения к Apache и MySQL. Впрочем, я это уже говорил :)

    Комментарий отправил автор Gluek 27 декабря 2006 утром

  4. Эхъ, мне с моим хостером только мечтать о таком… Эти [censored] мне заявили на днях, что все операции можно сделать посредством FTP и cPanel (последней антидизайнерской наработке стоит, пожалуй, посвятить отдельный пост, благо она стоит на каждом втором хостинге). Надо им дать почитать эту запись, чтобы направить их на путь истинный :)

    Комментарий отправил автор cryonyx 27 декабря 2006 в обед

  5. cryonyx: Ну на shared хостинге такого и не надут делать в принципе, так что по идее защиту от таких вещей должен сам хостер делать…

    Комментарий отправил автор Gluek 27 декабря 2006 в обед

  6. Почему-бы сразу не взять список русских сетей и не заблочить все остальные? ;)

    Комментарий отправил автор Kolo 27 декабря 2006 в обед

  7. Kolo: ну хотя-бы потому, что половина посетителей не из России смотрят ;)

    Комментарий отправил автор Gluek 27 декабря 2006 в обед

  8. Ну и хрен с ними. Все-равно от них пользы никакой ;)

    Комментарий отправил автор Kolo 27 декабря 2006 в обед

  9. 2Kolo
    Ну мы же делаем сайты не для себя, а для других, в том смысле, что сайт впервую очередь должен приносить пользу другим… Хотя зависит от сайта конечно, но в данном случае так.

    Комментарий отправил автор Gram 27 декабря 2006 днем

  10. Kolo: Как говорили одни известные личности - информация должна быть свободна (и доступна)…

    Комментарий отправил автор Gluek 27 декабря 2006 днем

  11. А зачем тебе -m multiport, если указан только 80?)))

    Комментарий отправил автор neptune 27 декабря 2006 вечером

  12. neptune: да “80,443″ было сначала, а потом почему-то так осталось :)

    Комментарий отправил автор Gluek 28 декабря 2006 ночью

  13. Неплохое решение когда сайт валяется на собственном серваке, а что же делать когда он на шаред хостинге :)

    Комментарий отправил автор Neoline 29 декабря 2006 ранним утром

  14. Neoline: в файле .htaccess для Apache поставить:

    deny from 66.199.252

    Комментарий отправил автор Gluek 29 декабря 2006 утром

  15. Кста, не пробовал HashHash использовать?

    Комментарий отправил автор Mishail 9 января 2007 ночью

  16. “я выбрал блокировку эти подсетей на уровне ядра”

    iptables в ядре? :)

    Комментарий отправил автор Dimonuch 6 августа 2007 поздним вечером

  17. Да, а что?

    Основная часть функций пакетной фильтрации Iptables, вошедшая в код ядра операционной системы, может быть скомпилирована либо как часть ядра, либо в виде отдельных модулей.

    Комментарий отправил автор Gluek 7 августа 2007 ночью

Подписка на комментарии через RSS

Извините, комментирование этой заметки завершено.

Связанные записи