Caracteristicile configurării DPI

Această articol nu examinează configurarea completă a DPI și valoarea științifică a textului este minimă. Însă, descrie o metodă simplă de a ocoli DPI, care nu a fost considerată de multe companii.

Caracteristicile configurării DPI

Avertisment nr. 1: acest articol are un caracter investigativ, nu încurajează pe nimeni să întreprindă acțiuni sau să utilizeze informațiile. Ideea se bazează pe experiența personală, iar orice asemănări sunt întâmplătoare.

Avertisment nr. 2: articolul nu dezvăluie secretele Atlantidei, căutarea Sfântului Graal sau alte enigme ale universului, întregul material fiind în acces liber și disponibil, posibil descris anterior pe Habr. (nu am găsit, apreciez un link)

Pentru cei care au citit avertismentele, să începem.

Ce este DPI?

DPI sau Deep Packet Inspection este o tehnologie de colectare a datelor statistice, verificare și filtrare a pachetelor de rețea, analizând nu doar anteturile pachetelor, ci și conținutul complet al traficului la nivelurile modelului OSI de la al doilea în sus, permițând detectarea și blocarea virușilor, filtrarea informațiilor care nu îndeplinesc criteriile specificate.

Există două tipuri de conectare DPI, care sunt descrise ValdikSS pe github:

DPI pasiv

DPI conectat în rețeaua furnizorului în paralel (nu în serie) fie printr-un splitter optic pasiv, fie prin utilizarea mirror-ului traficului rezultat de utilizatori. Această conectare nu încetinește viteza de funcționare a rețelei furnizorului în cazul unei performanțe insuficiente a DPI, motiv pentru care este utilizată de marii furnizori. DPI cu acest tip de conectare poate doar detecta o tentativă de a accesa conținut interzis, dar nu o poate opri. Pentru a ocoli această limitare și a bloca accesul la un site interzis, DPI trimite utilizatorului care solicită un URL blocat un pachet HTTP special formulat cu redirecționare către o pagină de țepușă a furnizorului, de parcă un astfel de răspuns ar fi fost trimis de resursa solicitată (falsificând adresa IP a expeditorului și secvența TCP). Având în vedere că DPI este situat fizic mai aproape de utilizator decât site-ul solicitat, răspunsul falsificat ajunge la dispozitivul utilizatorului mai repede decât răspunsul real de la site.

DPI activ

DPI activ — DPI conectat la rețeaua furnizorului într-un mod obișnuit, la fel ca orice alt dispozitiv de rețea. Furnizorul configurează rutarea astfel încât DPI să primească trafic de la utilizatori către IP-urile sau domeniile blocate, iar DPI ia decizia de a permite sau bloca traficul. DPI activ poate verifica atât traficul de ieșire, cât și cel de intrare, totuși, dacă furnizorul aplică DPI doar pentru a bloca site-uri din registru, de obicei, este configurat pentru a verifica doar traficul de ieșire.

Tipul de conectare influențează nu doar eficiența blocării traficului, ci și sarcina pe DPI, prin urmare există posibilitatea de a nu verifica tot traficul, ci doar un anumit tip:

DPI „obișnuit”

Prin „DPI obișnuit” se înțelege un DPI care filtrează un anumit tip de trafic doar pe cele mai comune porturi pentru acest tip. De exemplu, „DPI obișnuit” identifică și blochează traficul HTTP interzis doar pe portul 80, iar traficul HTTPS pe portul 443. Acest tip de DPI nu va urmări conținutul interzis dacă trimiteți o cerere cu un URL blocat pe un IP neblocat sau pe un port neobișnuit.

DPI „complet”

Spre deosebire de DPI „obișnuit”, acest tip de DPI clasifică traficul indiferent de IP și port. Astfel, site-urile blocate nu vor fi accesibile, chiar dacă utilizați un server proxy pe un port complet diferit și pe un IP neblocat.

Utilizarea DPI

