Блокируем спам с помощью iptables
Поизучал сегодня логи сервера и заметил, что 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
В итоге - нагрузка сервера упала на порядок. Эффект достигнут!
Не спится в 2 часа ночи ? , на ночь самое оно логи изучать ^_^
Комментарий отправил автор Nepall утром 27 декабря 2006 , оцените его:
-2
А Comment Blacklist не то же самое делает?
Комментарий отправил автор Mishail утром 27 декабря 2006 , оцените его:
+0
Mishail: нет, не тоже. Нагрузка в разы больше из-за обращения к Apache и MySQL. Впрочем, я это уже говорил :)
Комментарий отправил автор Gluek утром 27 декабря 2006 , оцените его:
-1
Эхъ, мне с моим хостером только мечтать о таком… Эти [censored] мне заявили на днях, что все операции можно сделать посредством FTP и cPanel (последней антидизайнерской наработке стоит, пожалуй, посвятить отдельный пост, благо она стоит на каждом втором хостинге). Надо им дать почитать эту запись, чтобы направить их на путь истинный :)
Комментарий отправил автор cryonyx в обед 27 декабря 2006 , оцените его:
+0
cryonyx: Ну на shared хостинге такого и не надут делать в принципе, так что по идее защиту от таких вещей должен сам хостер делать…
Комментарий отправил автор Gluek в обед 27 декабря 2006 , оцените его:
+0
Почему-бы сразу не взять список русских сетей и не заблочить все остальные? ;)
Комментарий отправил автор Kolo в обед 27 декабря 2006 , оцените его:
+0
Kolo: ну хотя-бы потому, что половина посетителей не из России смотрят ;)
Комментарий отправил автор Gluek в обед 27 декабря 2006 , оцените его:
+0
Ну и хрен с ними. Все-равно от них пользы никакой ;)
Комментарий отправил автор Kolo в обед 27 декабря 2006 , оцените его:
-1
2Kolo
Ну мы же делаем сайты не для себя, а для других, в том смысле, что сайт впервую очередь должен приносить пользу другим… Хотя зависит от сайта конечно, но в данном случае так.
Комментарий отправил автор Gram днем 27 декабря 2006 , оцените его:
+0
Kolo: Как говорили одни известные личности - информация должна быть свободна (и доступна)…
Комментарий отправил автор Gluek днем 27 декабря 2006 , оцените его:
+0
А зачем тебе -m multiport, если указан только 80?)))
Комментарий отправил автор neptune вечером 27 декабря 2006 , оцените его:
+0
neptune: да “80,443″ было сначала, а потом почему-то так осталось :)
Комментарий отправил автор Gluek ночью 28 декабря 2006 , оцените его:
+0
Неплохое решение когда сайт валяется на собственном серваке, а что же делать когда он на шаред хостинге :)
Комментарий отправил автор Neoline ранним утром 29 декабря 2006 , оцените его:
+0
Neoline: в файле .htaccess для Apache поставить:
Комментарий отправил автор Gluek утром 29 декабря 2006 , оцените его:
+0
Кста, не пробовал HashHash использовать?
Комментарий отправил автор Mishail ночью 9 января 2007 , оцените его:
+0
“я выбрал блокировку эти подсетей на уровне ядра”
iptables в ядре? :)
Комментарий отправил автор Dimonuch поздним вечером 6 августа 2007 , оцените его:
+0
Да, а что?
Комментарий отправил автор Gluek ночью 7 августа 2007 , оцените его:
+0