Жесткий, но эффективный метод борьбы со спамом в комментариях

Два месяца назад я писал об одном очень жестком методе борьбы с последствиями установки плагина Time spent on blog. Теперь этот же самый метод применяем на спам-ботах, которые безуспешно пытаются оставить спам в комментариях.

Отвлекусь от темы и отвечу на вопрос о необходимости применения жестких мер против спамеров: во-первых, они генерируют много паразитного трафика (трафик не бесплатен), во-вторых, они генерируют лишнюю нагрузку на сервер, в-третьих, вода камень точит — любую капчу можно подобрать.

Предварительная настройка:

[-]
View Code Bash
iptables -N spammers
iptables -A INPUT -j spammers

Фрагмент процесса, который запускается кроном (например, раз в час):

[-]
View Code Bash
# Лог доступа (IP идёт первым полем)
PATH=/var/log/access.log

# Получаем список забаненных спамеров
ips=`iptables -S | grep "^-A spammers " | awk '{ print $4 }' | sed 's/\/32//g'`

# Ищем в логах спамеров (предполагается, что возвращается код ошибки 500,
# если капча введена неверно. Если капча была введена неверно больше 10 раз
# с одного и того же IP, то считаем, что это спамер.
spammers=`\
    grep -E '"POST /wp-comments-post.php HTTP/1.[01]" 500' $PATH | \
    awk '{ print $1 }' | \
    sort | \
    uniq -c | \
    awk '{ if ($1 > 10) { print $2; }}' \
`

# Ищем новые жертвы и добавляем их в список
echo "$spammers" | grep -v -F "$ips" | xargs -l -r -I {} iptables -A spammers -s '{}' -j DROP

В результате всё очень здорово: с учётом того, что на сервере крутятся несколько весьма посещаемых сайтов, нагрузка значительно падает. В связи с чем возникает вопрос: какова же доля паразитного трафика в Internet?

Недостатки метода: требуется root-доступ к серверу и хорошее знание Linux (чтобы понять, что делает скрипт).
Достоинства: спамеры идут лесом, уменьшается доля паразитного трафика и нагрузка на сервер.

iarq72g98h

Добавить в закладки

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

26
Июль
2009

Комментарии к статье «Борьба со спамом на уровне фильтра пакетов» (4)  »

  1. bessangel says:

    А еще лесом идут пользователи сидящие за NAT, как и пользователи динамически обновляемых ипишников :)

    • Vladimir says:

      Почти. Полное решение несколько сложнее (я связан NDA по работе) и использует iptables -m recent и whois (с целью выявления динамических IP), поэтому сильно лесом они не идут :-)

      Вообще по статистике спам идет с постоянных адресов.

      За последние 30 минут:

      [-]
      View Code Text
           10 62.63.105.37
           13 85.17.231.195
           14 195.88.32.160
           14 79.140.166.45
           15 80.73.6.138
           17 95.107.55.140
           39 95.133.89.88
           40 84.19.176.28
           46 194.8.75.105
           73 95.78.96.75
          117 89.149.244.89
          177 93.174.93.54
          428 217.20.112.128
  2. Макс says:

    Неужели ваш блог так спамят ?

Подписаться на RSS-ленту комментариев к статье «Борьба со спамом на уровне фильтра пакетов» Trackback URL: http://blog.sjinks.org.ua/wordpress/598-fighting-spam-with-iptables/trackback/

Оставить комментарий к записи «Борьба со спамом на уровне фильтра пакетов»

Вы можете использовать данные тэги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Оставляя комментарий, Вы выражаете своё согласие с Правилами комментирования.

Подписаться, не комментируя