Element.io Client & eigener MATRIX Server - Sicherster Messenger der Welt (besser als Sky ECC) [Tutorial]

    • Offizieller Beitrag

    Externer Inhalt youtu.be
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.

    _____________________________________________________________________________

    Mit diesem Tutorial möchte ich euch zeigen wie Ihr absolut Abhörsicher miteinander Kommunizieren könnt, komplett Ende zu Ende verschlüsselt über einen eigenen MATRIX Server. Die Verbindung zu seinem MATRIX Server baut man dann am besten mit dem Element.io Client auf.

    _____________________________________________________________________________

    Link Übersicht


    ExpressVPN

    https://www.xvbelink.com/?a_fid=SchimmerMediaHD


    NordVPN

    https://www.awin1.com/cread.ph…&v=9399&q=337073&r=522871


    ZAP-Hosting (Anonymer Hoster mit PSC Zahlbar)

    https://zap-hosting.com/SchimmerMediaHD

    20& Rabatt mit dem Code: SchimmerMediaHD-a-3979


    Element.io (Sicherster Messanger Client - Verbindung zu eigenem MATRIX Server)

    https://element.io/


    PuTTY (SSH Client)

    https://www.chiark.greenend.or…gtatham/putty/latest.html

    _____________________________________________________________________________

    1. Installieren Sie eine VPN Software (für mehr Anonymität und Sicherheit)

    - Hier Hilft das VPN dabei von Anfang an schon nirgendwo seine IP-Adresse zu hinterlassen.

    - Ich empfehle ExpressVPN, da ich in China schon sehr gute Erfahrungen damit gemacht habe.

    - NordVPN ist aber auch keine schlechte Wahl daher habe ich beide verlinkt.

    - Schließen Sie ein Abbo ab, Installieren Sie die Software und verbinden Sie sich.

    _____________________________________________________________________________

    2. E-Mail Adresse erstellen (Neu mit verbundenem VPN)

    Wenn Wir eine neue Mailadresse registrieren bei eingeschaltetem VPN, so hat dies den Vorteil, dass selbst der Mailprovider zu keinem Zeitpunkt unsere richtige IP-Adresse hat und demnach auch dort in den Log Dateien keine Spuren auftauchen. Das man bei der Registrierung einer Mailadresse nicht zwangsläufig seine richtigen Kontaktdaten angeben muss muss ich hier denke ich nicht erwähnen :)

    Als Beispiel würde ich hier einfach Mal Web.de nehmen, da kann man sich leicht registrieren und vor allem zu einem Späteren Zeitpunkt, falls Nötig auch nochmal drauf zugreifen (bei eingeschaltetem VPN versteht sich).

    _____________________________________________________________________________

    3. Debian (Linux) Server Mieten (PaysafeCard für Anonymität)

    Es gibt diverse Hoster bei denen man sowohl einen Server Mieten als auch Domains registrieren kann und dabei dank der Bezahlung mit PaysafeCard völlig Anonym bleiben kann. Diese erhält man Beispielsweise bei Tankstellen oder an der Kasse beim Rewe, Kaufland etc.


    In diesem Beispiel verwenden wir "ZAP-Hosting", da ich mit diesem Hoster in der Vergangenheit schon gute Erfahrungen gemacht habe und außerdem habe ich hier für euch einen Rabatt Code: SchimmerMediaHD-a-3979 womit ihr 20% weniger zahlen müsst, außerdem könnt Ihr mich so kostenlos Unterstützen weil ich vom Anbieter eine kleine Provision erhalte.


    Hier könnt Ihr dann einfach den "Linux vServer" nehmen und euch dann ein beliebiges Land aussuchen wo der Server stehen soll, ich persönlich habe mich hier für Finnland (Helsinki) entschieden und dementsprechend zuvor auch dieses Land im VPN ausgewählt damit ich mit einer IP-Adresse aus Finnland unterwegs bin :)


    Als Betriebssystem nehmt Ihr dann "Debian 10 - 64bit" damit Ihr im weiteren die Befehle einfach nur Coppy&Pasten müsst :)

    _____________________________________________________________________________

    4. Domain für MATRIX Server Registrieren

    Damit Ihr auch später mit eurem Client (Element.io) auf den MATRIX-Server zugreifen könnt, solltet Ihr auch eine Domain registrieren, die wir im weiteren dann auch mit einem Let´s Encrypt SSL Sicherheits-Zertifikat ausstatten und mit eurem Server Verknüpfen werden. Somit ist die spätere Ende-zu-Ende Verschlüsselung auch absolut Sicher.

    Die Domain könnt Ihr ebenfalls bei "ZAP-Hosting" völlig Anonym registrieren und bezahlen.

    _____________________________________________________________________________

    5. PuTTY (SSH Client) installieren und mit Server verbinden

    - Ales erstes solltet Ihr euch die Software PuTTY (SSH Client) herunterladen und installieren.

    - Bei "ZAP-Hosting" seht ihr unter "Meine vServer" schonmal die IP-Adresse eures Servers.

    - Ihr müsst allerdings nochmal unter "Zugang & Sicherheit" ein Root Passwort setzen und SSH aktivieren.

    - Die IP-Adresse des vServers könnt Ihr in PuTTY unter "Host Name (or IP adress)" eintragen.

    - Ihr könnt unter "Saved Sessions" auch einen beliebigen Namen eintragen und mit "Save" speichern.

    - mit Klick auf "Open" startet ihr dann eine Session wo Ihr "root" als Login eingebt dann [Enter]

    - Bei "password" gebt ihr dann das "Root Passwort" ein welches Ihr bei "ZAP-Hosting" gesetzt habt.

    _____________________________________________________________________________

    6. "sudo" installieren (nur für alle Fälle falls es bei manchen nicht da ist)

    Kopiert euch einfach den folgenden Code in die Zwischenablage und fügt Ihn in PuTTY ein, dann [Enter]

    Code
    apt-get update
    apt-get upgrade
    apt install sudo

    _____________________________________________________________________________

    7. Vorbereitung eures Servers (Abhängigkeiten installieren)

    Kopiert euch einfach den folgenden Code in die Zwischenablage und fügt Ihn in PuTTY ein, dann [Enter]

    Code
    sudo apt-get install build-essential python3-dev libffi-dev \
      python-pip python-setuptools sqlite3 \
      libssl-dev python-virtualenv libjpeg-dev libxslt1-dev

    _____________________________________________________________________________

    8. Vorbereitung eures Server (Virtuelle Synapse Umgebung erzeugen)

    Kopiert euch einfach den folgenden Code in die Zwischenablage und fügt Ihn in PuTTY ein, dann [Enter]

    Code
    mkdir -p ~/synapse
    virtualenv -p python3 ~/synapse/env
    source ~/synapse/env/bin/activate

    _____________________________________________________________________________

    9. Virtuelle umgebung auf den neusten Stand updaten

    Kopiert euch einfach den folgenden Code in die Zwischenablage und fügt Ihn in PuTTY ein, dann [Enter]

    Code
    pip install --upgrade pip virtualenv six packaging appdirs

    _____________________________________________________________________________

    10. Installation und upgrade der Setup Tools & Synapse Server

    Kopiert euch einfach den folgenden Code in die Zwischenablage und fügt Ihn in PuTTY ein, dann [Enter]

    Code
    pip install --upgrade setuptools
    pip install matrix-synapse

    _____________________________________________________________________________

    11. Synape MATRIX Server konfigurieren

    In diesem Schritt konfigurieren wir gleich mehrere Dinge auf einmal, daher rate ich euch dazu den folgenden Code erstmal in ein Textverarbeitungsprogramm wie "Editor" zu kopieren und dort die Rot Markierten Bereiche für eure Installation zu bearbeiten. Tragt hier einfach eure Domain ein, entweder direkt oder mit dem Subdomain Zusatz ".matrix" davor, also "matrix.beispieldomain.de". Das ist im Endeffekt nur Geschmackssache, ich werde im Tutorial allerdings den Zusatz ".matrix" dazu schreiben weil ich es besser finde.

    Code
    source ~/synapse/env/bin/activate
    pip install -U matrix-synapse
    cd ~/synapse
    python -m synapse.app.homeserver \
      --server-name matrix.beispieldomain.de \
      --config-path homeserver.yaml \
      --generate-config \
      --report-stats=yes|no

    Unten bei "report" könnt Ihr mit "yes" oder "no" einstellen ob Ihr Statistik Reports an Synapse erlauben wollt oder nicht, für mehr Anonymität würde ich hier auf jeden Fall die Einstellung auf "no" setzen!


    Nachdem Ihr die Einstellungen im Textverarbeitungsprogramm entsprechend angepasst habt, könnt Ihr euch das ganze wieder in die Zwischenablage kopieren und von dort in PuTTY kopieren und mit [Enter] ausführen, dann wird erst der obere Teil ausgeführt und danach der untere mit den Einstellung welche nochmals mit [Ender] bestätigt werden müssen.


    Wenn alles funktioniert hat bekommt Ihr die Folgende Rückmeldung wo Ihr nochmal die Richtigkeit eurer Domain überprüfen könnt...

    Zitat


    A config file has been generated in 'homeserver.yaml' for server name 'matrix.beispieldomain.de'. Please review this file and customise it to your needs.

    _____________________________________________________________________________

    12. TLS Aktivieren & Certbot für Let´s Encrypt installieren

    Für den MATRIX Synapse Server müsst Ihr Standardmäßig TLS (Transport Layer Security) aktivieren damit die Kommunikation von und mit dem Server auch Sicher und Verschlüsselt abläuft. Die einfachste Methode Transport Layer Security zu konfigurieren ist, wenn man ein SSL-Zertifikat einer Vertrauenswürdigen Zertifizierungsstelle wie Let´s Encrypt zu installieren. Daher installieren wir im Folgenden erstmal Certbot, denn damit ist es sehr Einfach Let´s Encrypt Zertifikate zu registrieren.

    Code
    sudo apt-get install certbot python-certbot-nginx

    Um Certbot nutzen zu können brauchen wir einen Webserver damit das Let´s Encrypt Zertifikat auch verifiziert werden kann. Dafür installieren wir einfach mit Folgendem Befehl Nginx

    Code
    sudo apt-get install nginx

    Danach Stellen wir ein Zertifikat aus indem wir den Folgenden Code wieder erst in ein Textverarbeitungsprogramm wie "Editor" kopieren wo wir en hinteren Part anpassen mit unserer Domain "matrix.beispieldomain.de", damit das Zertifikat auch entsprechend auf eure Domain ausgestellt wird.

    Zitat

    sudo certbot certonly --nginx -d matrix.beispieldomain.de

    Wenn Ihr im Editor eure Domain angepasst habt könnt ihr das ganze wieder in PuTTY kopieren und mit [Enter] ausführen.


    - Bei der Mailadresse könnt Ihr einfach die Mail eintragen die wir zu beginn angelegt haben

    - danach müsst ihr mit "A" die Terms of Service akzeptieren

    - Bei der dritten Abfrage am besten nicht Zustimmen, denn Ihr wollt ja keine Werbung

    _____________________________________________________________________________

    13. Einrichten eines Reverse Proxy mit Nginx

    Hierfür müssen wir in der "homeserver.yaml" bei den "bind_adresses" etwas löschen damit nur noch "['127.0.0.1']" da steht. Im folgenden Befehl nutzen wir den nano Editor um die Datei zu öffnen, dann könnt Ihr mit den Pfeiltasten nach unten bis zur entsprechenden Einstellung runter Scrollen.

    Code
    nano ~/synapse/homeserver.yaml

    So sollte das ganze dann aussehen wenn Ihr es korrekt bearbeitet habt

    Zitat

    - port: 8008

    tls: false

    bind_addresses: ['127.0.0.1']

    type: http

    x_forwarded: true

    Mit [Strg]+[X] und danach [Y] und [Enter] könnt Ihr das ganze dann speichern, bevor wir dann auch wieder mit dem nano Editor die "matrix.conf" erstellen und den folgenden Code einfügen. Ihr solltet den Code allerdings auch wieder in ein Textverarbeitungsprogramm wie "Editor" kopieren wo Ihr an 7 Stellen eure Domain eintragen müsst, im folgenden auch wieder Rot Markiert.

    Code
    sudo nano /etc/nginx/conf.d/matrix.conf

    Das ganze auch wieder mit [Strg]+[X], dann [Y] und [Enter] zum Speichern.

    Zum Schluss müssen wir Nginx noch neu starten und wieder Aktivieren mit folgenden 2 Befehlen

    Code
    sudo systemctl restart nginx
    sudo systemctl enable nginx

    _____________________________________________________________________________

    14. Neue User Registrieren

    Bevor wir einen neuen Nutzer oder auch Admin Account für den Messenger Server registrieren müssen wir sicher gehen das unsere Virtuelle Server Umgebung von Synapse auch am laufen ist daher geben wir als erstes die folgenden 3 befehle ein...

    Code
    cd ~/synapse
    source env/bin/activate
    synctl start

    und mit Folgendem Befehl starten wir dann eine Art Registrierung Formular wo wir Nutzername und Passwort setzen können, außerdem können wir bestimmen ob der jeweilige Benutzer dann auf dem Messenger Server Admin Rechte haben soll oder nicht. Als Admin kann man dann Räume Erstellen und hat Zugriff auf gewisse Einstellungen, hier würde ich raten das nur Ihr oder Maximal noch 1 oder 2 Personen denen Ihr zu 100% Vertraut als Admin Registriert werden.

    Code
    register_new_matrix_user -c homeserver.yaml http://localhost:8008

    Die Abfrage im Registrierung Formular läuft dann in etwa so ab...

    _____________________________________________________________________________

    15. Einloggen in Element.io für sicheres Chatten, Telefonieren und Video Calls

    Mit dem Element.io Client könnt Ihr nun entweder Auf dem PC, Mac, Android Smartphone oder auf dem iPhone eine Sichere Verbindung zu eurem soeben aufgesetztem Server herstellen. Ihr müsst nur daran denken eure Domain im Client als "Homeserver" einzutragen.

    Zitat


    https://matrix.beispieldomain.de

    • Offizieller Beitrag

    #Update


    Übrigens um Notifikations Angezeigt zu bekommen müsst Ihr die App im Hintergrund offen haben, ansonsten werden keine Notifikations angezeigt. Das kann man als Nachteil sehen, ich persönlich sehe das allerdings eher als Vorteil weil man dann diese Nachrichten die Eventuell geheim sind nicht direkt sehen kann, sondern erst wenn man die App öffnet oder im Hintergrund offen hat.


    Sieht dann im übrigen so aus wenn man es im Hintergrund offen hat als Push Notifikation & macht auch Sound um sich bemerkbar zu machen :)


  • Hallo.

    Hat jemand eine Idee oder noch besser ne Lösung wie man das (offenbar neue) Problem mit dem TURN Server löst. Ich kann über meinen Matrix Server problemlos chatten und auch VOIP betreiben, solange alle Geräte im gleichen Heim-WLAN sind (Matrix Server steht extern bei Zap). Sobald ich aber ein Gerät z.B. per LTE anmelde klappt nur noch Chat. VOIP meldet ein Problem mit einem TURN Server. Geht offenbar um eine Relais-Station wenn beide Clients hinter einem NAT sind ??? Ich verstehe nur bedingt was das bedeuten kann - und lösen kann ich es aktuell auch nicht… Danke

  • danke für die Anleitung, habe es irgendwie auf meinem Raspberry Pi4 zum Laufen gebracht.


    Ich bin nicht ganz so fit und versuche mich ständig in diesen Dingen zu verbessern.


    Hast Du eine Idee, wie man nach einem Neustart mit einem Cron Eintrag dafür sorgt, dass das System wieder startet. Aktuell ist es so, dass ich händisch:


    cd ~/synapse

    source env/bin/activate

    synctl start

    eingeben muss, wenn der Strom weg war.


    Mir fehlt das Wissen, habe aber gelesen, dass man diese Befehle als Skript speichert und dann dann automatisch per Cron mit dem Parameter @reboot startet. Bekomme es aber nicht hin.


    Herzliche Grüße

    Tim

    • Offizieller Beitrag

    Hallo.
    Habe das Problem nun gelöst. Mit der Anleitung hier https://github.com/matrix-org/…evelop/docs/turn-howto.md

    Hat es eigentlich ganz leicht geklappt.
    ich bin zwar nicht sicher was ich damit jetzt getan habe… aber es hat direkt geklappt 😀.
    Hoffe es hilft auch anderen bei dem Problem.
    LG

    Vielen Dank für deine info, werde es mal als Kommentar unter dem Video anpinnen <3

  • Hallo,

    ich habe den Server aufgesetzt und bin Schritt für Schritt die Anleitung durchgegangen. Leider erreiche ich über den Element.io Client meinen Homeserver nicht. Ich weiß nicht woran das liegen könnte. Ich habe auf ZAP-Hosting einen Server gemietet und eine Domain gekauft. Die Domain ist auch über "easyDNS" auf den Server zugewiesen, dass er quasi auch im öffentlich Netz erreichbar sein müsste.


    Ich habe schon alles probiert von "matrix.meinedomain.it" oder nur "meinedomain.it" oder auch "https://meinedomain.it".


    Könnte mir jemand helfen mich auf meinen Heimserver über Element.io zu verbinden? Es kommt jedes mal die Fehlermeldung, dass er angeblich nicht erreichbar ist... Ich bin am verzweifeln.


    Danke schonmal, falls jemand das Problem kennt und lösen kann :D

    • Offizieller Beitrag

    fth


    Ich hoffe nur das du dieses Token hier geändert hast in deiner "homeserver.yaml" & in der "turnserver.conf"


    Zitat
    Code
    turn_shared_secret: "n0t4ctuAllymatr1Xd0TorgSshar3d5ecret4obvIousreAsons"

    weil wenn du da jetzt auch das hier verwendet hast wäre das nicht so Sicher, da es eben öffentlich in dem Tutorial steht und somit von vielen verwendet werden könnte.

    Code
    n0t4ctuAllymatr1Xd0TorgSshar3d5ecret4obvIousreAsons

    Und hier auch nochmal ein Bild wie das jetzt bei mir in der "homeserver.yaml" weiter unten bei dem Punkt Turn steht, damit Ihr das anhand des hier beschriebenen Tutorial Beispiels, für euren Server einfacher anpassen könnt.


    • Offizieller Beitrag

    ich arbeite Zur Zeit an einer erheblichen Verbesserung für noch mehr Sicherheit. Ich versuche mich daran ein anderes Betriebssystem welches viel sicherer ist als das normale Android, auf einem Android Smartphone zu installieren. Der normale Google Play Store fällt dabei natürlich weg, aber über APK Dateien lassen sich nach wie vor Android Apps installieren. Ich möchte dafür GraphenOS verwenden und über den "F-Droid Store" hat man dann auch wieder so etwas ähnliches wie den Google Play Store. Um Sicher zu gehen rate ich dazu auf diesem gerät dann auch wirklich nur Element zu installieren und sonst nichts.


    Damit wäre man dann auch Sicher vor dem Staatstrojaner, ich denke mehr Sicherheit als GraphenOS in Verbindung mit Element und einem eigenen MATRIX Server geht nicht :D (Falls Ihr doch noch Vorschläge für noch mehr Sicherheit habt, immer her damit)


  • Hi ich habe alles nach Anleitung installiert, 2x sogar, allerdings wird mir am Ende immer ein Fehler angezeigt wenn ich die Domain bei Element eintrage.

    Ich kann mich nicht über meinen Server einloggen.

    Der Server ist online und die Domaine ist mit dem Server verknüpft.

    Was kann das Problem sein?

  • guten tag brauche hilfe beim einrichten des element.io clients er sagt mir das die url ungültig ist oder sagt mir das der homeserver ungültig ist nur bei zap hosting sagt der mit das das zertifikat gültig ist bitte um hilfe

  • Hallo, erstmal Danke für diesen mehr als hilfreichen Beitrag, zusammen mit dem Video auf YouTube kann eigentlich nix mehr schief gehen ... Habe die Installation gerade abgeschlossen, echt Top.

    Nun habe ich auch schon ein zwei Accounts angelegt und einen Benutzer vergessen.
    Wo kann ich denn so was einsehen, bzw. ändern da es ja keine richtige DB gibt sondern nur ein sqlite.
    Und gibt es auch noch Wartungsbefehle wie start stop restart update oder so?

    Freue mich über eine Antwort MfG Maik.

  • ich arbeite Zur Zeit an einer erheblichen Verbesserung für noch mehr Sicherheit. Ich versuche mich daran ein anderes Betriebssystem welches viel sicherer ist als das normale Android, auf einem Android Smartphone zu installieren. Der normale Google Play Store fällt dabei natürlich weg, aber über APK Dateien lassen sich nach wie vor Android Apps installieren. Ich möchte dafür GraphenOS verwenden und über den "F-Droid Store" hat man dann auch wieder so etwas ähnliches wie den Google Play Store. Um Sicher zu gehen rate ich dazu auf diesem gerät dann auch wirklich nur Element zu installieren und sonst nichts.


    Damit wäre man dann auch Sicher vor dem Staatstrojaner, ich denke mehr Sicherheit als GraphenOS in Verbindung mit Element und einem eigenen MATRIX Server geht nicht :D (Falls Ihr doch noch Vorschläge für noch mehr Sicherheit habt, immer her damit)


    servus SchimmerMediaHD,

    ich wollte mal nachfragen wie bei dir in der Sache der Stand der Dinge ist?

    Hast du das umgesetzt mit dem Betriebssystem GraphenOS?


    und wenn ja, kannst du bitte das Tutorial erweitern mit dem GrapheOS und wie sonst alles gelaufen ist?

    Und benutzt du die Element App über VPN+Tor ?


    Oder kann vielleicht sonst jemand etwas zu schreiben wie er das umgesetzt hat und vielleicht eine Anleitung dazu schreiben?



    das wäre eine geile Sache und bedanke ich mich vorab..