Arrêtez Discourse de révéler son IP hôte lors du préchargement de liens/ressources

Je fais référence à cette publication ici : Discourse Link previews through a proxy server?

Tout d’abord, désolé de faire remonter ce sujet vieux de près de 10 ans, mais je n’arrive sérieusement pas à croire que cela ne dérange personne d’autre ?

J’ai maintenant réussi à masquer mon serveur hôte et son adresse IP derrière Cloudflare et, après des heures de recherche, j’ai réussi à n’autoriser le trafic réseau entrant que depuis Cloudflare afin que les scanners de ports ne puissent pas découvrir accidentellement le forum sous l’adresse IP. La sécurité est tout simplement très importante pour moi. Le serveur de messagerie est externe, presque tout est protégé - mais c’est une blague que quelqu’un n’ait qu’à insérer une image d’appât dans la publication et que Discourse la télécharge directement pour l’intégrer ou quelque chose de similaire. Je n’ai rien trouvé qui désactive cela. Même ces aperçus (oneboxes) - même en les réglant sur 0, cela ne fait rien - le pixel de journalisation IP était immédiatement intégré et pouvait révéler l’IP de l’hôte aux attaquants - la protection de Cloudflare est donc absolument inutile dans ce cas. Soit vous protégez vos services correctement, soit pas du tout - à quoi nous sert Cloudflare si l’attaquant n’a pas besoin de 5 minutes pour s’inscrire, publier une image et ainsi découvrir la véritable IP de l’hôte ?

J’essaie depuis des heures aujourd’hui avec l’IA, Tor et torsocks - mais cela n’a jamais vraiment fonctionné. La reconstruction plante généralement dès que j’ose changer quelque chose dans les paramètres d’environnement. Si quelqu’un a réussi à le faire, je le supplie presque de partager cela avec nous. La plupart du temps, la reconstruction échoue parce que l’accès à Github ne fonctionne pas, car Github interdit probablement le trafic Tor.

Et tout cela ne serait pas nécessaire si l’on pouvait simplement désactiver le chargement anticipé des liens par Discourse.

Je suis vraiment désespéré.

Ceci pourrait-il aider ?

Il n’a pas été conçu exactement pour cela (l’objectif principal était d’améliorer la fiabilité), mais pourrait faire partie d’une solution.

1 « J'aime »

merci ! J’ai ajouté votre plugin et reconstruit discourse - après cela, j’ai pensé que si je cochais les deux premières cases, cela forcerait l’utilisation d’un proxy - peu importe si un proxy est configuré ou non - mais cela n’a pas d’importance si je saisis les informations du proxy ou si les valeurs étaient vides et que seules les deux cases étaient cochées - il charge toujours le pixel de suivi avec l’adresse IP du VPS :confused:

Je vais essayer maintenant de configurer le docker complet ou seulement l’image discourse pour utiliser un proxy, peut-être que cela fonctionnera avec un fournisseur de proxy habituel et ne fera pas échouer la reconstruction comme avec tor

2 « J'aime »

dommage. La voie des plugins reste la bonne approche, quelle que soit la solution, car elle facilite beaucoup la maintenance.

1 « J'aime »

Vous pouvez simplement configurer quelque chose comme Tinyproxy sur un hôte séparé et configurer les variables d’environnement pour l’utiliser. Assurez-vous de désactiver le transfert d’en-tête IP sur Tinyproxy et il pourrait être utile d’exclure Github pour faciliter l’installation de thèmes également.

Vous devriez utiliser un tel mécanisme lorsque Discourse fonctionne, et non lorsqu’il est en cours de construction.

2 « J'aime »

Merci beaucoup à vous deux pour vos suggestions et idées !

J’abandonne pour l’instant ; j’y travaille depuis beaucoup trop longtemps. Je pensais que ce ne serait pas si difficile, mais maintenant je suis un peu perdu avec tous les sujets de proxy comme SOCKS et SOCKS5. Je supposais qu’il suffirait d’ajouter quelques paramètres ou configurations à la section env de app.yml, mais il semble que je devrais investir beaucoup plus d’heures dans une solution personnalisée. Parce qu’en général, j’ai du mal à établir une connexion avec un proxy sortant vers, par exemple, https://check.torproject.org/api/ip avec curl. Donc, je pense que je devrais plonger beaucoup plus profondément dans le proxying.

J’aurais aimé pouvoir masquer l’IP de l’hôte de toutes les manières dont je sais qu’elle peut fuiter, mais je suppose que c’est le compromis pour utiliser une plateforme de forum aussi puissante que Discourse. Discourse a tellement d’options de configuration ; serait-il possible de demander une fonctionnalité qui l’empêche de précharger les liens et les aperçus ou, plus généralement, de récupérer les ressources externes fournies par les utilisateurs ? Je n’ai pas pu trouver de sous-forum de requêtes ici :frowning:

[quote=“RGJ, post:5, topic:399012”]Vous devriez utiliser un tel mécanisme lorsque Discourse fonctionne, et non lorsqu’il est en cours de construction.

[/quote]

Oui, mais j’aimerais que la configuration du proxy persiste après la mise à jour ou la reconstruction de Discourse. Travailler avec Docker peut être un peu délicat.