Блокируем спам с помощью 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
В итоге - нагрузка сервера упала на порядок. Эффект достигнут!
« XNeur - аналог Punto Switcher для LinuxЦифровые фото 10×15 по 1 руб. »





english
russian
Не спится в 2 часа ночи ? , на ночь самое оно логи изучать ^_^
Comment by
Nepall — 27 Dec 2006 at 09:43
-1
А Comment Blacklist не то же самое делает?
Comment by
Mishail — 27 Dec 2006 at 10:04
+0
Mishail: нет, не тоже. Нагрузка в разы больше из-за обращения к Apache и MySQL. Впрочем, я это уже говорил :)
Comment by
Gluek — 27 Dec 2006 at 10:22
+0
Эхъ, мне с моим хостером только мечтать о таком… Эти [censored] мне заявили на днях, что все операции можно сделать посредством FTP и cPanel (последней антидизайнерской наработке стоит, пожалуй, посвятить отдельный пост, благо она стоит на каждом втором хостинге). Надо им дать почитать эту запись, чтобы направить их на путь истинный :)
Comment by
cryonyx — 27 Dec 2006 at 14:24
+0
cryonyx: Ну на shared хостинге такого и не надут делать в принципе, так что по идее защиту от таких вещей должен сам хостер делать…
Comment by
Gluek — 27 Dec 2006 at 14:29
+0
Почему-бы сразу не взять список русских сетей и не заблочить все остальные? ;)
Comment by
Kolo — 27 Dec 2006 at 14:44
+0
Kolo: ну хотя-бы потому, что половина посетителей не из России смотрят ;)
Comment by
Gluek — 27 Dec 2006 at 14:46
+0
Ну и хрен с ними. Все-равно от них пользы никакой ;)
Comment by
Kolo — 27 Dec 2006 at 15:34
+0
2Kolo
Ну мы же делаем сайты не для себя, а для других, в том смысле, что сайт впервую очередь должен приносить пользу другим… Хотя зависит от сайта конечно, но в данном случае так.
Comment by
Gram — 27 Dec 2006 at 17:17
+0
Kolo: Как говорили одни известные личности - информация должна быть свободна (и доступна)…
Comment by
Gluek — 27 Dec 2006 at 17:27
+0
А зачем тебе -m multiport, если указан только 80?)))
Comment by
neptune — 27 Dec 2006 at 19:13
+0
neptune: да “80,443″ было сначала, а потом почему-то так осталось :)
Comment by
Gluek — 28 Dec 2006 at 00:31
+0
Неплохое решение когда сайт валяется на собственном серваке, а что же делать когда он на шаред хостинге :)
Comment by
Neoline — 29 Dec 2006 at 07:04
+0
Neoline: в файле .htaccess для Apache поставить:
Comment by
Gluek — 29 Dec 2006 at 09:21
+0
Кста, не пробовал HashHash использовать?
Comment by
Mishail — 9 Jan 2007 at 02:49
+0
“я выбрал блокировку эти подсетей на уровне ядра”
iptables в ядре? :)
Comment by
Dimonuch — 6 Aug 2007 at 23:53
+0
Да, а что?
Comment by
Gluek — 7 Aug 2007 at 00:09
+0