Tools
mumpeer
Um pequeno relay para as ligações diretas do Mumcord entre utilizadores, por exemplo para partilha de ecrã ou imagens em tamanho original. Quando duas pessoas não conseguem chegar uma à outra diretamente, atrás de CGNAT, firewalls rígidas ou em redes sem UDP, ou não querem mostrar o seu endereço IP, ambas ligam-se ao relay. Ele apenas reencaminha os pacotes cifrados, como um servidor TURN.
Ao lado do teu servidor Mumble
Uma comunidade corre o mumpeer ao lado do seu servidor Mumble, juntamente com o bot de relay mumbot peer. O bot anuncia o relay e distribui tokens de curta duração. O servidor Mumble fica inalterado.
Só utilizadores verificados
Um token só serve para exatamente dois certificados, uma vez por lado e durante 120 segundos por predefinição. O relay nunca reencaminha para mais lado nenhum e nunca abre ligações por si, por isso não é um proxy aberto.
Cifrado de ponta a ponta
O que passa pelo relay é uma ligação cifrada separada entre os dois utilizadores, fixada aos seus certificados Mumble. O relay não a pode ler nem alterar.
Por quase qualquer firewall
QUIC sobre UDP ou, onde o UDP está bloqueado, TLS sobre TCP. Ambos na porta 443 e com TLS 1.3.
Totalmente opcional
O Mumcord funciona também sem bot e relay. No Mumcord escolhes tu: relay desligado, só quando uma ligação direta falha, ou sempre.
O que o operador pode ver
- Os endereços IP de ambos os utilizadores de uma sessão
- Que dois certificados falam entre si
- Quantos dados fluem e quando
- Não o conteúdo: está cifrado de ponta a ponta. O Mumcord diz-to antes de usares um relay
- Nunca são registados: endereços IP completos, hashes completos de certificados, tokens e conteúdo dos pacotes
Corre-o com Docker
Coloca um segredo longo e aleatório em .env como PEER_API_SECRET (por exemplo, a partir de openssl rand -hex 32). A partir do exemplo de relay do Mumbot, guarda mumpeer.example.toml como mumpeer.toml e define nele public_host, e bot.example.toml como bot.toml. Depois inicia o relay e o bot em conjunto:
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: No primeiro arranque, a impressão digital do relay aparece no log. O bot anuncia-a ao Mumcord, não é preciso partilhar mais nada. Abre UDP e TCP na porta 443, a API fica entre o relay e o bot. O Mumcord usa o relay a partir da versão 0.5.0.