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.
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:
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.