Tools
mumpeer
Ein kleines Relay für Mumcords direkte Verbindungen zwischen Nutzern, etwa beim Bildschirm teilen oder für Bilder in voller Größe. Erreichen sich zwei Leute nicht direkt, hinter CGNAT, strengen Firewalls oder in Netzen ohne UDP, oder wollen sie ihre IP-Adresse nicht zeigen, verbinden sich beide mit dem Relay. Es reicht die verschlüsselten Pakete nur weiter, wie ein TURN-Server.
Neben deinem Mumble-Server
Eine Community betreibt mumpeer neben ihrem Mumble-Server, zusammen mit dem Relay-Bot mumbot peer. Der Bot kündigt das Relay an und vergibt kurzlebige Tokens. Der Mumble-Server bleibt unverändert.
Nur für verifizierte Nutzer
Ein Token gilt nur für genau zwei Zertifikate, einmal pro Seite und standardmäßig 120 Sekunden. Das Relay leitet nirgendwo anders hin und öffnet selbst keine Verbindungen. Ein offener Proxy ist es also nicht.
Ende-zu-Ende verschlüsselt
Was durchs Relay geht, ist eine eigene verschlüsselte Verbindung zwischen den beiden Nutzern, gebunden an ihre Mumble-Zertifikate. Das Relay kann sie weder lesen noch ändern.
Durch fast jede Firewall
QUIC über UDP oder, wo UDP blockiert ist, TLS über TCP. Beides auf Port 443 und mit TLS 1.3.
Ganz optional
Mumcord funktioniert auch ohne Bot und Relay. In Mumcord wählst du: Relay aus, nur wenn direkt nicht klappt, oder immer.
Was der Betreiber sieht
- Die IP-Adressen beider Nutzer einer Sitzung
- Welche zwei Zertifikate miteinander sprechen
- Wie viele Daten wann fließen
- Nicht die Inhalte: Die sind Ende-zu-Ende verschlüsselt. Mumcord sagt dir das, bevor du ein Relay nutzt
- Nie protokolliert werden volle IP-Adressen, volle Zertifikat-Hashes, Tokens und Paketinhalte
Starten mit Docker
Ein langes, zufälliges Secret als PEER_API_SECRET in die .env schreiben (etwa aus openssl rand -hex 32). Aus Mumbots Relay-Beispiel mumpeer.example.toml als mumpeer.toml speichern und darin public_host setzen, dazu bot.example.toml als bot.toml. Dann Relay und Bot zusammen starten:
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: Beim ersten Start steht der Fingerabdruck des Relays im Log. Der Bot kündigt ihn Mumcord an, sonst muss nichts geteilt werden. Öffne UDP und TCP auf Port 443, die API bleibt zwischen Relay und Bot. Mumcord nutzt das Relay ab Version 0.5.0.