Element.io & eigener MATRIX Server

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.

Ich empfehle Perfect Privacy VPN

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

PuTTY (SSH Client)


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

  1. - Hier Hilft das VPN dabei von Anfang an schon nirgendwo seine IP-Adresse zu hinterlassen.
  2. - Ich empfehle Perfect Privacy VPN, #1
  3. - 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


3. Debian (Linux) Server Mieten (PaysafeCard für Anonymität)
Ich empfehle shinjiru.com / alexhost.com / privatealps.net / securednet.su

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

Ich empfehle securednet.su

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

  1. - Ales erstes solltet Ihr euch die Software PuTTY (SSH Client) herunterladen und installieren.
  2. - Bei "ZAP-Hosting" seht ihr unter "Meine vServer" schonmal die IP-Adresse eures Servers.
  3. - Ihr müsst allerdings nochmal unter "Zugang & Sicherheit" ein Root Passwort setzen und SSH aktivieren.
  4. - Die IP-Adresse des vServers könnt Ihr in PuTTY unter "Host Name (or IP adress)" eintragen.
  5. - Ihr könnt unter "Saved Sessions" auch einen beliebigen Namen eintragen und mit "Save" speichern.
  6. - mit Klick auf "Open" startet ihr dann eine Session wo Ihr "root" als Login eingebt dann [Enter]
  7. - 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:
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.

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

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

server {
listen 80;
listen [::]:80;
server_name matrix.beispieldomain.de;
return 301 https://$host$request_uri;
}

server {
listen 443 ssl;
listen [::]:443 ssl;
server_name matrix.beispieldomain.de;

ssl on;
ssl_certificate /etc/letsencrypt/live/matrix.beispieldomain.de/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/matrix.beispieldomain.de/privkey.pem;

location / {
proxy_pass http://localhost:8008;
proxy_set_header X-Forwarded-For $remote_addr;
}
}

server {
listen 8448 ssl default_server;
listen [::]:8448 ssl default_server;
server_name matrix.beispieldomain.de;

ssl on;
ssl_certificate /etc/letsencrypt/live/matrix.beispieldomain.de/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/matrix.beispieldomain.de/privkey.pem;
location / {
proxy_pass http://localhost:8008;
proxy_set_header X-Forwarded-For $remote_addr;
}
}

Code:
server {
    listen 80;
    listen [::]:80;
    server_name matrix.beispieldomain.de;
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl;
    listen [::]:443 ssl;
    server_name matrix.beispieldomain.de;

    ssl on;
    ssl_certificate /etc/letsencrypt/live/matrix.beispieldomain.de/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/matrix.beispieldomain.de/privkey.pem;

    location / {
        proxy_pass http://localhost:8008;
        proxy_set_header X-Forwarded-For $remote_addr;
    }
}

server {
    listen 8448 ssl default_server;
    listen [::]:8448 ssl default_server;
    server_name matrix.beispieldomain.de;

    ssl on;
    ssl_certificate /etc/letsencrypt/live/matrix.beispieldomain.de/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/matrix.beispieldomain.de/privkey.pem;
    location / {
        proxy_pass http://localhost:8008;
        proxy_set_header X-Forwarded-For $remote_addr;
    }
}

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...
New user localpart [root]: username
Password: passwort
Confirm password: passwort
Make admin [no]: yes|no
Sending registration request...
Success.

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.
 
Zurück