Apache + Fail2ban и CloudFlare, как банить IP парсящих контент?

12
R
На сайте с 04.03.2009
Offline
94
3845

Сложилась такая ситуация

Сервер с 1 ip - Apache и все сайты получают ip на CloudFlare

У меня штук 20 аккаунтов на CloudFlare и сайты разбросаны по всем аккаунтам (их тоже много).

Последнее время мои сайты стали парсить многочисленные боты (их я через htaccess рублю где могу по юзерагенту),

А еще много парсят контент индусы и многие "другие товарищи", ну или тупо проксируют мои сайты.

У меня стоит тдс кейтаро и на всех сайтах установлен код который по API коннектится на кейтаро8 сервер и отдается скрипт(или еще чтото), фильтруется по стране, по ипу.

В 8 кейтаре там удобно смотреть IP с которых идут запросы скрипта и сколько от них запросов приходит.

На сервере установил модуль для работы с CloudFlare и все реальные ипы юзеров нормально в логах видно, без модлуя видны только ip CloudFlare.

Тоесть и кейтара тоже нормальные ипы получает и все верно распределяет.

Но вот беда, те кто парсят, они также дергают api кейтары и создают очень большую нагрузку на сервере с тдской.

Я делал так, находил в кейтаре ипы которые делают много запросов и банил их в фаерволе во всех аккаунтах CloudFlare.

Помогает, но дело в том, что я вручную это все делаю.

Нашел вот статью http://artdev.org/fail2ban-i-cloudflare.html как с помощью fail2ban можно банить и разбанивать ипы на клоуде автоматически. НО только в одном аккаунте CloudFlare

Вот это дело делается так

actionban = curl -s -X POST "https://api.cloudflare.com/client/v4/user/firewall/access_rules/rules" \
-H "X-Auth-Email: <cfuser>" \
-H "X-Auth-Key: <cftoken>" \
-H "Content-Type: application/json" \
--data '{"mode":"block","configuration":{"target":"ip","value":"<ip>"},"notes":"Fail2ban"}'

А как можно сделать так, чтобы запрос посылался во все 20 аккаунтов? Как можно автоматически забанить или разбанить ип сразу в 20 аккаунтах?

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

safari
На сайте с 01.07.2009
Offline
73
#1

Вас же не досят, проще заблокировать на самом сервере, без участия cloudflare, а так да придется во все 20 аккаунтов слать.

R
На сайте с 04.03.2009
Offline
94
#2
safari:
Вас же не досят, проще заблокировать на самом сервере, без участия cloudflare, а так да придется во все 20 аккаунтов слать.

Клоуд я использую, так как на сервере IP всего 1, и покупать новые я не хочу, а сайтов около 500 примерно разной направленности разных ниш.

И вот вопрос был, можно ли в тот файл на сервере 20 раз вписать одну и туже строку и делать коннект одновременно в 20 акков))

B
На сайте с 21.10.2010
Offline
94
#3

И вот вопрос был, можно ли в тот файл на сервере 20 раз вписать одну и туже строку и делать коннект одновременно в 20 акков))
Realtyman вне форума Добавить отзыв для Realtyman Пожаловаться на это сообщение

Можно. Именно это и нужно сделать.

Дела должны делаться
coolwebsearcher
На сайте с 29.09.2008
Offline
87
#4

блокировать это стоит на самом сервере (если перед апачем стоит nginx, то в нем это прексрано реализовано через ngx_http_geo_module, если nginx не стоит - то есть смысл его поставить :), в апаче это тоже можно сделать, но не так красиво будет)

При блокировке через cloudflare в ограничение на количество правил очень быстро упретесь.

Услуги (http://www.our-dns.info/) | Цены (http://www.our-dns.info/prices/) | Отзывы (/ru/forum/970789)
D
На сайте с 28.06.2008
Offline
1101
#5

Это поставь, 90% ботов отсечешь /ru/forum/958253

R
На сайте с 04.03.2009
Offline
94
#6
Dram:
Это поставь, 90% ботов отсечешь /ru/forum/958253

так у меня пролема в том, что я блокирую эти ипы в iptables, но изза клоуда правила не срабатывают.

Так то я бы не мучал клоуд, а банил их всех на сервере...

A
На сайте с 19.07.2010
Offline
130
#7
Realtyman:
так у меня пролема в том, что я блокирую эти ипы в iptables, но изза клоуда правила не срабатывают.
Так то я бы не мучал клоуд, а банил их всех на сервере...

как сказали выше, ставьте у себя на сервере фронтендом nginx и баньте им.

> How does Cloudflare handle HTTP Request headers?

смотрите заголовки:

"Cf-Ipcountry: US"

"CF-Connecting-IP: A.B.C.D"

.............
R
На сайте с 04.03.2009
Offline
94
#8
admak:
как сказали выше, ставьте у себя на сервере фронтендом nginx и баньте им.

> How does Cloudflare handle HTTP Request headers?
смотрите заголовки:
"Cf-Ipcountry: US"
"CF-Connecting-IP: A.B.C.D"

Эххх. еслиб я сам мог ... подскажите пожалуйста статью где на русском языке расписана правильная установка у себя на сервере фронтендом nginx.

Вообще у меня вот такой конфиг

OS (Control Panel) Debian 7 64bit (ISPmanager 5 Lite)

Тоесть уже был ISPmanager 5 Lite установлен (ua-hosting.company)

Я только сделал это

Так как у меня стоят скрипты работающие или только на PHP 5.4

или на PHP 5.6

Тдска стоит на PHP 7.1

Тоесть создано в ISPmanager 5 несколько юзеров где стоят скрипты.

Возможно ли установить у себя на сервере фронтендом nginx при наличии ISPmanager ??

И еще вопросик.

Я настроил пока fail2ban на отправку на клоуд ипов которые превысили параметры настроенные, но я не могу определиться с правильными

вчера ставил вот так

maxretry = 200

findtime = 1800

bantime = 3600

200 заходов за полчаса банит на час

Щас поставил

maxretry = 80

findtime = 1200

bantime = 3600

Но тут стало больше ипов банить

BLIKSSS
На сайте с 11.04.2013
Offline
84
#9
Realtyman:


Возможно ли установить у себя на сервере фронтендом nginx при наличии ISPmanager ??

На вашем скрине, кликните два раза по первой строке вебсервер и там увидите nginx

Вообще isp сама конфигурирует при установки nginix проблем как правило не бывает, но все таки делайте бекап.(панель не предсказуема)

P.s После установки nginx не забывайте настроить конфиги nginx

R
На сайте с 04.03.2009
Offline
94
#10

Пока я этого не сделал :)

Если я установлю nginx и ничего не буду настраивать дальше в течении какого то времени, nginx не будет мешать работе?

И бекап чего делать, системы или всех сайтов?

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий