Tools
mumpeer
Un pequeño relay para las conexiones directas de Mumcord entre usuarios, por ejemplo para compartir pantalla o enviar imágenes a tamaño completo. Cuando dos personas no pueden alcanzarse directamente, detrás de CGNAT, cortafuegos estrictos o en redes sin UDP, o no quieren mostrar su dirección IP, ambas se conectan al relay. Este solo reenvía los paquetes cifrados, como un servidor TURN.
Junto a tu servidor Mumble
Una comunidad ejecuta mumpeer junto a su servidor Mumble, con el bot de relay mumbot peer. El bot anuncia el relay y reparte tokens de corta duración. El servidor Mumble queda sin modificar.
Solo usuarios verificados
Un token solo sirve para exactamente dos certificados, una vez por cada lado y durante 120 segundos por defecto. El relay nunca reenvía a ningún otro sitio y nunca abre conexiones por sí mismo, así que no es un proxy abierto.
Cifrado de extremo a extremo
Lo que pasa por el relay es una conexión cifrada aparte entre los dos usuarios, fijada a sus certificados de Mumble. El relay no puede ni leerla ni modificarla.
Por casi cualquier cortafuegos
QUIC sobre UDP o, donde UDP está bloqueado, TLS sobre TCP. Ambos en el puerto 443 y con TLS 1.3.
Totalmente opcional
Mumcord funciona también sin bot ni relay. En Mumcord eliges tú: relay desactivado, solo cuando falla una conexión directa, o siempre.
Lo que puede ver el operador
- Las direcciones IP de los dos usuarios de una sesión
- Qué dos certificados hablan entre sí
- Cuántos datos fluyen y cuándo
- No el contenido: está cifrado de extremo a extremo. Mumcord te lo dice antes de que uses un relay
- Nunca se registran: direcciones IP completas, hashes completos de certificados, tokens ni contenido de paquetes
Ejecútalo con Docker
Pon un secreto largo y aleatorio en .env como PEER_API_SECRET (por ejemplo, de openssl rand -hex 32). Del ejemplo de relay de Mumbot guarda mumpeer.example.toml como mumpeer.toml y define en él public_host, y bot.example.toml como bot.toml. Después inicia el relay y el bot juntos:
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: En el primer arranque, la huella del relay aparece en el log. El bot la anuncia a Mumcord, no hace falta compartir nada más. Abre UDP y TCP en el puerto 443, la API queda entre el relay y el bot. Mumcord usa el relay desde la versión 0.5.0.
Colaboradores
Código fuente Guía completa en el README → Ideas y errores →