22 pontos por xguru 2024-03-10 | 4 comentários | Compartilhar no WhatsApp
  • 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

 
[Este comentário foi ocultado.]
 
slimeyslime 2024-03-15

kkkkkkkkkkkkkkkkkkkkk

 
nemorize 2024-03-10

kkkkkk que engraçado

 
xguru 2024-03-10

Comentários no Hacker News

  • Vi pessoas no Twitter zombando deste projeto, mas ele também é realmente necessário para algumas pessoas. Tentei bloquear um produto de enviar dados suspeitos para um servidor doméstico, mas falhei em encontrar todos os servidores DoH sentado diante do Wireshark. Graças a este projeto, espero que chegue o dia em que isso possa ser bloqueado mesmo usando DoH, sem precisar adicionar domínios à whitelist de TLS.
  • O termo "tráfego totalmente criptografado" é confuso e só pode ser entendido corretamente quando o contexto é preciso. Minha sugestão pessoal é que termos como "High Entropy" (HighE) são mais específicos do que "totalmente criptografado".
  • Seria engraçado se este projeto acabasse virando algo como War Thunder. Pode até surgir a situação de um funcionário público chinês, ressentido porque isso é diferente de como o GFW real funciona, abrir um pull request.
  • O item da lista de recursos "satisfaz suas ambições ditatoriais" alegrou meu dia.
  • Há casos de uso reais para um produto assim. Por exemplo, em escolas, esse tipo de produto é necessário para garantir o mínimo de distrações. Mas há preocupação com malware. Quem pode auditar a equipe por trás deste projeto?
  • Ter um modelo de como algo funciona ajuda muito na exploração de formas de mitigação.
  • Este projeto é como um míssil de código aberto para regimes como Irã e Coreia do Norte. Eu o respeito, mas alguns governos podem abusar disso para oprimir a liberdade.
  • É muito adequado para que pessoas fora da China continental experimentem o que os chineses vivenciam online.
  • Agora o governo iraniano pode parar de pagar à China para usar essa tecnologia para bloquear o acesso dos iranianos à internet aberta. É curioso como o código aberto, embora busque abertura, pode produzir exatamente o resultado oposto.
  • Fico chocado que ninguém pareça preocupado com o fato de este projeto poder ajudar outros governos ditatoriais a reduzir a barreira de implementação.