Tools

mumpeer

Un petit relais pour les connexions directes de Mumcord entre utilisateurs, par exemple pour le partage d’écran ou les images en taille réelle. Quand deux personnes ne peuvent pas se joindre directement, derrière un CGNAT, des pare-feu stricts ou dans des réseaux sans UDP, ou ne veulent pas montrer leur adresse IP, toutes deux se connectent au relais à la place. Il ne fait que transmettre les paquets chiffrés, comme un serveur TURN.

Dernière version: v0.1.0

À côté de ton serveur Mumble

Une communauté fait tourner mumpeer à côté de son serveur Mumble, avec le bot de relais mumbot peer. Le bot annonce le relais et distribue des jetons de courte durée. Le serveur Mumble reste inchangé.

Uniquement des utilisateurs vérifiés

Un jeton ne vaut que pour exactement deux certificats, une fois par côté et pendant 120 secondes par défaut. Le relais ne transmet jamais ailleurs et n’ouvre jamais de connexions lui-même, ce n’est donc pas un proxy ouvert.

Chiffré de bout en bout

Ce qui passe par le relais est une connexion chiffrée distincte entre les deux utilisateurs, liée à leurs certificats Mumble. Le relais ne peut ni la lire ni la modifier.

À travers presque tous les pare-feu

QUIC sur UDP ou, là où UDP est bloqué, TLS sur TCP. Les deux sur le port 443 et avec TLS 1.3.

Entièrement facultatif

Mumcord fonctionne aussi sans bot ni relais. Dans Mumcord, tu choisis : relais désactivé, seulement quand une connexion directe échoue, ou toujours.

Ce que l’opérateur peut voir

  • Les adresses IP des deux utilisateurs d’une session
  • Quels deux certificats communiquent entre eux
  • Quelle quantité de données circule et quand
  • Pas le contenu : il est chiffré de bout en bout. Mumcord te le dit avant que tu utilises un relais
  • Jamais consignés : adresses IP complètes, empreintes complètes de certificats, jetons et contenu des paquets

Lance-le avec Docker

Mets un long secret aléatoire dans .env sous le nom PEER_API_SECRET (par exemple avec openssl rand -hex 32). À partir de l’exemple de relais de Mumbot, enregistre mumpeer.example.toml sous le nom mumpeer.toml et renseigne-y public_host, et bot.example.toml sous le nom bot.toml. Démarre ensuite le relais et le bot ensemble :

docker-compose.yml
services:
  mumpeer:
    image: ghcr.io/mumcord/mumpeer:0.1.0
    restart: unless-stopped
    environment:
      MUMPEER_API_SECRET: ${PEER_API_SECRET:?set PEER_API_SECRET in .env}
    ports: ["443:443/udp", "443:443/tcp"]
    volumes:
      - ./mumpeer.toml:/config/mumpeer.toml:ro
      - mumpeer-data:/var/lib/mumpeer
  mumbot:
    image: ghcr.io/mumcord/mumbot:0.2.0
    command: ["peer"]
    restart: unless-stopped
    network_mode: "service:mumpeer"
    environment:
      MUMBOT_CONFIG: /config/bot.toml
      MUMBOT_PEER_API_SECRET: ${PEER_API_SECRET:?set PEER_API_SECRET in .env}
    volumes:
      - ./bot.toml:/config/bot.toml:ro
      - mumbot-data:/data
    healthcheck:
      disable: true
volumes:
  mumpeer-data:
  mumbot-data:

Au premier démarrage, l’empreinte du relais s’affiche dans le log. Le bot l’annonce à Mumcord, rien d’autre n’a besoin d’être partagé. Ouvre UDP et TCP sur le port 443, l’API reste entre le relais et le bot. Mumcord utilise le relais à partir de la version 0.5.0.

Contributeurs

Code source Guide complet dans le README → Idées et bugs →