Tools

mumpeer

Un mic relay pentru conexiunile directe ale Mumcord între utilizatori, de exemplu pentru partajarea ecranului sau imagini la dimensiune completă. Când două persoane nu se pot ajunge direct, în spatele unui CGNAT, al unor firewall-uri stricte sau în rețele fără UDP, ori nu vor să-și arate adresa IP, ambele se conectează în schimb la relay. Acesta doar transmite pachetele criptate, ca un server TURN.

Cea mai recentă versiune: v0.1.0

Lângă serverul tău Mumble

O comunitate rulează mumpeer lângă serverul ei Mumble, împreună cu botul de relay mumbot peer. Botul anunță relay-ul și împarte token-uri de scurtă durată. Serverul Mumble rămâne nemodificat.

Doar utilizatori verificați

Un token funcționează doar pentru exact două certificate, o dată pe fiecare parte și implicit 120 de secunde. Relay-ul nu retransmite niciodată în altă parte și nu deschide niciodată conexiuni de la sine, deci nu este un proxy deschis.

Criptat end-to-end

Ceea ce trece prin relay este o conexiune criptată separată între cei doi utilizatori, legată de certificatele lor Mumble. Relay-ul nu o poate nici citi, nici schimba.

Prin aproape orice firewall

QUIC peste UDP sau, unde UDP este blocat, TLS peste TCP. Ambele pe portul 443 și cu TLS 1.3.

Complet opțional

Mumcord funcționează și fără bot și relay. În Mumcord alegi tu: relay oprit, doar când o conexiune directă eșuează, sau mereu.

Ce poate vedea operatorul

  • Adresele IP ale ambilor utilizatori ai unei sesiuni
  • Ce două certificate vorbesc între ele
  • Câte date circulă și când
  • Nu conținutul: este criptat end-to-end. Mumcord îți spune asta înainte să folosești un relay
  • Nu se înregistrează niciodată: adresele IP complete, hash-urile complete ale certificatelor, token-urile și conținutul pachetelor

Rulează-l cu Docker

Pune un secret lung și aleatoriu în .env ca PEER_API_SECRET (de exemplu din openssl rand -hex 32). Din exemplul de relay al Mumbot salvează mumpeer.example.toml ca mumpeer.toml și setează în el public_host, iar bot.example.toml ca bot.toml. Apoi pornește relay-ul și botul împreună:

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:

La prima pornire, amprenta relay-ului apare în log. Botul o anunță către Mumcord, nu trebuie partajat nimic altceva. Deschide UDP și TCP pe portul 443, API-ul rămâne între relay și bot. Mumcord folosește relay-ul de la versiunea 0.5.0.

Contribuitori

Cod sursă Ghidul complet în README → Idei și erori →