Caratteristiche della configurazione DPI

In questo articolo non viene trattata la configurazione completa del DPI e tutto ciò che ne è correlato, e il valore scientifico del testo è minimo. Tuttavia, viene descritto un modo semplice per aggirare il DPI, che molte aziende non hanno considerato.

Caratteristiche della configurazione DPI

Avvertenza n. 1: questo articolo ha un carattere di ricerca, non invita nessuno a intraprendere azioni o a utilizzare quanto descritto. L'idea si basa su esperienze personali e eventuali coincidenze sono puramente casuali.

Avvertenza n. 2: nell'articolo non vengono svelati i segreti di Atlantide, la ricerca del Santo Graal o altri misteri dell'universo; tutto il materiale è di libero accesso ed è possibile che sia già stato descritto su Habr. (non l'ho trovato, apprezzerei un link)

Per coloro che hanno letto le avvertenze, iniziamo.

Cos'è il DPI?

Il DPI o Deep Packet Inspection è una tecnologia per la raccolta di dati statistici, il controllo e il filtraggio dei pacchetti di rete analizzando non solo le intestazioni dei pacchetti, ma anche il contenuto completo del traffico a livelli del modello OSI dal secondo in su, permettendo di rilevare e bloccare virus, filtrare informazioni che non soddisfano determinati criteri.

Esistono due tipi di connessione DPI, descritti di seguito ValdikSS su github:

DPI passivo

DPI, connesso a una rete di provider in parallelo (non in serie), sia tramite uno splitter ottico passivo, sia utilizzando la mirrorizzazione del traffico in uscita degli utenti. Questa connessione non rallenta la velocità di operazione della rete del provider in caso di prestazioni insufficienti del DPI, motivo per cui è utilizzata dai grandi provider. Il DPI con questo tipo di connessione può solo rilevare il tentativo di richiedere contenuti vietati, ma non può impedirlo. Per aggirare questa limitazione e bloccare l'accesso a un sito vietato, il DPI invia all'utente che richiede l'URL bloccato un pacchetto HTTP appositamente formato, con un reindirizzamento a una pagina di blocco del provider, come se tale risposta fosse stata inviata dalla risorsa richiesta (l'indirizzo IP del mittente e la sequenza TCP vengono falsificati). Poiché il DPI è fisicamente più vicino all'utente rispetto al sito richiesto, la risposta falsificata arriva al dispositivo dell'utente più velocemente rispetto alla vera risposta del sito.

DPI attivo

DPI attivo — DPI collegato alla rete del provider in modo consueto, come qualsiasi altro dispositivo di rete. Il provider configura il routing in modo che il DPI riceva il traffico dagli utenti verso indirizzi IP o domini bloccati, mentre il DPI decide se consentire o bloccare il traffico. Il DPI attivo può controllare sia il traffico in uscita che in entrata; tuttavia, se il provider applica il DPI solo per bloccare siti dalla lista, di solito viene configurato per controllare solo il traffico in uscita.

Il tipo di connessione non solo influisce sull'efficacia del blocco del traffico, ma anche sul carico del DPI, quindi esiste la possibilità di non controllare tutto il traffico, ma solo un certo tipo:

DPI "normale"

Per DPI "normale" si intende un DPI che filtra un certo tipo di traffico solo sulle porte più comuni per quel tipo. Ad esempio, il DPI "normale" rileva e blocca il traffico HTTP vietato solo sulla porta 80, il traffico HTTPS sulla porta 443. Questo tipo di DPI non monitorerà contenuti vietati se si invia una richiesta con un URL bloccato a un IP non bloccato o a una porta non standard.

DPI «Complet»

A differenza del DPI «normale», questo tipo di DPI classifica il traffico indipendentemente dall'indirizzo IP e dalla porta. Pertanto, i siti bloccati non saranno accessibili, anche se stai utilizzando un server proxy su una porta completamente diversa e un indirizzo IP non bloccato.

Utilizzo del DPI