Pentru a nu reduce viteza de transfer a datelor, este necesar să se utilizeze DPI „obișnuit” pasiv, care permite blocarea eficientă a oricăror resurse; în mod implicit, configurația arată astfel:

  • HTTP filtrează doar pe portul 80
  • HTTPS doar pe portul 443
  • BitTorrent doar pe porturile 6881-6889

Dar problemele încep atunci când resursa va folosi un alt port pentru a nu pierde utilizatorii, atunci va trebui să verificați fiecare pachet; un exemplu poate fi adus:

  • HTTP funcționează pe porturile 80 și 8080
  • HTTPS pe porturile 443 și 8443
  • BitTorrent pe orice altă gamă

Din această cauză, va trebui fie să treceți la DPI „activ”, fie să utilizați blocarea prin intermediul unui server DNS suplimentar.

Blocarea prin DNS

Una dintre metodele de blocare a accesului la resurse este interceptarea cererilor DNS cu ajutorul unui server DNS local și returnarea utilizatorului a unei adrese IP de „placeholder”, nu a resursei solicitate. Însă, aceasta nu garantează un rezultat sigur, deoarece există posibilitatea de a preveni înlocuirea adresei:

Opțiunea 1: Editarea fișierului hosts (pentru desktop)

Fișierul hosts este o parte integrantă a oricărui sistem de operare, ceea ce permite utilizarea acestuia în permanență. Pentru a accesa resursa, utilizatorul trebuie să:

  1. Află adresa IP a resursei solicitate
  2. Deschide fișierul hosts pentru editare (se necesită drepturi de administrator), situat în:
    • Linux: /etc/hosts
    • Windows: %WinDir%System32driversetchosts
  3. Adaugă o linie în formatul:
  4. Salvează modificările

Avantajul acestei metode este complexitatea sa și cerința de a avea drepturi de administrator.

Opțiunea 2: DoH (DNS over HTTPS) sau DoT (DNS over TLS)

Aceste metode permit protejarea împotriva înlocuirii cererilor DNS prin criptare, însă implementarea nu este susținută de toate aplicațiile. Să analizăm simplitatea configurării DoH pentru Mozilla Firefox versiunea 66 din perspectiva utilizatorului:

  1. Accesați adresa about:config în Firefox
  2. Confirmă că utilizatorul își asumă toate riscurile
  3. Schimbă valoarea parametrului network.trr.mode la:
    • 0 — dezactivează TRR
    • 1 — alegere automată
    • 2 — activează DoH implicit
  4. Schimbă parametrul network.trr.uri alegând serverul DNS
    • Cloudflare DNS: mozilla.cloudflare-dns.com/dns-query
    • Google DNS: dns.google.com/experimental
  5. Schimbă parametrul network.trr.boostrapAddress la:
    • Dacă a fost ales Cloudflare DNS: 1.1.1.1
    • Dacă a fost ales Google DNS: 8.8.8.8
  6. Schimbă valoarea parametrului network.security.esni.enabled pe true
  7. Verifică corectitudinea configurării folosind serviciul Cloudflare

Deși această metodă este mai complexă, nu necesită drepturi de administrator din partea utilizatorului, iar există multe alte metode de protecție a cererilor DNS, nefiind descrise în acest articol.

Opțiunea 3 (pentru dispozitive mobile):

Folosirea aplicației de la Cloudflare pentru Android și iOS.

Testare

Pentru a verifica absența accesului la resurse, a fost achiziționat temporar un domeniu blocat pe teritoriul RF:

Concluzie

Sper că acest articol va fi util și va încuraja nu doar administratorii să se aprofundeze în subiect, ci va oferi și înțelegerea că resursele vor fi întotdeauna de partea utilizatorului, iar căutarea de noi soluții trebuie să fie o parte esențială pentru ei.

Linkuri utile

Supliment la articolTestul pe Cloudflare nu poate fi efectuat în rețeaua operatorului Tele2, iar un DPI configurat corect blochează accesul la platforma de testare.
P.S. Acesta este primul provider care blochează corect resursele.

Sursa: habr.com

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster