Self Hosted Jitsi Meet Instance (Mar 2021/German)

Nachdem die komplette Kommunikation mit Freunden und Geschäftspartnern auf den Element Matrix Messenger umgestellt wurde und nur mehr ein minimaler Anteil an E-Mails in Verwendung ist, musste auch noch eine eigene Jitsi Meet Instanz eingerichtet werden um alle Kommunikationskomponenten selbst zu hosten. Jitsi Meet bietet alleinstehend extrem viele coole Features:

  • volle Voice und Video Kommunikation
  • Desktop Sharing, z.B. für Präsentationen und Support
  • Benutzer über URL einfach zur Konferenz einladen
  • Administrator und Moderator Genehmigung für das Betreten des Raumes
  • Passwort zum Betreten des Raumes
  • Integrierter Chat
  • Blur Background (Hintergrund unscharf machen)
  • Transport Verschlüsselung (E2E in Beta)
  • Sammelt keine Daten der Benutzer

Der Element Matrix Messenger integriert Jitsi Meet als Widget und dadurch können Konferenzen mit allen Element Matrix Benutzern auf allen Matrix Servern geführt werden. Personen welche Ihre Kommunikation noch nicht auf den Element Matrix Messenger umgestellt haben, können einfach per Link eingeladen werden und dann mit dem Browser, ohne jegliche Installation an der Konferenz teilnehmen.

Jeder kann Jitsi Meet sofort am Projektserver ohne Anmeldung ausprobieren:

Diese Anleitung richtet sich an Personen und Unternehmen, welche Ihre eigene Jitsi Meet Instance für Ihre Kommunikationspartner betreiben möchten.

Basiseinrichtung Debian

Wir starten mit einen Debian 10 (Buster) Minimum Installation und aktivieren den SSH Daemon für uns. Der Hostname und die IP Adresse sollten bereits richtig gsetzt werden und für den Server sollte es einen DNS Eintrag in der Form

jitsi.mydomain.tld A 3600 IP-Adresse-des-Servers

geben.

Zuerst sichern wir den Zugang zum Server dementsprechen ab. So wie jeder gute IT Administrator werden Sie sicher eine statische IP Adresse auf der Seite Ihres PC oder Endgerätes verwenden. Am Debian Server am besten ufw einrichten und dann als root folgende Rules erzeugen:

ufw allow from IhreStatischeIP/Netmask to any port 22
ufw allow from NocheineStatischeIP/Netmask to any port 22
ufw enable
ufw status numbered

Damit wird der Zugang zum SSH Dienst von den Admin IP Adressen erlaubt. Alle anderen Rechner im Internet können sich nicht zum Port 22 verbinden und damit sind Passwort Brute-Force Attacken ausgeschlossen und Hacks des SSH-Zugangs weitestgehend unmöglich. Sollte mit dynamische IP Adressen auf der Admin Seite gearbeitet werden, dann den Zugang unbedingt mit einem stark abgesicherten VPN sichern. Ein öffentlich erreichbares Port 22 (SSH) ist, wie alle anderen offenen Admin-Ports eine massive Sicherheitslücke die irgendwann von Hackern genutzt werden wird!

Als root erlauben wir auch noch den Zugang zu den von Jitsi Meet verwendeten Ports:

ufw allow 80/tcp
ufw allow 443/tcp
ufw allow 4443/tcp
ufw allow 10000/udp
ufw status numbered

Der status Befehl sollte dann alle Rules in nummerierter Form ausgeben.

Wenn bis hierher alles OK ist, dann können wir als root jetzt die benötigte Software installieren:

apt-get update
apt-get install gnupg wget
wget https://download.jitsi.org/jitsi-key.gpg.key
apt-key add jitsi-key.gpg.key
rm jitsi-key.gpg.key

Danach fügt, bzw erstellt, man mit dem vi der Datei /etc/apt/sources.list.d/jitsi-stable.list folgende Zeile hinzu:

vi  /etc/apt/sources.list.d/jitsi-stable.list

deb https://download.jitsi.org stable/

Nun müssen die Paketlisten noch upgedatet udn Jitsi Meet installiert werden:

apt-get update
apt-get install jitsi-meet