Per non ridurre la velocità di trasmissione dei dati, è necessario utilizzare il DPI passivo «Normale», che consente di bloccare efficacemente qualsiasi risorsa; di default, la configurazione appare così:

  • Filtraggio HTTP solo sulla porta 80
  • HTTPS solo sulla porta 443
  • BitTorrent solo sulle porte 6881-6889

Ma i problemi iniziano se una risorsa utilizza un'altra porta, per non perdere utenti, in tal caso sarà necessario controllare ogni pacchetto, come esempio si può portare:

  • HTTP funziona sulle porte 80 e 8080
  • HTTPS sulle porte 443 e 8443
  • BitTorrent su qualsiasi altro intervallo

A causa di ciò, sarà necessario passare a un DPI «Attivo» o utilizzare blocchi mediante un server DNS aggiuntivo.

Blocco tramite DNS

Uno dei modi per bloccare l'accesso a una risorsa è intercettare la richiesta DNS utilizzando un server DNS locale e restituire all'utente un indirizzo IP di "placeholder" invece della risorsa richiesta. Ma questo non garantisce un risultato sicuro, poiché esiste la possibilità di impedire la sostituzione dell'indirizzo:

Opzione 1: Modifica del file hosts (per desktop)

Il file hosts è una parte integrante di qualsiasi sistema operativo, consentendo di utilizzarlo sempre. Per accedere alla risorsa, l'utente deve:

  1. Conoscere l'indirizzo IP della risorsa richiesta
  2. Aprire il file hosts per modificarlo (è necessaria l'autorizzazione da amministratore), situato in:
    • Linux: /etc/hosts
    • Windows: %WinDir%System32driversetchosts
  3. Aggiungere una riga nel formato:
  4. Salvare le modifiche

Il vantaggio di questo metodo è la sua complessità e la necessità di avere diritti di amministratore.

Opzione 2: DoH (DNS over HTTPS) o DoT (DNS over TLS)

Questi metodi consentono di proteggere dalle sostituzioni delle richieste DNS tramite crittografia, ma l'implementazione non è supportata da tutte le applicazioni. Consideriamo la semplicità di configurazione di DoH per Mozilla Firefox nella versione 66 dal lato dell'utente:

  1. Andare all'indirizzo about:config in Firefox
  2. Confermare che l'utente si assuma tutti i rischi
  3. Modifica il valore dell'impostazione network.trr.mode su:
    • 0 — disabilitare TRR
    • 1 — selezione automatica
    • 2 — abilita DoH come predefinito
  4. Modifica impostazione network.trr.uri selezionando il server DNS
    • Cloudflare DNS: mozilla.cloudflare-dns.com/dns-query
    • Google DNS: dns.google.com/experimental
  5. Modifica impostazione network.trr.boostrapAddress su:
    • Se è selezionato Cloudflare DNS: 1.1.1.1
    • Se è selezionato Google DNS: 8.8.8.8
  6. Modifica il valore dell'impostazione network.security.esni.enabled con true
  7. Verifica la configurazione tramite il servizio Cloudflare

Sebbene questo metodo sia più complesso, non richiede privilegi di amministratore per l'utente ed esistono molte altre modalità di protezione delle richieste DNS non descritte in questo articolo.

Opzione 3 (per dispositivi mobili):

Utilizzo dell'app di Cloudflare per Android e IOS.

Test

Per verificare l'assenza di accesso alle risorse, è stato temporaneamente acquistato un dominio bloccato sul territorio della Federazione Russa:

Conclusione

Spero che questo articolo sia utile e incoraggi non solo gli amministratori a capire meglio l'argomento, ma offra anche la consapevolezza che le risorse saranno sempre dalla parte dell'utente, e la ricerca di nuove soluzioni dovrebbe essere una parte integrante per loro.

Link utili

Estensione al di fuori dell'articoloIl test su Cloudflare non è superabile nella rete dell'operatore Tele2, e un DPI configurato correttamente blocca l'accesso al sito di test.
P.S. Questo è il primo provider che blocca correttamente le risorse.

Fonte: habr.com

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster