- OpenGFW é um projeto de código aberto para Linux da Grande Muralha de Fogo da China que os próprios usuários podem montar
- "Agora não é mais necessário que só as pessoas no poder se divirtam; chegou a hora de tornar a censura possível para todos e dar poder às pessoas"
- Você pode começar a fazer filtragem no roteador de casa como um especialista e brincar de Big Brother
- Atenção: este projeto ainda está em estágio inicial de desenvolvimento e deve ser usado por sua conta e risco
Recursos
- Remontagem completa de IP/TCP, vários analisadores de protocolo (HTTP, TLS, QUIC, DNS, SSH, SOCKS4/5, WireGuard etc.)
- Detecção de "tráfego totalmente criptografado", como Shadowsocks
- Detecção de Trojan (protocolo de proxy) com base no Trojan-killer
- [Em andamento] Classificação de tráfego baseada em aprendizado de máquina
- Suporte completo a IPv4 e IPv6
- Balanceamento de carga multicore baseado em fluxo
- Offloading de conexão
- Mecanismo de regras poderoso baseado em expr
- Regras com hot reload (recarregadas com o sinal
SIGHUP)
- Framework flexível de analisadores e modificadores
- Implementação de IO extensível (apenas NFQueue é suportado)
- [Em andamento] Interface web
Casos de uso
- Bloqueio de anúncios
- Controle parental
- Proteção contra malware
- Prevenção de abuso de serviços de VPN/proxy
- Análise de tráfego (modo somente log)
- Ajudar você a realizar suas ambições ditatoriais (Help you fulfill your dictatorial ambitions)
Como usar
Build
go build
Executar
export OPENGFW_LOG_LEVEL=debug
./OpenGFW -c config.yaml rules.yaml
OpenWrt
- O OpenGFW foi testado e funciona no OpenWrt 23.05, e espera-se que funcione em outras versões também, embora isso não tenha sido verificado
- Instalação de dependências:
opkg install kmod-nft-queue kmod-nf-conntrack-netlink
Exemplo de configuração
Ações suportadas
allow: permite a conexão, sem processamento adicional
block: bloqueia a conexão, sem processamento adicional
drop: no caso de UDP, descarta o pacote que acionou a regra e continua processando os pacotes futuros do mesmo fluxo. No caso de TCP, é igual a block
modify: no caso de UDP, modifica o pacote que acionou a regra usando o modificador fornecido e continua processando os pacotes futuros do mesmo fluxo. No caso de TCP, é igual a allow
4 comentários
kkkkkkkkkkkkkkkkkkkkk
kkkkkk que engraçado
Comentários no Hacker News