XF 2.3 Преобразование IP-адресов пользователей TOR-сети

Версия XenForo
2.3

crdpro77

Проверенные
Сообщения
54
Реакции
5
Баллы
65
Всем приветы!

Столкнулся с данной проблемой:
До обновления движка у всех пользователей TOR-сети отображался и присваивался IP-адрес примерного вида:
Код:
2001:db8::/32.

На данный момент всем пользователям TOR'а присваивается один и тот же IP-адрес примерного вида:
Код:
192.168.1.1

У меня VPS. Разговаривал с хостером, который ответил что на сервере включена поддержка IPv4 и IPv6 адресов и он не знает как помочь.

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

Пожалуйста подскажите, как можно пофиксить данную ситуацию?
 
Последнее редактирование:
Если форум стоит за Cloudflare или любым обратным прокси, реальный IP пользователя передаётся через заголовок X-Forwarded-For.
Когда XenForo «не доверяет» этому заголовку, он берёт только внутренний адрес сервера — отсюда и одинаковый IP у всех.

научить Nginx передавать настоящий IP.

Открываем файл:

Код:
/src/config.php

И добавляем в него такие строки:

Код:
$config['trustedProxy']['enabled'] = true;

$config['trustedProxy']['ips'] = [
'127.0.0.1',
'192.168.0.0/16'
];

$config['trustedProxy']['headers'] = [
'X-Forwarded-For',
'X-Real-IP'
];

Если используете Cloudflare, нужно внести их диапазоны отсюда:


Настройки Nginx​

В конфиг Nginx добавьте:

Код:
real_ip_header X-Forwarded-For;
real_ip_recursive on;

set_real_ip_from 127.0.0.1;
set_real_ip_from 192.168.0.0/16;

Если сайт проходит через Cloudflare — добавьте их IP:

Код:
set_real_ip_from 173.245.48.0/20;
set_real_ip_from 103.21.244.0/22;
set_real_ip_from 103.22.200.0/22;
set_real_ip_from 103.31.4.0/22;
set_real_ip_from 141.101.64.0/18;
set_real_ip_from 108.162.192.0/18;
set_real_ip_from 190.93.240.0/20;
set_real_ip_from 188.114.96.0/20;
set_real_ip_from 197.234.240.0/22;
set_real_ip_from 198.41.128.0/17;
set_real_ip_from 162.158.0.0/15;
set_real_ip_from 104.16.0.0/13;
set_real_ip_from 104.24.0.0/14;
set_real_ip_from 172.64.0.0/13;
set_real_ip_from 131.0.72.0/22;

И IPv6 Cloudflare:
Код:
set_real_ip_from 2400:cb00::/32;
set_real_ip_from 2606:4700::/32;
set_real_ip_from 2803:f800::/32;
set_real_ip_from 2405:b500::/32;
set_real_ip_from 2405:8100::/32;
set_real_ip_from 2a06:98c0::/29;
set_real_ip_from 2c0f:f248::/32;

После сохранения перезагрузите nginx:

Код:
systemctl reload nginx

Зайдите на форум через Tor - откройте в админке:

Tools - Logs - IP address lookup

Если всё сделано правильно, IP будут разные:

Код:
185.220.x.x
199.249.x.x
2a0b:f4c1::1

Если всё ещё один - значит либо XenForo не видит прокси как доверенный, либо nginx не применил настройки.
 
Последнее редактирование:
Пожалуйста подскажите как быть в этом случае?
Первая часть сообщения целиком и полностью относится к варианту "что делать если у меня НЕ cloudflare": указать свои адреса прокси-серверов
 
Современный облачный хостинг провайдер | Aéza
Назад
Сверху Снизу