Tools
mumpeer
Malé relay pro přímá spojení Mumcordu mezi uživateli, například pro sdílení obrazovky nebo obrázky v plné velikosti. Když se dva lidé nedokážou spojit přímo, za CGNAT, přísnými firewally nebo v sítích bez UDP, nebo nechtějí ukázat svou IP adresu, připojí se oba k relay. Ono jen předává šifrované pakety, jako server TURN.
Vedle tvého serveru Mumble
Komunita provozuje mumpeer vedle svého serveru Mumble, spolu s relay botem mumbot peer. Bot relay oznamuje a rozdává krátkodobé tokeny. Server Mumble zůstává beze změny.
Jen ověření uživatelé
Token platí jen pro přesně dva certifikáty, jednou na každé straně a ve výchozím stavu 120 sekund. Relay nikdy nic nepředává jinam a samo nikdy neotevírá spojení, takže není otevřenou proxy.
Šifrované end-to-end
To, co relay prochází, je samostatné šifrované spojení mezi oběma uživateli, vázané na jejich certifikáty Mumble. Relay ho nemůže ani číst, ani měnit.
Skoro každým firewallem
QUIC přes UDP nebo, kde je UDP blokované, TLS přes TCP. Obojí na portu 443 a s TLS 1.3.
Zcela volitelné
Mumcord funguje i bez bota a relay. V Mumcordu si vybíráš: relay vypnuté, jen když přímé spojení selže, nebo vždy.
Co může provozovatel vidět
- IP adresy obou uživatelů relace
- Které dva certifikáty spolu komunikují
- Kolik dat teče a kdy
- Ne obsah: ten je šifrovaný end-to-end. Mumcord ti to řekne dřív, než relay použiješ
- Nikdy se neloguje: celé IP adresy, celé hashe certifikátů, tokeny a obsah paketů
Spusť ho v Dockeru
Vlož do .env dlouhý náhodný tajný klíč jako PEER_API_SECRET (například z openssl rand -hex 32). Z ukázky relay v Mumbotu ulož mumpeer.example.toml jako mumpeer.toml a nastav v něm public_host a bot.example.toml jako bot.toml. Potom spusť relay a bota společně:
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: Při prvním startu se v logu objeví otisk relay. Bot ho oznámí Mumcordu, nic dalšího se sdílet nemusí. Otevři UDP a TCP na portu 443, API zůstává mezi relay a botem. Mumcord používá relay od verze 0.5.0.