jitsi – aber sicher!

jitsi ist ein OpenSource Videokonferenz System, welches recht einfach selber bereitgestellt werden kann.
Gerade in Zeiten, wo jeden Tag ein neuer Bericht über die Zustände beim Platzhirsch zoom bekannt werden, sollte man sich auch Alternativen ansehen. Die public jitsi Server sind zwar eine schöne Sache, aber sind sie auch sicher? Wenn man weder Provider noch die Absichten des Admins kennt? Ein lokales mitschneiden aller Sessions ist durchaus machbar. Daher könnte man einen solchen Server für 50% des Geldes eines Pro Accounts bei zoom.us in Betracht ziehen.
Grundlage ist gerade ein Hetzner CPX11 mit 2VCPUS 2GB RAM für 4,15€ / Monat.

Frisch eingerichtet und den ssh key hinterlegt kann es schon losgehen. Eine Domain sollte mittels A-Record schon auf die IP des Servers zeigen. Wenn die noch nicht existiert, könnte man das bei hosting.de recht preiswert erledigen.

Jitsi installieren

Als erstes wird das Repository in die Instanz hinzugefügt.

echo 'deb https://download.jitsi.org stable/' >> /etc/apt/sources.list.d/jitsi-stable.list

Fehlen sollte auch nicht der Schlüsselcheck.

wget -qO -  https://download.jitsi.org/jitsi-key.gpg.key | sudo apt-key add -

Quellen auf Stand bringen.

apt-get update 

Nun kann man die Komponenten von Jitsi installieren.

apt -y install jitsi-meet

Es folgt die Frage nach der Domain. Das haben wir ja schon vorher vorbereitet und muss nun eingetragen werden. Hier bitte aufpassen, da diese Domain in etlichen config Files eingetragen wird. Das zu ändern wäre echter Aufwand. Beispiel: jitsi.domain.de
Beim Zertifikat bitte ein selbst-signiertes SSL-Zertifikat auswählen.

Letsencrypt
HTTPS wäre natürlich schöner ohne Fehlermeldung des Browsers. Dazu erstellen wir ein letsencrypt Zertifikat und binden es in den Webserver ein. Und das geht sogar vollautomatisiert.

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

Im Browser kann man nun unter seiner URL den ersten Connect durchführen. https://jitsi.domain.de

Etwas mehr Privacy bitte.

Nun ist jeder mit der URL in der Lage, seinen eigenen Raum zu öffnen und Leute einzuladen. Kann man machen, aber manchmal ist es besser den Raum per Operator zu erstellen und dann die Nutzer joinen zu lassen. Gerade wenn man die Bandbreite braucht, ist dies ratsam.

Bevor wir das aber angehen, sollte man die Firewall auf dem Server noch etwas zuschnüren. UFW kann das für uns gleich übernehmen

ufw allow ssh
ufw allow http
ufw allow https
ufw allow 10000/udp
ufw enable

Edit: Auth Neu: 2021

Standardmäßig kann jeder zu Ihrer Jitsi Meet-Instanz gehen, einen Raum erstellen und eine Besprechung starten. Bearbeiten Sie die Prosody-Konfigurationsdatei, um die Benutzerauthentifizierung einzurichten.

sudo nano /etc/prosody/conf.d/meet.example.com.cfg.lua

folgende Zeile.

authentication = “anonymous” in authentication = “internal_plain” anpassen

Wir möchten jedoch nicht, dass die Teilnehmer bei der Teilnahme an der Konferenz Benutzername und Passwort eingeben. Daher müssen wir ein anonymes Login für Gäste erstellen, indem wir die folgenden Zeilen am Ende dieser Datei hinzufügen. Beachten Sie, dass Sie keinen DNS A-Eintrag für erstellen müssen guest.meet.example.com.

Damit Gäste keine Daten eingeben müssen, wollen wir das erlauben. Dazu den Block ans Ende kopieren und die URL anpassen

VirtualHost "guest.meet.example.com"
    authentication = "anonymous"
    c2s_require_encryption = false

Speichern und schließen.

Jitsi Meet-Konfigurationsdatei.

sudo nano /etc/jitsi/meet/meet.example.com-config.js

// anonymousdomain: ‘guest.example.com’,


Entferne den doppelten Schrägstriche und ändern Sie die Gastdomäne. Ersetze meet.example.com durch Jitsi Meet-Hostnamen.

anonymousdomain: ‘guest.meet.example.com’,
Speichern und schließen

Bearbeiten Sie dann die Jicofo-Konfigurationsdatei. Erstellen wenn sie noch nicht existiert.

sudo nano /etc/jitsi/jicofo/sip-communicator.properties


Einfügen am Ende dieser Datei

org.jitsi.jicofo.auth.URL=XMPP:meet.example.com
Speichern und schließen

Neustart aller Dienste

sudo systemctl restart jitsi-videobridge2 prosody jicofo


Benutzer anlegen.
Damit Räume angelegt werden können, bedarf es noch eines lokalen Benutzers.

sudo prosodyctl register username meet.example.com

History der Räume entfernen?

nano /usr/share/jitsi-meet/interface_config.js

RECENT_LIST_ENABLED to false

Um später zu schauen welche Accounts gerade existieren. /var/lib/prosody/domainnamen/accounts
Dort finden man ein File pro Benutzer mit Kennwort.

Neustart
Alles geklappt? Dann Neustart der Dienste.

service jicofo restart
service jitsi-videobridge2 restart
service prosody restart

Nun kann man sich über die URL im Browser mit dem lokalen Nutzer authentifizieren und dann den Wunschraum erstellen. Dann den Link an die Nutzer verteilen und ausprobieren.

Kleiner Tipp: Bei Hetzner kann man im Webfrontend auch schön die aktuelle Auslastung der Instanz monitoren. Sollte es dann Ressourcenengpässe geben, sind diese sofort zu sehen.

Neustart als ein Befehl

sudo systemctl restart jitsi-videobridge2 prosody jicofo

Wenn man mal alles löschen will (purge)

sudo apt purge jigasi jitsi-meet jitsi-meet-web-config jitsi-meet-prosody jitsi-meet-turnserver jitsi-meet-web jicofo jitsi-videobridge2


2 thoughts on “jitsi – aber sicher!

  1. Hier noch ein Tipp: Sollte es Probleme mit der Performance geben kann in der Datei /etc/jitsi/meet/jitsi.domain.de-config.js (der Dateinamen wird in Abhängigkeit verwendeten Domain generiert) kann die Auflösung festgelegt und somit reduziert werden. Damit können dann mehr Teilnehmer an einer Jitsi meet Webkonferenz teilnehmen.

Comments are closed.