- 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
MDRRRRRRRRRRRRRRRR
Haha, c’est amusant.
Avis Hacker News