- OpenGFW es un proyecto de código abierto para Linux que permite a los usuarios crear su propia versión del Gran Cortafuegos de China (Great Firewall of China)
- "Ya no hace falta que solo quienes tienen poder se diviertan; es momento de hacer que la censura sea accesible para cualquiera y así dar poder a la gente"
- Puedes empezar a filtrar en el router de tu casa como un experto y jugar a ser Big Brother
- Precaución: este proyecto todavía está en una etapa temprana de desarrollo y debe usarse bajo la responsabilidad del usuario
Funciones
- Reensamblado completo de IP/TCP, varios analizadores de protocolos (HTTP, TLS, QUIC, DNS, SSH, SOCKS4/5, WireGuard, etc.)
- Detección de "tráfico completamente cifrado" como Shadowsocks
- Detección de Trojan (protocolo proxy) basada en Trojan-killer
- [En progreso] Clasificación de tráfico basada en aprendizaje automático
- Soporte completo para IPv4 e IPv6
- Balanceo de carga multinúcleo basado en flujos
- Offloading de conexiones
- Potente motor de reglas basado en expr
- Reglas con hot reload (recarga mediante la señal
SIGHUP)
- Framework flexible de analizadores y modificadores
- Implementación de IO extensible (solo compatible con NFQueue)
- [En progreso] Interfaz web
Casos de uso
- Bloqueo de anuncios
- Control parental
- Protección contra malware
- Prevención del abuso de servicios VPN/proxy
- Análisis de tráfico (modo solo registro)
- Ayudarte a cumplir tus ambiciones dictatoriales (Help you fulfill your dictatorial ambitions)
Uso
Compilar
go build
Ejecutar
export OPENGFW_LOG_LEVEL=debug
./OpenGFW -c config.yaml rules.yaml
OpenWrt
- Se probó que OpenGFW funciona en OpenWrt 23.05, y se espera que también funcione en otras versiones, aunque no ha sido verificado
- Instalar dependencias:
opkg install kmod-nft-queue kmod-nf-conntrack-netlink
Configuración de ejemplo
Acciones compatibles
allow: permite la conexión, sin procesamiento adicional
block: bloquea la conexión, sin procesamiento adicional
drop: en UDP, descarta el paquete que activó la regla y sigue procesando los futuros paquetes del mismo flujo. En TCP, es igual que block
modify: en UDP, modifica el paquete que activó la regla usando el modificador indicado y sigue procesando los futuros paquetes del mismo flujo. En TCP, es igual que allow
4 comentarios
jajajajajajajajajajaja
Jajajaja, está divertido.
Opiniones de Hacker News