Quelques questions de néophyte sur le service noeud duniter

Bonjour,

J’ai maintenant un noeud (duniter.pini.fr) qui semble opérationnel. Il m’indique des connexions WS2P entrantes et sortantes, donc j’imagine que ça marche.

J’ai toutefois quelques questions pour lesquelles mes recherches ne m’ont pas aidées :

  1. Configuration de l’accès WS2P pour un reverse-proxy nginx
    Je comprends que WS2P utilise le protocole websocket, et j’ai lu en plusieurs endroits qu’il fallait un traitement spécial côté reverse-proxy pour ce protocole. En particulier dans la doc nginx. J’utilise donc la config ci-dessous. Me confirmez-vous que c’est bien nécessaire ?
location /websocket/ws2p {
 proxy_http_version 1.1;
 proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
 proxy_set_header   Host            $host;
 proxy_set_header   X-Real-IP       $remote_addr;
 proxy_set_header   Upgrade         $http_upgrade;
 proxy_set_header   Connection      "upgrade";
 proxy_pass http://backend_w2sp;
}
  1. Étant derrière un reverse-proxy, les logs affichent l’IP de mon proxy au lieu de celles des clients. Y a-t-il des options prévues pour honorer les en-têtes X-Real-IP ou X-Forwarded-For ?
  2. Dans le fichier de conf à quoi sert la section dos et en particulier son champ whitelist dans le fichier de configuration ? Je me dis qu’il y a peut-être une chance que ce soit lié à la question précédente…
  3. Il semble que la question de la configuration des endpoints ne soit pas très claire. En effet, dans plusieurs exemples (et en particulier celui de @vit) je vois que le champ endpoint est renseigné pour BMA et / ou WS2P. Ce n’est pas du tout le cas dans mon fichier de conf, et pourtant la log de démarrage mentionne bien les endpoints BMA et WS2P. Pourquoi n’ai-je pas besoin de cette configuration et d’autre si ?
2021-04-08T22:45:05+00:00 - info: BMA access: duniter.pini.fr:443
2021-04-08T22:45:05+00:00 - info: WS2P access: duniter.pini.fr :443 websocket/ws2p
  1. Que signifie la colonne « Free Rooms » dans l’onglet « Réseau » de l’interface web ?

Grand merci par avance !

1 Like
  1. Tu as parfaitement bien fait, il faut upgrader le protocole, voir ma config nginx (template Ansible Jinja2) :
    nginx_app.conf (2,0 Ko)

  2. Je ne crois pas, tu pourrais ajouter cette demande dans les tickets du dépôt de Duniter. Vérifie bien avant qu’il n’y a pas déjà un ticket sur le sujet.

  3. DOS, c’est pour Denial of Service. Cela limite le nombre de requêtes par seconde sur BMA, sauf pour les serveurs whitelistés. Si je ne dis pas de bêtise…

  4. Oui effectivement, elle mérite une refonte. Par défaut, si tu actives BMA, tu as un endpoint BASIC_MERCKLED_API (non sécurisé). De mémoire, si tu utilise le port 443, alors Duniter va détecter que tu veux un endpoint BMAS (sécurisé SSL) et ça fonctionnera. Pour mon, cas, ne voulant pas utiliser le port 443 pour Duniter, j’ai été obligé de déclarer mon endpoint BMAS dans le fichier de conf. Bref, déclarer un endpoint manuellement n’est nécessaire que si tu veux un BMAS sur un port différent de 443. Pour WS2P, je ne sais pas.

  5. Tu as un nombre de slots disponibles configurable pour les connections WS2P entrantes et sortantes. Tu dois voir dans l’onglet réseau un chiffre comme 5/10 qui signifie 5 connections WS2P entrantes actives sur 10 slots disponibles.

     "ws2p": {
      "maxPublic": 10,
      "maxPrivate": 10,

@elois si tu peux jeter un œil sur mes réponses… :wink:

1 Like