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
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.
Hallo Tobias,
ich werde es mal ausprobieren. Mal sehen was das so bringt.
Danke für den Tipp