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.
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ă:
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.