Характеристики на настройката на DPI

В настоящата статия не се разглежда пълната настройка на DPI и свързаните с нея въпроси, а научната стойност на текста е минимална. Но в нея се описва най-простият начин за заобикаляне на DPI, който много компании не взеха предвид.

Характеристики на настройката на DPI

Предупреждение №1: настоящата статия има изследователски характер и не призовава никого да предприема действия или да използва информацията. Идеята е базирана на личен опит, а всякакви съвпадения са случайни.

Предупреждение №2: в статията не се разкриват тайните на Атлантида, търсенето на Святия Граал и други загадки на вселената, всичкото съдържание е в свободен достъп и е възможно да е било описано неведнъж в Хаб. (Не намерих, ще съм признателен за линк)

За тези, които прочетоха предупрежденията, нека да започнем.

Какво е DPI?

DPI или Deep Packet Inspection — технология за събиране на статистически данни, проверка и филтриране на мрежови пакети, анализираща не само заглавията на пакетите, но и цялото съдържание на трафика на нива на модела OSI от второ нагоре, което позволява откриването и блокирането на вируси, филтрирането на информация, която не отговаря на зададените критерии.

Съществуват два типа свързване на DPI, които са описани. ValdikSS на github:

Пасивен DPI

DPI, свързан паралелно в мрежата на доставчика (не в разрез) или чрез пасивен оптичен сплитер, или с използване на отразяване на трафика, излизащ от потребителите. Такова свързване не забавя скоростта на работа на мрежата на доставчика в случай на недостатъчна производителност на DPI, поради което се прилага от големи доставчици. DPI с този тип свързване технически може само да открива опити за запрос на забранен контент, но не може да го спре. За да заобиколи това ограничение и да блокира достъпа до забранен сайт, DPI изпраща на потребителя, който иска забранения URL, специално форматиран HTTP пакет с пренасочване към страницата за блокиране на доставчика, сякаш такъв отговор е изпратен от самия искан ресурс (подменя се IP адресът на подателя и TCP последователността). Поради това, че DPI е физически разположен по-близо до потребителя, отколкото исканият сайт, подмененият отговор достига до устройството на потребителя по-бързо от истинския отговор от сайта.

Активен DPI

Активен DPI — DPI, свързан в мрежата на доставчика по обичайния начин, както и всяко друго мрежово устройство. Доставчикът настройва маршрутизацията така, че DPI да получава трафик от потребителите към блокирани IP адреси или домейни, а DPI взема решение за пропускане или блокиране на трафика. Активен DPI може да проверява както изходящия, така и входящия трафик, но ако доставчикът прилага DPI само за блокиране на сайтове от регистъра, най-често го настройват да проверява само изходящия трафик.

Типът на свързването влияе не само на ефективността на блокиране на трафика, но и на натоварването на DPI, поради което съществува възможност да не се проверява целият трафик, а само определен:

«Обикновен» DPI

Под «обикновен» DPI се разбира такъв DPI, който филтрира определен тип трафик само на най-разпространените портове за този тип. Например, «обикновен» DPI открива и блокира забранен HTTP трафик само на порт 80, HTTPS трафик на порт 443. Този тип DPI няма да проследява забранено съдържание, ако изпратите заявка с блокиран URL на незаблокиран IP или нестандартен порт.

«Пълен» DPI

В отличие от «обикновения» DPI, този тип DPI класифицира трафика независимо от IP адреса и порта. Така блокираните сайтове няма да се отварят, дори ако използвате прокси сървър на напълно различен порт и незаблокиран IP адрес.

Използване на DPI

За да не се намалява скоростта на предаване на данни, трябва да се използва «Обикновен» пасивен DPI, който позволява ефективно блокиране на всякакви ресурси. По подразбиране конфигурацията изглежда така:

  • HTTP филтриране само на порт 80
  • HTTPS само на порт 443
  • BitTorrent само на портовете 6881-6889

Но проблемите започват, ако ресурсът използва друг порт, за да не изгуби потребителите, тогава ще се наложи да проверявате всеки пакет, за пример можем да посочим:

  • HTTP работи на порт 80 и 8080
  • HTTPS на порт 443 и 8443
  • BitTorrent на всякакъв друг диапазон

Поради това, ще се наложи или да преминете на «Активен» DPI, или да използвате блокиране чрез допълнителен DNS сървър.

Блокиране с помощта на DNS

Един от начините за блокиране на достъпа до ресурс е перехващането на DNS заявките с помощта на локален DNS сървър и връщането на IP адреса на "заглушка" на потребителя вместо на изисквания ресурс. Но това не дава гарантиран резултат, тъй като съществува възможност за предотвратяване на подмяната на адреса:

Опция 1: Редактиране на файла hosts (за десктоп)

Файлът hosts е неразривна част от всяка операционна система, което позволява винаги да се използва. За достъп до ресурса потребителят трябва:

  1. Да разбере IP адреса на изисквания ресурс
  2. Да отвори за редактиране файла hosts (необходими са права на администратора), разположен в:
    • Linux: /etc/hosts
    • Windows: %WinDir%System32driversetchosts
  3. Да добави ред в следния формат:
  4. Да запази промените

Предимството на този метод е сложността му и изискването за права на администратора.

Опция 2: DoH (DNS over HTTPS) или DoT (DNS over TLS)

Тези методи позволяват защита от подмяна на DNS заявките чрез шифроване, но реализацията не се поддържа от всички приложения. Нека разгледаме простотата на настройката на DoH за Mozilla Firefox версия 66 от страна на потребителя:

  1. Да отидете на адреса about:config в Firefox
  2. Да потвърди, че потребителят поема целия риск
  3. Да промени стойността на параметъра network.trr.mode на:
    • 0 — деактивиране на TRR
    • 1 — автоматичен избор
    • 2 — включване на DoH по подразбиране
  4. Да промени параметъра network.trr.uri избирайки DNS сървър
    • Cloudflare DNS: mozilla.cloudflare-dns.com/dns-query
    • Google DNS: dns.google.com/experimental
  5. Да промени параметъра network.trr.boostrapAddress на:
    • Ако е избран Cloudflare DNS: 1.1.1.1
    • Ако е избран Google DNS: 8.8.8.8
  6. Да промени стойността на параметъра network.security.esni.enabled на true
  7. Да провери настройката с помощта на сервиса Cloudflare

Въпреки че този метод е по-сложен, той не изисква наличие на права на администратора от потребителя, също така съществуват много други методи за защита на DNS заявките, които не са описани в тази статия.

Опция 3 (за мобилни устройства):

Използване на приложение от Cloudflare за Android и IOS.

Тестиране

За проверка на отсъствието на достъп до ресурсите беше временно закупен домейн, блокиран на територията на РФ:

Заключение

Надявам се, че тази статия ще бъде полезна и ще подтикне не само администраторите да се задълбочат в темата, но и ще даде разбиране, че ресурсите винаги ще бъдат на страна на потребителя, а търсенето на нови решения трябва да бъде неотменна част от тях.

Полезни линкове

Допълнение извън статиятаТестът на Cloudflare не може да бъде преминат в мрежата на оператора Tele2, а правилно настроеният DPI блокира достъпа до тестовата платформа.
P.S. Засега това е първият доставчик, който правилно блокира ресурсите.

Източник: habr.com

Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри 🔥 Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри | ProHoster