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.

Nejnovější verze: v0.1.0

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

docker-compose.yml
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.

Přispěvatelé

Zdrojový kód Celý návod v README → Nápady a chyby →