Tools

mumpeer

Majhen relay za neposredne povezave Mumcorda med uporabniki, na primer za deljenje zaslona ali slike v polni velikosti. Ko se dva človeka ne moreta doseči neposredno, za CGNAT, strogimi požarnimi zidovi ali v omrežjih brez UDP, ali ne želita pokazati svojega naslova IP, se oba namesto tega povežeta z relayem. Ta le posreduje šifrirane pakete, kot strežnik TURN.

Najnovejša različica: v0.1.0

Ob tvojem strežniku Mumble

Skupnost zažene mumpeer ob svojem strežniku Mumble, skupaj z relay botom mumbot peer. Bot relay objavi in razdeli kratkotrajne žetone. Strežnik Mumble ostane nespremenjen.

Samo preverjeni uporabniki

Žeton velja le za natanko dva certifikata, enkrat na vsaki strani in privzeto 120 sekund. Relay nikoli ne posreduje drugam in nikoli sam ne odpira povezav, zato ni odprt proxy.

Šifrirano od konca do konca

Tisto, kar gre skozi relay, je ločena šifrirana povezava med obema uporabnikoma, vezana na njuna certifikata Mumble. Relay je ne more ne brati ne spreminjati.

Skozi skoraj vsak požarni zid

QUIC prek UDP ali, kjer je UDP blokiran, TLS prek TCP. Oboje na vratih 443 in s TLS 1.3.

Povsem neobvezno

Mumcord deluje tudi brez bota in relaya. V Mumcordu izbereš sam: relay izklopljen, samo ko neposredna povezava ne uspe, ali vedno.

Kaj lahko vidi operater

  • Naslove IP obeh uporabnikov seje
  • Katera dva certifikata se pogovarjata
  • Koliko podatkov teče in kdaj
  • Ne vsebine: ta je šifrirana od konca do konca. Mumcord ti to pove, preden uporabiš relay
  • Nikoli se ne beležijo: polni naslovi IP, polne zgoščene vrednosti certifikatov, žetoni in vsebina paketov

Zaženi ga z Dockerjem

Dolgo naključno skrivnost vpiši v .env kot PEER_API_SECRET (na primer iz openssl rand -hex 32). Iz Mumbotovega primera relaya shrani mumpeer.example.toml kot mumpeer.toml in v njem nastavi public_host, bot.example.toml pa kot bot.toml. Nato zaženi relay in bota skupaj:

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:

Ob prvem zagonu se prstni odtis relaya prikaže v dnevniku. Bot ga objavi Mumcordu, nič drugega ni treba deliti. Odpri UDP in TCP na vratih 443, API ostane med relayem in botom. Mumcord uporablja relay od različice 0.5.0.

Sodelujoči

Izvorna koda Celoten vodnik v README → Ideje in napake →