Pare o Discourse de vazar seu IP de Host ao pré-carregar links/recursos

Refiro-me a esta postagem aqui: Discourse Link previews through a proxy server?

Em primeiro lugar, desculpe ressuscitar esta postagem de quase 10 anos, mas eu realmente não consigo acreditar que isso não incomode mais ninguém?

Eu agora consegui esconder meu servidor host e seu endereço IP atrás do cloudflare e, depois de horas de busca, consegui permitir o tráfego de rede de entrada apenas do cloudflare para que os scanners de porta não descubram acidentalmente o fórum sob o endereço IP. A segurança é simplesmente muito importante para mim. O servidor de e-mail é externo, quase tudo está protegido - mas é uma piada que alguém só precise inserir uma imagem isca na postagem e o Discourse a baixe diretamente para incorporá-la ou algo parecido. Eu não consegui encontrar nada que desative isso em lugar algum. Mesmo esses oneboxes, que deveriam ser as pré-visualizações - mesmo definindo-os como 0 não faz nada - o pixel de registro de IP foi incorporado imediatamente e poderia revelar o IP do host aos atacantes - então a proteção do cloudflare é absolutamente inútil neste caso. Ou você protege seus serviços adequadamente ou não protege - de que nos serve o cloudflare se o atacante não precisa de 5 minutos para se registrar, postar uma imagem e assim descobrir o IP real do host?

Tenho tentado por horas hoje usando IA, tor e torsocks - mas nunca funcionou de verdade. A reconstrução geralmente falha assim que me atrevo a mudar algo nas configurações de ambiente. Se alguém conseguiu fazer isso de alguma forma, estou quase implorando para que compartilhe conosco. Na maioria das vezes, a reconstrução falha porque o acesso ao Github não funciona, pois o Github provavelmente proíbe o tráfego Tor.

E tudo isso não precisaria acontecer se você pudesse simplesmente desativar a pré-carregamento dos links pelo Discourse.

Estou realmente desesperado.

Isto poderia ajudar?

Não foi construído exatamente para isso (o objetivo principal era melhorar a confiabilidade), mas pode fazer parte de uma solução.

1 curtida

obrigado! Adicionei seu plugin e reconstruí o discourse - depois disso, pensei que, se eu marcasse as duas primeiras caixas de seleção, forçaria o uso de um proxy - não importa se um está configurado ou não - mas não importa se eu coloco as informações do proxy ou se os valores estavam vazios e apenas as duas caixas de seleção foram ativadas - ele ainda carrega o pixel de rastreamento com o endereço IP do VPS :confused:

Vou tentar agora configurar o docker completo ou apenas a imagem do discourse para usar proxy, talvez funcione com um provedor de proxy usual e não falhe na reconstrução como com o tor

2 curtidas

ah que pena. A rota de plugin ainda é o caminho certo a seguir, independentemente da solução, pois torna a manutenção muito mais fácil

1 curtida

Você pode simplesmente configurar algo como o Tinyproxy em um host separado e configurar variáveis de ambiente para usá-lo. Certifique-se de desativar o encaminhamento de cabeçalho IP no Tinyproxy e pode ser útil excluir o Github para facilitar a instalação de temas também.

Você deve estar usando tal mecanismo quando o Discourse estiver em execução, e não quando estiver sendo construído.

2 curtidas

Muito obrigado a ambos pelas sugestões e ideias!

Vou desistir disso por enquanto; estou trabalhando nisso há tempo demais. Pensei que não seria tão difícil, mas agora estou um pouco perdido com todos os tópicos de proxy como SOCKS e SOCKS5. Presumi que seria tão simples quanto adicionar alguns parâmetros ou configurações à seção env do app.yml, mas parece que precisaria investir muitas mais horas em uma solução personalizada. Porque, em geral, estou tendo problemas para obter uma conexão com saída de proxy para, por exemplo, https://check.torproject.org/api/ip com o curl. Então, acho que teria que mergulhar muito mais fundo no proxy.

Teria sido bom se eu pudesse ocultar o IP do host de todas as maneiras que sei que ele pode ser vazado, mas acho que essa é a contrapartida de usar uma plataforma de fórum tão poderosa como o Discourse. O Discourse tem tantas opções de configuração; seria possível solicitar um recurso que impeça o pré-carregamento de links e pré-visualizações ou, mais geralmente, o carregamento de recursos externos fornecidos por usuários? Não consegui encontrar um subfórum de solicitações aqui :frowning:

[quote=“RGJ, post:5, topic:399012”]Você deve estar usando tal mecanismo quando o Discourse está rodando, não quando ele está sendo construído.

[/quote]

Sim, mas eu gostaria que a configuração do proxy persistisse após atualizar ou reconstruir o Discourse. Trabalhar com Docker pode ser um pouco complicado.