Die Fragen während des Setups einfach beantworten, wichtig dabei ist, den Hostnamen passend zum obigen DNS Eintrag zu setzen.Zuerst frägt Jitsi Meet beim Setup nach einem self-signed Zertifikat, welches erstellt werden soll. Das Letsencrypt Zertifikat wird später erstellt.

Jitsi Meet verwendet Zertifikate, um die Kommunikation und den Traffic zu verschlüsseln, damit bei der Übertragung niemand mithören kann.

Danach installieren wir als root den Certbot für die kostenlosen Letsencrypt Zertifikate und installieren diesen und die Zertifikatsupdates.

apt install certbot
/usr/share/jitsi-meet/scripts/install-letsencrypt-cert.sh

Absicherung Raumerstellung

Nun wollen wir noch absichern, dass nur eigene Benutzer Räume erstellen können:

vi /etc/prosody/conf.avail/your_domain.cfg.lua

wir ändern:

  • authentication = “anonymous” auf
  • authentication = “internal_plain”

Am Ende fügen wir in der selben Datei noch folgendes hinzu. Ändern Sie jitsi.yourdomain.tld laut DNS:

VirtualHost "guest.jitsi.yourdomain.tld"
authentication = "anonymous"
c2s_require_encryption = false

Damit können Gäste Räume betreten, aber keine Räume eröffnen.

Nun müssen wir noch in der Datei /etc/jitsi/meet/jitsi.yourdomain.tld-config.js Änderungen vornehmen:

// anonymousdomain: 'guest.example.com',

auf

anonymousdomain: 'guest.jitsi.yourdomain.tld',

Der Datei etc/jitsi/jicofo/sip-communicator.properties fügen wir noch folgende Zeile hinzu:

org.jitsi.jicofo.auth.URL=XMPP:your_domain

Benutzer registrieren

Mit dem Befehl:

prosodyctl register Benutzername jitsi.yourdomain.tld Passwort

können Sie beliebig viele Benutzer anlegen. Diese können mit Benutzer und Passwort dann Räume eröffnen. Wichtig ist es zu wissen, dass wenn, Sie keine Berechtigungen einrichten, jeder die Jitsi Instanz verwenden kann!

Zum Abschluss müssen die Jitsi Dienste neu gestartet werden:

systemctl restart prosody.service
systemctl restart jicofo.service
systemctl restart jitsi-videobridge2.service
systemctl restart nginx

Profi Extras

Authentifizierung gegen Matrix Synapse

Dafür gibt es Erweiterungen, welche einerseits auf der Matrix Synpase Seite installiert sein müssen:

und auf der Jitsi Seite muss:

laufen. Dafür wird es ein eigenes Tutorial geben, wobei die perfekte Lösung vermutlich die Authentifizierung von Matrix Synapse und Jitsi gegen einen LDAP Server darstellt. Weiteres folgt.

Nagios Monitoring der Jitsi Instanz

Cooles Nagios check_jitsi Modul:

https://github.com/nbuchwitz/check_jitsi.git

Damit kann auch die aktuelle Raumanzahl und vieles mehr abgefragt werden.

Zuweisung der Jitsi Instanz

für alle Benutzer des Matrix Homeservers

Infolink: https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/master/docs/configuring-well-known.md

Apache benötigt CORS/ACAO Header für die .well-known Funktionalität-

Header Set Access-Control-Allow-Origin "*"

/.well-known/matrix/client :

{
"im.vector.riot.jitsi": {
"preferredDomain": "jitsi.yourdomain.tld"
}
}

für einzelne Clients

CONFIG.JSON für element-web, linux, windows, mac

Custom config.json in Element Benutzerverzeichnis:

{
"brand": "Window Title",
"showLabsSettings": true,
"jitsi": {
"preferredDomain": "jitsi.example.org"
}
}

Logo im Ordner /usr/share/jitsi-meet/images plazieren und in der Datei interface_config.js folgendes ändern:

DEFAULT_LOGO_URL: 'images/KMJ.png',
JITSI_WATERMARK_LINK: 'https://kmj.at',

Matrix Synapse Setup Tutorial:

Join my public room

If you like this blog entry feel free to join my public room by entering

/join #kmj:matrix.ctseuro.com

anywhere in the box to send a message! Feedback welcome!

Enterprise Support since 1985!