[РЕШЕНО] Защита от ботов fail2ban+csf сервера nginx c друпалом на борту

Аватар пользователя ttenz

Ты можешь хорошо оптимизировать сервер, настроить сайт на друпале, но спам-боты могут свести на нет все твои старания, вынуждая тебя переходит на более дорогой тариф, п.ч. они все время хотят больше кушать.

Настроим наш nginx сервер для победы над спам ботами --->>

Установка CFS (ConfigServer Firewall)

1. Качаем архив:

2. Распаковываем:

tar -xzf csf.tgz

3. Устанавливаем:

Если есть другие фаервольные скрипты, например UFW, то нужно их остановить. Правила в iptables удалятся автоматически.

ufw disable

cd csf

sh install.sh

Фаервол теперь установлен и теперь проверим все ли требуемы модули iptable доступны.

perl /usr/local/csf/bin/csftest.pl

Fail2ban будет работать, если при проверки везде OK.

Установка fail2ban

1. Устанавливаем модуль на друпал сайт:

Включаем syslog модуль.

2. Редактируем /etc/fail2ban/jail.conf, добавляем в конец файла:

[drupal-fail2ban]
enabled  = true
port     = http,https
protocol = tcp
filter   = drupal-fail2ban
action = csf-ip-deny[name=drupal]
logpath  = /var/log/messages
maxretry = 5
findtime = 86400

bantime  = 21600

3. Создаем фильтр /etc/fail2ban/filter.d/drupal-fail2ban.conf со следующим содержимым:

[Definition]
failregex = \|user\|<HOST>\|.*\|Login attempt failed (.+)\.$
ignoreregex =

4. Создаем фильтр /etc/fail2ban/action.d/csf-ip-deny.conf со следующим содержимым:

# CSF / fail2ban integration from The Digital FAQ (digitalFAQ.com)

[Definition]
actionstart =
actionstop =
actioncheck =
actionban = csf -d <ip> Added by Fail2Ban for <name>
actionunban = csf -dr <ip>
 
[Init] name = default
 
# Read more: http://www.digitalfaq.com/forum/web-tech/5692-fail2ban-csf-blocking.html#ixzz3Jfzkmx00

5. Запуск

Останавливаем сервер:
/etc/init.d/nginx stop

рестартим fail2ban:

service fail2ban restart

Запускаем сервер:
/etc/init.d/nginx start

Смотрим работу командой:
tail -f /var/log/fail2ban.log

должно быть примерно так:

2014-11-24 16:02:22,881 fail2ban.actions: WARNING [drupal-fail2ban] 110.85.100.178 already banned

2014-11-24 16:02:25,884 fail2ban.actions: WARNING [drupal-fail2ban] 110.85.100.178 already banned

2014-11-24 16:11:01,528 fail2ban.actions: WARNING [drupal-fail2ban] 91.200.12.41 already banned

2014-11-24 16:12:10,612 fail2ban.actions: WARNING [ssh] Ban 178.254.22.90

2014-11-24 16:22:11,384 fail2ban.actions: WARNING [ssh] Unban 178.254.22.90

наконец то стало легче дышать, скорость сайта возросла в 10-15 раз, боты прибиты, переходить на более дорогой тариф не надо!

О более тонкой настройке читать далее...

Ключевые слова:
Тип материала:
Форумы:
0 Спасибо

Комментарии

Аватар пользователя Lotar
Lotar 2 года назад

Это интересно. А как он гуглояндексодругих ботов выделяет?

0 Спасибо
Аватар пользователя ttenz
ttenz 2 года назад
kosHta написал:
Фэйлтубан поможет на верхнем уровне, я верно понял?

на подступе, это тот же фаервол.

Lotar написал:
А как он гуглояндексодругих ботов выделяет?

см. фильтры в папке /etc/fail2ban/filter.d/

0 Спасибо
Это сообщение находится в тёмной материи. Вы можете изменить настройки просмотра тёмной материи в личном кабинете.
0 Спасибо
Аватар пользователя Виктор Степаньков ака RxB
Виктор Степаньк... 2 года назад

Когда-то, года 4 назад, я в рамках патруля предлагал сделать свою сеть "вредных" ip.

0 Спасибо
Аватар пользователя ttenz
ttenz 2 года назад
RxB написал:
Когда-то, года 4 назад, я в рамках патруля предлагал сделать свою сеть "вредных" ip.

думаю, они не сделали, т.к. боты - это нагрузка на сервер, а нагрузка - это деньги, это и послужило причиной ухода с патруля.

0 Спасибо
Аватар пользователя Виктор Степаньков ака RxB
Виктор Степаньк... 2 года назад
ttenz написал:
думаю, они не сделали, т.к. боты - это нагрузка на сервер, а нагрузка - это деньги, это и послужило причиной ухода с патруля.

Конечно не сделали. Как минимум, я перестал в патруле работать.
Единственное, что было, это ограничение по User-Agent в конфиге nginx

0 Спасибо