Как банить по IP если сайт на cloudflare?

123
V2
На сайте с 05.01.2012
Offline
111
#11

Оптимизайка, Да, это оно ). Вот так

SetEnvIf X-FORWARDED-FOR 111.222.333.444 denyclient

Deny from env=denyclient

действительно можно забанить через htaccess в моем случае.

Спасибо огромное, уже не раз выручаешь!

V2
На сайте с 05.01.2012
Offline
111
#12

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

Но проблема в следующем:

для использования mod_rpaf, я записываю в httpd.conf такие строчки

LoadModule rpaf_module modules/mod_rpaf.so

RPAFenable On

RPAFproxy_ips хх.хх.хх.хх %ips%

RPAFsethostname Off

RPAFheader X-Real-IP

где хх.хх.хх.хх - IP cloudflare.

Так вот mod_rpaf понимает только перечень адресов, например можно записать RPAFproxy_ips хх.хх.хх.хх1 хх.хх.хх.хх2 хх.хх.хх.хх3 и т.д., а записи диапазона не понимает, например записи такого вида вида хх.хх. или хх.хх.хх.хх/12

Выписывать список всех адресов cloudflare туда как я понимаю нереально.

Есть модуль mod_remoteip, который делает тоже самое и вроде понимает диапазоны, но его под апач 2.2 на виндовс не нашел.

Как решить эту проблему?

lealhost
На сайте с 07.06.2014
Offline
136
#13

Должен поддерживать маску. Может, слишком старый у Вас.

Попробуйте собрать этот: https://github.com/y-ken/mod_rpaf

Feature: Support for partial IP address as '192.168.' for RPAFproxy_ips.

Точнее, это не совсем маска, останется только разложить их сети на /24 и /16 подсети 😂

V2
На сайте с 05.01.2012
Offline
111
#14
lealhost:
Попробуйте собрать этот: https://github.com/y-ken/mod_rpaf

Тогда мне под windows нужно готовый mod_rpaf.so, или инструкция по установке этого модуля под windows.

Оптимизайка
На сайте с 11.03.2012
Offline
396
#15

Vitaly2012, а почему в панели управления cloudflare (Firewall → IP Firewall → Access Rules) по ip забанить не хотите?

⭐ BotGuard (https://botguard.net) ⭐ — защита вашего сайта от вредоносных ботов, воровства контента, клонирования, спама и хакерских атак!
OQ
На сайте с 17.09.2018
Offline
0
#16
Vitaly2012:
Тогда мне под windows нужно готовый mod_rpaf.so, или инструкция по установке этого модуля под windows.

Ну, в хостинге на Windows редко используют Apache.

Попробуйте собрать модуль вот таким способом: https://www.calazan.com/how-to-compile-and-build-apache-modules-on-windows-using-visual-studio/

А лучше, конечно, пользоваться Linux...

V2
На сайте с 05.01.2012
Offline
111
#17

Оптимизайка, на сайтах есть скрипты, которые банят ботов автоматически, прописывая в .htaccess строчки deny from xx.xx.xx.xx, соответственно они не работают и их нужно переделывать. Вручную, в панели управления cloudflare, прописывать каждого бота вообще не реально.

Кроме того на сайтах некорректно отображаются IP пользователей, некорректно работает остатистика и прочее.

С mod_rpaf.so все это работает, но проблема в том, что моя версия не понимает диапазон адресов. Я уже думал просто все адреса выписать, но когда посмотрел, что у них только в одном диапазоне 524286 адресов https://ip.rst.im/ip/172.64.0.0/13 , понял, что это плохая идея )

M
На сайте с 17.09.2016
Offline
124
#18

Vitaly2012, CloudFlare имеет API для блокировки

Замените пару строк кода, вместо .htaccess - запрос к CloudFlare

---------- Добавлено 17.09.2018 в 12:12 ----------

https://api.cloudflare.com/#user-level-firewall-access-rule-create-access-rule

V2
На сайте с 05.01.2012
Offline
111
#19
Mobiaaa:
Vitaly2012, CloudFlare имеет API для блокировки
Замените пару строк кода, вместо .htaccess - запрос к CloudFlare

Слишком сложно, там ведь не один сайт. Получается для каждого менять код блокировки, разбираться с API cloudflare. Потом, вместо простой записи в .htaccess файл, каждый раз будет доступ к API. А если захочу использовать без cloudflare, опять все назад менять?

Тогда уже лучше вариант банить так как подсказал Оптимизайка в 11-м посте

SetEnvIf X-FORWARDED-FOR 111.222.333.444 denyclient
Deny from env=denyclient

меньше переделывать и с API не нужно разбираться.

Но в случае с mod_rpaf все вообще идеально - IP нормально отображаются в логах и в скриптах, ничего переделывать не нужно, банишь как обычно через deny from xx.xx.xx.xx. Одна проблема, он не работает ))

Пока идеальный вариант был бы как подказали

lealhost:
Попробуйте собрать этот: https://github.com/y-ken/mod_rpaf

скомпилировать этот более новый модуль под апач 2.2 виндовс или найти готовый.

Нашел еще пару модулей, которые выполняют ту-же функцию - mod_remoteip, mod_extract_forwarded, mod_realip2, mod_vgremoteip, но ни одного из не нашел под свой апач ((

M
На сайте с 17.09.2016
Offline
124
#20

Vitaly2012, У нас просто разные взгляды :)

Я привык всё решать на более низких уровнях, например firewall сервера, т.е. ещё до приложения (apache и т.д.)

Тогда проще всего пересобрать модуль под Вашу версию apache

Это единственный вариант

123

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