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

  • _____________________________________________________________________________

    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
    1. apt-get update
    2. apt-get upgrade
    3. 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
    1. sudo apt-get install build-essential python3-dev libffi-dev \
    2. python-pip python-setuptools sqlite3 \
    3. 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
    1. mkdir -p ~/synapse
    2. virtualenv -p python3 ~/synapse/env
    3. 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
    1. 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
    1. pip install --upgrade setuptools
    2. 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
    1. source ~/synapse/env/bin/activate
    2. pip install -U matrix-synapse
    3. cd ~/synapse
    4. python -m synapse.app.homeserver \
    5. --server-name matrix.beispieldomain.de \
    6. --config-path homeserver.yaml \
    7. --generate-config \
    8. --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
    1. 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
    1. 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
    1. 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
    1. 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
    1. sudo systemctl restart nginx
    2. 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
    1. cd ~/synapse
    2. source env/bin/activate
    3. 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
    1. 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

  • #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,


    ich habe nach dieser Anleitung meinen Matrix Server aufgesetzt. Besten Dank für die Anleitung.

    Was bei mir noch nicht geht ist die Audio und Videotelefonie.

    Im eigenen Netz klappt alles, sobald ich aus dem Netz bin (z.b. Mobile Daten beim Handy) kommt Verbindungsaufbau. Mehr passiert leider nicht.


    Ich habe gelesen, dass ein TURN Server die Verbindung vermittelt, wie kann ich einen öffentlichen TURN Server eintragen und welche Ports müssen bei Nginx freigegeben werde?


    Gruß

    Lockslay