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

Главные вкладки

Аватар пользователя ttenz ttenz 26 ноября 2014 в 17:30

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

Настроим наш 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...

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 раз, боты прибиты, переходить на более дорогой тариф не надо!

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

Комментарии

Аватар пользователя ttenz ttenz 27 ноября 2014 в 6:29

"kosHta" wrote:
Фэйлтубан поможет на верхнем уровне, я верно понял?

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

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

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

Аватар пользователя ttenz ttenz 27 ноября 2014 в 17:56

"RxB" wrote:

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

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

Аватар пользователя Виктор Степаньков ака RxB Виктор Степаньк... 27 ноября 2014 в 18:01

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

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