Tools

mumpeer

Un piccolo relay per le connessioni dirette di Mumcord tra utenti, per esempio per la condivisione dello schermo o le immagini a grandezza naturale. Quando due persone non riescono a raggiungersi direttamente, dietro CGNAT, firewall rigidi o in reti senza UDP, oppure non vogliono mostrare il proprio indirizzo IP, entrambe si collegano al relay. Esso si limita a inoltrare i pacchetti cifrati, come un server TURN.

Ultima versione: v0.1.0

Accanto al tuo server Mumble

Una community fa girare mumpeer accanto al proprio server Mumble, insieme al bot relay mumbot peer. Il bot annuncia il relay e distribuisce token di breve durata. Il server Mumble resta invariato.

Solo utenti verificati

Un token vale solo per esattamente due certificati, una volta per lato e per 120 secondi per impostazione predefinita. Il relay non inoltra mai altrove e non apre mai connessioni da solo, quindi non è un proxy aperto.

Cifrato end-to-end

Ciò che passa dal relay è una connessione cifrata separata tra i due utenti, vincolata ai loro certificati Mumble. Il relay non può né leggerla né modificarla.

Attraverso quasi ogni firewall

QUIC su UDP o, dove UDP è bloccato, TLS su TCP. Entrambi sulla porta 443 e con TLS 1.3.

Del tutto facoltativo

Mumcord funziona anche senza bot e relay. In Mumcord scegli tu: relay disattivato, solo quando una connessione diretta fallisce, oppure sempre.

Cosa può vedere l’operatore

  • Gli indirizzi IP di entrambi gli utenti di una sessione
  • Quali due certificati parlano tra loro
  • Quanti dati scorrono e quando
  • Non il contenuto: è cifrato end-to-end. Mumcord te lo dice prima che tu usi un relay
  • Mai registrati: indirizzi IP completi, hash completi dei certificati, token e contenuto dei pacchetti

Avvialo con Docker

Metti un segreto lungo e casuale in .env come PEER_API_SECRET (per esempio da openssl rand -hex 32). Dall’esempio di relay di Mumbot salva mumpeer.example.toml come mumpeer.toml e imposta in esso public_host, e bot.example.toml come bot.toml. Poi avvia insieme relay e bot:

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:

Al primo avvio l’impronta del relay compare nel log. Il bot la annuncia a Mumcord, non serve condividere altro. Apri UDP e TCP sulla porta 443, l’API resta tra relay e bot. Mumcord usa il relay dalla versione 0.5.0.

Collaboratori

Codice sorgente Guida completa nel README → Idee e bug →