Tools

mumpeer

Ένα μικρό relay για τις άμεσες συνδέσεις του Mumcord μεταξύ χρηστών, για κοινή χρήση οθόνης ή εικόνες πλήρους μεγέθους, για παράδειγμα. Όταν δύο άτομα δεν μπορούν να βρεθούν απευθείας, πίσω από CGNAT, αυστηρά firewall ή σε δίκτυα χωρίς UDP, ή δεν θέλουν να δείχνουν τη διεύθυνση IP τους, συνδέονται και οι δύο στο relay. Αυτό απλώς προωθεί τα κρυπτογραφημένα πακέτα, όπως ένας server TURN.

Τελευταία έκδοση: v0.1.0

Δίπλα στον server Mumble σου

Μια κοινότητα τρέχει το mumpeer δίπλα στον server Mumble της, μαζί με το bot relay mumbot peer. Το bot ανακοινώνει το relay και μοιράζει βραχύβια tokens. Ο server Mumble μένει αμετάβλητος.

Μόνο επαληθευμένοι χρήστες

Ένα token ισχύει μόνο για ακριβώς δύο πιστοποιητικά, μία φορά ανά πλευρά και για 120 δευτερόλεπτα από προεπιλογή. Το relay δεν προωθεί ποτέ πουθενά αλλού και δεν ανοίγει ποτέ το ίδιο συνδέσεις, άρα δεν είναι ανοιχτό proxy.

Κρυπτογράφηση από άκρο σε άκρο

Ό,τι περνά από το relay είναι μια ξεχωριστή κρυπτογραφημένη σύνδεση μεταξύ των δύο χρηστών, δεμένη με τα πιστοποιητικά Mumble τους. Το relay δεν μπορεί ούτε να τη διαβάσει ούτε να την αλλάξει.

Μέσα από σχεδόν κάθε firewall

QUIC πάνω από UDP ή, όπου το UDP είναι μπλοκαρισμένο, TLS πάνω από TCP. Και τα δύο στη θύρα 443 και με TLS 1.3.

Εντελώς προαιρετικό

Το Mumcord δουλεύει και χωρίς bot και relay. Στο Mumcord επιλέγεις εσύ: relay απενεργοποιημένο, μόνο όταν αποτυγχάνει η άμεση σύνδεση, ή πάντα.

Τι μπορεί να δει ο διαχειριστής

  • Τις διευθύνσεις IP και των δύο χρηστών μιας συνεδρίας
  • Ποια δύο πιστοποιητικά μιλούν μεταξύ τους
  • Πόσα δεδομένα ρέουν και πότε
  • Όχι το περιεχόμενο: είναι κρυπτογραφημένο από άκρο σε άκρο. Το Mumcord σου το λέει πριν χρησιμοποιήσεις relay
  • Δεν καταγράφονται ποτέ: πλήρεις διευθύνσεις IP, πλήρη hash πιστοποιητικών, tokens και περιεχόμενο πακέτων

Τρέξ' το με Docker

Βάλε ένα μεγάλο τυχαίο μυστικό στο .env ως PEER_API_SECRET (για παράδειγμα από το openssl rand -hex 32). Από το παράδειγμα relay του Mumbot αποθήκευσε το mumpeer.example.toml ως mumpeer.toml και όρισε σε αυτό το public_host, και το bot.example.toml ως bot.toml. Μετά ξεκίνα μαζί το relay και το bot:

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:

Στην πρώτη εκκίνηση το δακτυλικό αποτύπωμα του relay εμφανίζεται στο log. Το bot το ανακοινώνει στο Mumcord, τίποτε άλλο δεν χρειάζεται να μοιραστεί. Άνοιξε UDP και TCP στη θύρα 443, το API μένει ανάμεσα στο relay και το bot. Το Mumcord χρησιμοποιεί το relay από την έκδοση 0.5.0.

Συντελεστές

Πηγαίος κώδικας Ολόκληρος ο οδηγός στο README → Ιδέες και σφάλματα →