Tools

mumpeer

Et lille relay til Mumcords direkte forbindelser mellem brugere, for eksempel til skærmdeling eller billeder i fuld størrelse. Når to personer ikke kan nå hinanden direkte, bag CGNAT, strenge firewalls eller i netværk uden UDP, eller ikke vil vise deres IP-adresse, forbinder begge i stedet til relayet. Det sender kun de krypterede pakker videre, ligesom en TURN-server.

Seneste version: v0.1.0

Ved siden af din Mumble-server

Et fællesskab kører mumpeer ved siden af sin Mumble-server, sammen med relay-botten mumbot peer. Botten annoncerer relayet og deler kortlivede tokens ud. Mumble-serveren forbliver uændret.

Kun verificerede brugere

Et token virker kun for præcis to certifikater, én gang pr. side og som standard i 120 sekunder. Relayet videresender aldrig andre steder hen og åbner aldrig selv forbindelser, så det er ikke en åben proxy.

Ende-til-ende-krypteret

Det, der går gennem relayet, er en separat krypteret forbindelse mellem de to brugere, bundet til deres Mumble-certifikater. Relayet kan hverken læse eller ændre den.

Gennem næsten enhver firewall

QUIC over UDP eller, hvor UDP er blokeret, TLS over TCP. Begge på port 443 og med TLS 1.3.

Helt valgfrit

Mumcord virker også uden bot og relay. I Mumcord vælger du selv: relay slået fra, kun når en direkte forbindelse mislykkes, eller altid.

Hvad operatøren kan se

  • IP-adresserne på begge brugere i en session
  • Hvilke to certifikater der taler med hinanden
  • Hvor meget data der flyder, og hvornår
  • Ikke indholdet: det er krypteret ende til ende. Mumcord fortæller dig det, før du bruger et relay
  • Logges aldrig: fulde IP-adresser, fulde certifikat-hashes, tokens og pakkeindhold

Kør det med Docker

Læg en lang tilfældig hemmelighed i .env som PEER_API_SECRET (for eksempel fra openssl rand -hex 32). Gem mumpeer.example.toml fra Mumbots relay-eksempel som mumpeer.toml og sæt public_host i den, og bot.example.toml som bot.toml. Start derefter relay og bot sammen:

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:

Ved første start vises relayets fingeraftryk i loggen. Botten annoncerer det til Mumcord, ellers skal intet deles. Åbn UDP og TCP på port 443, API'et forbliver mellem relay og bot. Mumcord bruger relayet fra version 0.5.0.

Bidragydere

Kildekode Hele guiden i README → Idéer og fejl →