Cet article ne couvre pas la configuration complÚte du DPI et tout ce qui y est lié, et la valeur scientifique du texte est minimale. Cependant, il décrit un moyen simple de contourner le DPI, ce que de nombreuses entreprises ont négligé.

Avertissement n°1 : cet article a un caractÚre de recherche, n'incite personne à entreprendre quoi que ce soit et à utiliser quoi que ce soit. L'idée est basée sur l'expérience personnelle, et toute coïncidence est fortuite.
Avertissement n°2 : l'article ne révÚle pas les secrets de l'Atlantide, la recherche du Saint Graal et d'autres mystÚres de l'univers, tout le matériel est accessible librement et a probablement été décrit plusieurs fois sur le Hub. (je n'ai pas trouvé, je serais reconnaissant pour un lien)
Pour ceux qui ont lu les avertissements, commençons.
Qu'est-ce que le DPI ?
Le DPI ou Deep Packet Inspection est une technologie de collecte de donnĂ©es statistiques, de vĂ©rification et de filtrage des paquets rĂ©seau en analysant non seulement les en-tĂȘtes des paquets, mais aussi le contenu complet du trafic aux niveaux du modĂšle OSI Ă partir du deuxiĂšme niveau et plus, ce qui permet de dĂ©tecter et de bloquer les virus, de filtrer l'information ne satisfaisant pas les critĂšres spĂ©cifiĂ©s.
Il existe deux types de connexion DPI qui sont décrits :
DPI passif
DPI connectĂ© dans le rĂ©seau du fournisseur parallĂšlement (non en sĂ©rie) soit via un sĂ©parateur optique passif, soit en utilisant la mise en miroir du trafic sortant des utilisateurs. Ce type de connexion ne ralentit pas la vitesse de travail du rĂ©seau du fournisseur en cas d'insuffisance de performance du DPI, raison pour laquelle il est utilisĂ© par les grands fournisseurs. Le DPI avec ce type de connexion peut techniquement seulement dĂ©tecter une tentative de demande de contenu interdit, mais ne peut pas l'arrĂȘter. Pour contourner cette limitation et bloquer l'accĂšs Ă un site interdit, le DPI envoie Ă l'utilisateur demandant une URL bloquĂ©e un paquet HTTP spĂ©cialement formĂ© redirigeant vers une page de relais du fournisseur, comme si une telle rĂ©ponse avait Ă©tĂ© envoyĂ©e par la ressource demandĂ©e (l'adresse IP de l'expĂ©diteur et la sĂ©quence TCP sont falsifiĂ©es). Ătant donnĂ© que le DPI est physiquement plus proche de l'utilisateur que le site demandĂ©, la rĂ©ponse falsifiĂ©e parvient Ă l'appareil de l'utilisateur plus rapidement que la vĂ©ritable rĂ©ponse du site.
DPI actif
DPI actif â DPI connectĂ© au rĂ©seau du fournisseur de maniĂšre habituelle, comme tout autre appareil rĂ©seau. Le fournisseur configure le routage de sorte que le DPI reçoive le trafic des utilisateurs vers des adresses IP ou des domaines bloquĂ©s, et le DPI prend ensuite la dĂ©cision de laisser passer ou de bloquer le trafic. Le DPI actif peut vĂ©rifier Ă la fois le trafic sortant et entrant, cependant, si le fournisseur applique le DPI uniquement pour bloquer des sites de l'annuaire, il est le plus souvent configurĂ© pour vĂ©rifier uniquement le trafic sortant.
Le type de connexion influence non seulement l'efficacité du blocage du trafic, mais aussi la charge sur le DPI, c'est pourquoi il est possible de ne pas vérifier tout le trafic, mais uniquement un certain:
DPI « ordinaire »
Par DPI « ordinaire », on entend un DPI qui filtre un certain type de trafic uniquement sur les ports les plus courants pour ce type. Par exemple, le DPI « ordinaire » dĂ©tecte et bloque le trafic HTTP interdit uniquement sur le port 80, et le trafic HTTPS sur le port 443. Ce type de DPI ne surveillera pas le contenu interdit si vous envoyez une requĂȘte avec une URL bloquĂ©e vers une IP non bloquĂ©e ou un port non standard.
DPI « complet »
Contrairement au DPI « ordinaire », ce type de DPI classe le trafic indĂ©pendamment de l'adresse IP et du port. Ainsi, les sites bloquĂ©s ne s'ouvriront pas, mĂȘme si vous utilisez un serveur proxy sur un port complĂštement diffĂ©rent et une adresse IP non bloquĂ©e.
Utilisation du DPI
Pour ne pas réduire la vitesse de transmission des données, il est nécessaire d'utiliser un DPI passif « ordinaire », qui permet de bloquer efficacement tous les ressources. Par défaut, la configuration est la suivante:
- Filtrer HTTP uniquement sur le port 80
- HTTPS uniquement sur le port 443
- BitTorrent uniquement sur les ports 6881-6889
Mais des problÚmes commencent si la ressource utilise un autre port, pour ne pas perdre des utilisateurs, alors il faudra vérifier chaque paquet, par exemple:
- HTTP fonctionne sur les ports 80 et 8080
- HTTPS sur les ports 443 et 8443
- BitTorrent sur n'importe quelle autre plage
à cause de cela, il faudra soit passer à un DPI « actif », soit utiliser un blocage via un serveur DNS supplémentaire.
Blocage via DNS
Une des façons de bloquer l'accĂšs Ă une ressource est d'intercepter la requĂȘte DNS Ă l'aide d'un serveur DNS local et de retourner Ă l'utilisateur une adresse IP de "placeholder" au lieu de la ressource demandĂ©e. Cependant, cela ne garantit pas un rĂ©sultat sĂ»r, car il existe des moyens d'empĂȘcher le dĂ©tournement de l'adresse :
Option 1 : Modifier le fichier hosts (pour desktop)
Le fichier hosts est une partie intégrante de tout systÚme d'exploitation, permettant de l'utiliser en permanence. Pour accéder à la ressource, l'utilisateur doit :
- Connaitre l'adresse IP de la ressource requise
- Ouvrir le fichier hosts en mode édition (des droits d'administrateur sont nécessaires), situé dans :
- Linux : /etc/hosts
- Windows : %WinDir%System32driversetchosts
- Ajouter une ligne au format :
- Sauvegarder les modifications
L'avantage de cette méthode est sa complexité et la nécessité de disposer de droits d'administrateur.
Option 2 : DoH (DNS over HTTPS) ou DoT (DNS over TLS)
Ces mĂ©thodes permettent de protĂ©ger contre le dĂ©tournement de requĂȘtes DNS grĂące au chiffrement, mais leur mise en Ćuvre n'est pas prise en charge par toutes les applications. Examinons la simplicitĂ© de la configuration de DoH pour Mozilla Firefox version 66 du point de vue de l'utilisateur :
- Accéder à l'adresse dans Firefox
- Confirmer que l'utilisateur assume tous les risques
- Modifier la valeur du paramĂštre network.trr.mode sur :
- 0 â dĂ©sactiver TRR
- 1 â choix automatique
- 2 â activer DoH par dĂ©faut
- Modifier le paramĂštre network.trr.uri en choisissant le serveur DNS
- DNS Cloudflare :
- DNS Google :
- Modifier le paramĂštre network.trr.boostrapAddress sur :
- Si Cloudflare DNS est sélectionné : 1.1.1.1
- Si Google DNS est sélectionné : 8.8.8.8
- Modifier la valeur du paramĂštre network.security.esni.enabled sur true
- Vérifier la configuration à l'aide du
Bien que cette mĂ©thode soit plus complexe, elle ne nĂ©cessite pas de droits d'administrateur pour l'utilisateur, et il existe de nombreuses autres mĂ©thodes de protection des requĂȘtes DNS, non dĂ©crites dans cet article.
Option 3 (pour appareils mobiles) :
Utiliser l'application de Cloudflare pour et .
Test
Pour vérifier l'absence d'accÚs à des ressources, un domaine bloqué sur le territoire de la Russie a été temporairement acquis :
Conclusion
J'espÚre que cet article sera utile et incitera non seulement les administrateurs à approfondir le sujet, mais aussi à faire comprendre que les ressources seront toujours du cÎté de l'utilisateur, et la recherche de nouvelles solutions devrait faire partie intégrante de ce processus.
Liens utiles
ComplĂ©ment hors articleLe test sur Cloudflare ne peut pas ĂȘtre passĂ© sur le rĂ©seau de l'opĂ©rateur Tele2, et un DPI correctement configurĂ© bloque l'accĂšs Ă la plateforme de test.
P.S. C'est le premier fournisseur Ă bloquer correctement les ressources.
Source : habr.com
