22 points par xguru 2024-03-10 | 4 commentaires | Partager sur WhatsApp
  • OpenGFW est un logiciel open source pour Linux permettant aux utilisateurs de construire leur propre version du grand pare-feu chinois (Great Firewall of China)
  • « Il n’y a plus de raison pour que seules les personnes au pouvoir s’amusent ; il est temps de rendre la censure accessible à tous afin de redonner du pouvoir aux gens »
  • Permet de commencer à filtrer sur le routeur de la maison comme un expert, et de jouer à Big Brother
  • Attention : ce projet en est encore à un stade précoce de développement et doit être utilisé sous la responsabilité de l’utilisateur

Fonctionnalités

  • Réassemblage complet IP/TCP, analyseurs pour divers protocoles (HTTP, TLS, QUIC, DNS, SSH, SOCKS4/5, WireGuard, etc.)
  • Détection de trafic « entièrement chiffré » comme Shadowsocks
  • Détection de Trojan (protocole proxy) basée sur Trojan-killer
  • [En cours] Classification du trafic basée sur le machine learning
  • Prise en charge complète d’IPv4 et d’IPv6
  • Répartition de charge multicœur basée sur les flux
  • Offloading des connexions
  • Moteur de règles puissant basé sur expr
  • Règles rechargeables à chaud (rechargement via le signal SIGHUP)
  • Framework flexible d’analyseurs et de modificateurs
  • Implémentation d’E/S extensible (NFQueue uniquement pris en charge)
  • [En cours] Interface web

Cas d’usage

  • Blocage des publicités
  • Contrôle parental
  • Protection contre les logiciels malveillants
  • Prévention des abus des services VPN/proxy
  • Analyse du trafic (mode journalisation uniquement)
  • Vous aide à satisfaire vos ambitions dictatoriales (Help you fulfill your dictatorial ambitions)

Utilisation

Build

  go build  

Exécution

  export OPENGFW_LOG_LEVEL=debug  
  ./OpenGFW -c config.yaml rules.yaml  

OpenWrt

  • OpenGFW a été testé avec OpenWrt 23.05 et devrait aussi fonctionner sur d’autres versions, sans que cela ait été vérifié
  • Installation des dépendances :
    opkg install kmod-nft-queue kmod-nf-conntrack-netlink

Exemple de configuration

Actions prises en charge

  • allow : autorise la connexion, sans traitement supplémentaire
  • block : bloque la connexion, sans traitement supplémentaire
  • drop : pour UDP, abandonne le paquet ayant déclenché la règle puis continue de traiter les futurs paquets du même flux. Pour TCP, identique à block
  • modify : pour UDP, modifie le paquet ayant déclenché la règle avec le modificateur fourni puis continue de traiter les futurs paquets du même flux. Pour TCP, identique à allow

4 commentaires

 
[Ce commentaire a été masqué.]
 
slimeyslime 2024-03-15

MDRRRRRRRRRRRRRRRR

 
nemorize 2024-03-10

Haha, c’est amusant.

 
xguru 2024-03-10

Avis Hacker News

  • J’ai vu des gens se moquer de ce projet sur Twitter, mais certaines personnes en ont réellement besoin. J’ai essayé d’empêcher un produit d’envoyer des données suspectes à un serveur domestique, mais je n’y suis pas parvenu, car je n’ai pas réussi à trouver tous les serveurs DoH en restant devant Wireshark. J’espère que, grâce à ce projet, on arrivera un jour à bloquer cela même avec DoH, sans avoir à ajouter les domaines à une liste blanche TLS.
  • L’expression « trafic entièrement chiffré » est confuse et ne peut être correctement comprise que si le contexte est précis. À titre personnel, je pense qu’un terme comme « High Entropy » (HighE) est plus spécifique que « entièrement chiffré ».
  • Ce serait amusant que ce projet devienne comme War Thunder. On pourrait voir un fonctionnaire chinois rancunier ouvrir une pull request au motif que cela ne correspond pas à la manière dont le vrai GFW fonctionne.
  • L’élément « satisfait vos ambitions dictatoriales » dans la liste des fonctionnalités a égayé ma journée.
  • Il existe de vrais cas d’usage pour ce type de produit. Par exemple, dans les écoles, on peut en avoir besoin pour limiter au maximum les distractions. Mais je m’inquiète des malwares. Qui peut auditer l’équipe derrière ce projet ?
  • Avoir un modèle de compréhension du fonctionnement de quelque chose est très utile pour explorer des méthodes d’atténuation.
  • Ce projet ressemble à un missile open source pour des régimes comme l’Iran et la Corée du Nord. Je respecte cela, mais certains gouvernements pourraient en abuser pour réprimer les libertés.
  • C’est très bien adapté pour permettre à des personnes hors de Chine continentale d’expérimenter ce que les Chinois vivent en ligne.
  • Désormais, le gouvernement iranien pourrait arrêter de payer la Chine pour utiliser cette technologie afin d’empêcher les Iraniens d’accéder à l’Internet ouvert. C’est amusant de voir que l’open source, qui vise l’ouverture, peut produire un résultat totalement inverse.
  • Je suis choqué que personne ne semble s’inquiéter du fait que ce projet puisse aider d’autres gouvernements dictatoriaux à réduire les barrières à l’implémentation.