Действительно ли возможно подвергнуть http средство отслеживания потока CDN для предотвращения DDOS?

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

Я буду использовать cloudflare или другой CDN для предотвращения DDos-атак на моем веб-сайте. Но я также хочу защитить свое http средство отслеживания потока (средство отслеживания XBT) работа другого порта. Таким образом, я также хочу, чтобы потоки прошли CDN как через прокси, но не кэшируясь и капча, потому что программное обеспечение потока не может решить капчу. Действительно ли возможно проксировать http средство отслеживания потока через CDN как cloudflare, или я должен заказать дополнительный сервер DDOSable только для средства отслеживания потока?

0
задан 25 July 2015 в 13:08
2 ответа

Я не думаю, что вы получите что-нибудь , используя CloudFlare или любой другой CDN для Torrent Трекер.

Весь смысл CDN состоит в том, чтобы переложить на него работу путем кэширования ответов на запросы.

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

Возьмем, к примеру, TL. Это огромный частный торрент-трекер. Его веб-сайт находится на CloudFlare, но его трекер находится на сервере в Люксембурге. Кажется, что никакой CDN не задействован. За этим IP-адресом может быть кластер, чтобы иметь возможность обрабатывать все запросы, но я предполагаю, что это не CDN.

Каждый запрос, сделанный клиентом, будет уникальным каждый раз, когда он его сделает.

Пример этого Сообщение GET может быть таким:

 http://some.tracker.com:999/announce
 ? info_hash = 12345678901234567890
 & peer_id = ABCDEFGHIJKLMNOPQRST
 & ip = 255.255.255.255
 & порт = 6881
 & скачано = 1234
 & left = 98765
 & event = остановлено
 

https://wiki.theory.org/BitTorrent_Tracker_Protocol

Подробнее: http://www.bittorrent.org/beps/bep_0003.html

Даже если все параметры одинаковы для всех клиентов (что не так - peerid уникален для каждого клиента, для каждого торрента в соответствии с BEP0003), у вас все равно будет уникальный материал для каждого запроса для каждого клиента . Например:

&downloaded=1234
&left=98765

Вышеупомянутые параметры меняются с каждым последующим запросом торрент-клиента в зависимости от того, сколько трафика он сделал с момента последнего запроса.

CDN обычно кэшируют контент на основе URI запроса. Так что, если запрос каждый раз уникален, он не сможет обслуживать кэшированный контент, что противоречит их цели.

Теперь, когда я думаю об этом,если ваш трекер анонимный, вы , может быть, , можете использовать очень нестандартную конфигурацию Varnish, чтобы иметь возможность кэшировать ответы для каждого info_hash, игнорируя уникальность запросов. Но в этом случае ваш трекер не сможет измерить реальную статистику (общее количество запросов вверх / вниз / количество пиров и т. Д.), Так как только небольшой процент запросов достигнет трекера.

И таким образом вы не будете действительно защищены ни от каких DDoS (хотя Varnish - отличная программа, способная обрабатывать огромное количество запросов!)

Обновление:

Есть несколько провайдеров, которые имеют оборудование для защиты от DDoS-атак (например, Arbor Peakflow). Они могут позволить вам запускать свой трекер без CDN или кеширования и иметь возможность блокировать атаки DDoS на ваш сервер. Но, конечно, такие решения имеют свою стоимость :)

0
ответ дан 5 December 2019 в 12:36

Я опоздал почти на 5 лет, но это больше для гугления. На самом деле у меня есть свой трекер за Cloudflare, потому что он помогает маршрутизировать трафик для пользователей с IPv6. Это помогает убедиться, что они перенаправлены на использование IPv4 для трекера. И это позволяет большему количеству людей использовать трекер. Если бы я хотел, я мог бы также добавить защиту от DDOS, но я использую правила страницы для обхода кэширования и множество других опций.

Правила вашей страницы должны выглядеть следующим образом:

http://tracker.example.com:8080/*
Cache Level: Bypass

и

http://tracker.example.com:2052/*
Cache Level: Bypass

Сначала вам нужно найти порты, поддерживаемые Cloudflares, и использовать тот, который вам подходит. Вот список:

По умолчанию Cloudflare проксирует трафик, предназначенный для перечисленных ниже портов HTTP/HTTPS.

HTTP-порты, поддерживаемые Cloudflare:

80
8080
8880
2052
2082
2086
2095

HTTPS-порты, поддерживаемые Cloudflare:

443
2053
2083
2087
2096
8443

Тогда вам нужно поставить Nginx перед вашим торрент-трекером. Например, если вы используете Xbt Tracker, вам нужно использовать Nginx, переписанный следующим образом, в «default.conf» или как вы хотите его назвать .conf в папке conf.d:

server {

listen       8080;

server_name  localhost;
  location / {
  rewrite ^(.*)$ $1?ip=$remote_addr break; 
    proxy_pass http://127.0.0.1:2052/;
    proxy_redirect     off;
    proxy_set_header   Host                  $http_host;
proxy_set_header   X-Real-IP        $remote_addr;
proxy_set_header   X-Forwarded-For  $remote_addr;
access_log off;
log_not_found off;
  }
}

В основном вы будете запускать свой трекер. например, с порта 2052, а затем запустите Nginx через прокси с порта 8080.И тогда вы бы вставили порт 8080 в свои торренты.

Я думаю, что это все, вы можете посмотреть, как добавить дополнительные параметры в Nginx, такие как количество рабочих процессов и время поддержания активности.

Если вы не поместите Nginx перед своим трекером, трекер получит все IP-адреса Cloudflare и не сможет правильно общаться и отслеживать.

Также создайте еще один файл в папке Nginx conf.d с именем cloudflare.conf и поместите внутрь следующее, это позволит вам получить реальный ips:

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 104.16.0.0/12;
set_real_ip_from 108.162.192.0/18;
set_real_ip_from 131.0.72.0/22;
set_real_ip_from 141.101.64.0/18;
set_real_ip_from 162.158.0.0/15;
set_real_ip_from 172.64.0.0/13;
set_real_ip_from 173.245.48.0/20;
set_real_ip_from 188.114.96.0/20;
set_real_ip_from 190.93.240.0/20;
set_real_ip_from 197.234.240.0/22;
set_real_ip_from 198.41.128.0/17;

set_real_ip_from 2400:cb00::/32;
set_real_ip_from 2405:8100::/32;
set_real_ip_from 2405:b500::/32;
set_real_ip_from 2606:4700::/32;
set_real_ip_from 2803:f800::/32;
set_real_ip_from 2c0f:f248::/32;
set_real_ip_from 2a06:98c0::/29;

real_ip_header CF-Connecting-IP;

Наслаждайтесь. И следите за своей базой данных на наличие правильных IP-адресов, чтобы убедиться, что она работает правильно.

0
ответ дан 23 March 2020 в 17:32

Теги

Похожие вопросы