Installation der Zoom Alternative Jitsi Meet unter Ubuntu 18.04
Corona zwingt uns alle zur Arbeit von zu Hause und zu Videokonferenzen an Stelle von persönlichen Treffen. Wer da nach einer schnellen Lösung sucht, landet üblicherweise bei Diensten wie Skype und Zoom. Diese Lösungen funktionieren gut und sind quasi sofort verfügbar. Konto anlegen und los geht’s. Wenn Schnelligkeit nicht das einzige Kriterium ist, der sollte einen genauen Blick auf Jitsi Meet werfen. Mit dieser Anleitung installierst Du diese quelloffene Zoom Alternative ohne große Mühe auf Deinem eigenen Server und genießt leistungsfähige Videotelefonie bei maximaler Unabhängigkeit und Datensicherheit. Wir von datamate sind Fans von Jitsi Meet und möchten mit diesem Beitrag helfen, Jitsis Verbreitung und Anwendbarkeit zu steigern. Schulen und wohltätige Vereine unterstützen wir bis auf weiteres kostenlos bei der Installation eines Jitsi-basierten Webkonferenzsystems.
Jitsi Meet als bessere Alternative zu Zoom und Skype
Die Zoom App gehört sowohl unter Android als auch unter iOS seit Tagen zu den am häufigsten heruntergeladenen Apps weltweit. Bis Ende Februar 2020 hat Zoom mehr Neukunden gewonnen als im ganzen Jahr 2019. Unverdient ist dieser Erfolg auch nicht: Zoom ist leicht zu bedienen, unterstützt alle relevanten Plattformen und die Audio- und Videoqualität sind gut.
Mit der steigenden Beliebtheit von Zoom wurde zuletzt aber auch genauer hingeschaut und die Kritik häufte sich. Anfang April titelte Heise Online Ist Zoom ein Sicherheitsalbtraum? Und als ob SpaceX, das Weltraumunternehmen des Senkrechtstarters Elon Musk, auf diese Frage eine Antwort geben wollte, verbot es seinen Mitarbeitern aufgrund von Sicherheitsbedenken die Nutzung von Zoom.
Eine Generalverurteilung von Zoom und Co. ist sicher voreilig. Klar ist aber auch: Bei Zoom und Skype laufen die Datenströme der eigenen Videokonferenzen über Server, die nicht unter eigener Kontrolle sind. Welche Daten wie und wie lange gespeichert werden, kann nicht kontrolliert werden. Die Betreiber können noch so sehr beteuern, dass die Datenströme mit aktuellen Verschlüsselungstechniken geschützt sind, eine Garantie hat man nicht, da alle Ströme auf den Servern der Anbieter zusammenlaufen. Insbesondere Organisationen, die besondere personenbezogenen Daten verarbeiten, sowie Anwälte, Steuerberater und Unternehmen mit vertraulichen Informationen sollten nicht leichtfertig ihre Kommunikation über solche fremden Systeme laufen lassen.
Jitsi Meet ist mit Blick auf Funktionen ähnlich umfangreich wie Zoom. Für Videokonferenzen übliche Teilnehmerzahlen schafft Jitsi Meet locker, bei Verwendung geeigneter Clients wie Chrome oder den iOS und Android Apps. Die nicht triviale Installation und die noch weniger triviale Einrichtung einer Authentifizierung als gewichtigste Argument gegen Jitsi versuchen wir mit diesem und weiteren Beiträgen entgegenzutreten. Wer will, kann mit diesen Anleitungen ein Videokonferenzsystem auf dem eigenen Server einrichten, das es mit Zoom aufnehmen kann.
Zum eigenen Jitsi Videokonferenzsystem
Die folgende Anleitung beschreibt die Installation von Jitsi Meet auf einem Linux Server mit Ubuntu Server 18.04 LTS (Bionic Beaver). Dieser Server ist über eine öffentliche, statische IPv4-Adresse direkt aus dem Internet erreichbar und eine beliebige Domain bzw. Subdomain verweisst per A-Record auf diese IP-Adresse. Für dir einfachere Illustration benutze ich in diesem Artikel für diese beliebige Domain stellvertretend meet.datamate.org.
Aufgrund der geringen Abhängigkeiten kann man die Zoom Alternative durchaus neben anderen Diensten auf einem bestehenden Server mit eigener öffentlicher IP-Adresse betreiben. Die Anleitung sollte auch unter Ubuntu 16.04 LTS und Debian 9 sowie 10 funktionieren. Getestet habe ich dies aktuell noch nicht. Hinweis: Ein Großteil der Installationsanleitung stammt aus dem offiziellen Jitsi Meet Quick Install Guide, wurde jedoch um ein paar meiner Erfahrungen ergänzt.
Wer keinen solchen Server besitzt oder anmieten will, kann Jitsi Meet schließlich auch auf einem Computer oder einer virtuellen Maschine im lokalen Netzwerk installieren. Auf die statische IPv4-Adresse des Internetanschlusses sollte man aber im Sinner der Stabilität nicht verzichten und der Router muss Portweiterleitungen für die Ports 80, 443, 4443 und 10000 unterstützen.
Vorbereitung der Installation
Beginnen wir mit den Vorbereitungen. Alle Befehle werden übrigens – wenn nicht explizit anders beschrieben – entweder als Root oder mit einem vorangestellten sudo ausgeführt.
Zunächst sollte das System auf dem neuesten Stand gebrachte werden.
apt update && apt upgrade -y
Falls noch nicht geschehen, dann muss der Webserver NGINX installiert und ein paar NGINX Verzeichnisse angelegt werden.
apt install nginx mkdir -p /etc/nginx/{sites-enabled,sites-available,modules-enabled}
Weiterhin empfiehlt es sich, die für das Jitsi Videokonferenzsystem verwendete (Sub-)Domain dem Betriebssystem bekannt zu machen. Dies macht man mit einem Eintrag in der /etc/hosts. Öffne die Datei mit einem Editor und ergänze die folgende Zeile:
127.0.0.1 localhost meet.datamate.org # wenn auch andere Domains auf den Server verweisen, können hier auch weitere Domains stehen.
Auch ist es ratsam, den Hostnamen an den FQDN anzupassen. Dies erledigen die folgenden beiden Befehle:
echo "meet.datamate.org" > /etc/hostname hostname meet.datamate.org
Anpassung der Firewall und des Routers
Auf gemieteten VServern oder Dedicated Servern ist normalerweise keine Firewall aktiviert, d.h. sämtliche Dienste bzw. Ports können direkt über das Internet angesprochen werden. In diesem Fall sind keine Anpassungen notwendig. Natürlich empfiehlt es sich aber, später eine Firewall einzurichten.
Wird Jitsi Meet auf einem bestehenden System mit Firewall oder auf einem (V)Server hinter einem Router installiert, dann müssen die Ports 80, 443, 4443 (alle TCP) und 10000 (UDP) geöffnet werden. Bei der Linux Firewall ufw sind dafür diese Befehle notwendig:
ufw allow 80 ufw allow 443 ufw allow 4443/tcp ufw allow 10000/udp
Beim Betrieb im lokalen Netzwerk hinter einem Router müssen die vier oben genannten Ports an die lokale IP-Adresse des Servers weitergeleitet werden. Dies erfolgt im Webinterface des Routes. In der Abbildung stellen wir es für eine Fritz!Box mit aktuellem Fritz!OS dar.
Auch bei den anfragenden Clients müssen diese vier Ports durchlässig sein, zumindest für ausgehenden Traffic. Bei privaten Internetanschlüssen mit handelsüblichen Routern ist das normalerweise kein Problem. Restriktivere Firmenfirewalls jedoch können diese Ports für den ausgehenden Datenverkehr teilweise blockieren. Ob dem so ist, merkst Du beim Testen glücklicherweise sehr schnell. Wenn beispielsweise auf dem Port 10000 kein ausgehender Datenverkehr erlaubt ist, kann Du Dich zwar in eine Konferenz einwählen, jedoch scheitert die Übermittlung von Bild und Ton.
Die Installation von Jitsi Meet
Nun kann es mit der Installation des Konferenzsystems Jitsi Meet losgehen. Jitsi Meet ist aktuell noch nicht in den offiziellen Ubuntu Paketquellen enthalten. Deshalb muss die entsprechende Paketquelle (=Repository) eingebunden werden. Anschließend läßt sich das Meta-Paket jitsi-meet, welches die drei Bestandteile Videobridge, Jicofo und Prosody enthält, einfach mit dem Paketverwaltungstool apt installieren.
wget -qO - https://download.jitsi.org/jitsi-key.gpg.key | apt-key add - echo 'deb https://download.jitsi.org stable/' >> /etc/apt/sources.list.d/jitsi-stable.list apt update apt install jitsi-meet
Während der Installation wird man zwei Dinge gefragt:
- Unter welcher Domain soll später Jitsi-Meet laufen? (“The host name of the current installation:”)
- Sollen neue Zertifikate erzeugt oder existierende verwenden werden? (“SSL certificate for the Jitsi Meet instance”)
Bei der ersten Abfrage sollte man direkt die finale Domain angeben. Für unsere Beispielkonfiguration ist das meet.datamate.org. Bei der Frage nach den Zertifikaten muss man abwägen. Wenn man schon über ein Let’s Encrypt Zertifikat verfügt, kann man diese Option wählen und den Pfad zu den Zertifikatsdateien angeben. Alternativ kann man zunächst selbsterzeugte Zertifikate erstellen lassen und Let’s Encrypt nachträglich einrichten.
Nach ein bis zwei Minuten ist die Installation von Jitsi Meet abgeschlossen. Wenn keine Firewall oder Router den Zugriff verhindert (und auch sonst alles gut ging), kann man nun auch schon die Domain aufrufen und die erste Konferenz starten. Nicht überrascht sein sollte man bei Verwendung selbst signierter Zertfikate über den Sicherheitshinweis. Diesen kann man erstmal akzeptieren. Der Warnhinweis verschwindet auch durch den Einsatz eines Let’s Encrypt Zertifikats, dessen Einrichtung wir im nächsten Schritt erläutern.
Umstellung auf ein Let’s Encrypt Zertifikat
Im Rahmen der Installation wurde eine neue NGINX Konfigurationsdatei unter /etc/nginx/sites-available erstellt und ein entsprechender Symlink unter /etc/nginx/sites-enabled erzeugt.
Sollte man bei der Installation noch kein Let’s Encrypt Zertifikat besessen haben, muss man dieses jetzt beantragen und in der Konfigurationsdatei meet.datamate.org.conf hinterlegen. Jitsi Meet bringt für diese Aufgabe eine praktische Hilfe in Form eines Skripts mit. Dieses muss einfach ausgeführt werden, die Konfiguration erfolgt dann automatisch. Nach der Ausführung des Skripts sollte beim Aufruf der Domain kein Sicherheitshinweis mehr auf Probleme hinweisen. Der Befehl auf der Kommandozeile zum Ausführen lautet:
/usr/share/jitsi-meet/scripts/install-letsencrypt-cert.sh
Alternativ kann man natürlich auch auf jede erdenkliche andere Art sein Let’s Encrypt Zertifikat erstellen und dann in der NGINX Konfigurationsdatei eintragen. Gleiches gilt auch für andere SSL/TLS-Zertifikate. Entscheidend ist, dass die Konfigurationsdateien des Webserver NGINX nach Anpassung keine Fehler enthält und sich der Webserver neu starten lässt.
# so testet man die Konfiguration: nginx -t # Das Ergebnis sollte dann so aussehen: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful # so starte man den Webserver neu, wenn die Konfiguration in Ordnung ist. nginx -s reload
Konferenzräume für alle
Fertig ist die Einrichtung Deiner Zoom Alternative! Nach dieser Standardinstallation erlaubt Jitsi Meet jedem Besucher der Domain die Eröffnung eines Konferenzraums. Dies gelingt entweder, in dem man den gewünschten Raumnamen in das Eingabefeld eintippt oder die Domain mit angehängtem Raumnamen in die Adresszeile des Browsers eingibt. Durch den Aufruf von https://meet.datamate.org/hallo betritt man also den Konferenzraum “hallo”. Wenn sich noch kein anderer Teilnehmer darin befindet, dann wird dieser eröffnet.
Dieses Verhalten findet man genauso beim öffentlich zugänglichen Jitsi Demo-System meet.jit.si sowie bei vielen anderen Systemen, die in Deutschland zur freien Verfügung stehen. Hier nur eine Mini-Auswahl, eine umfangreichere Liste gibt’s bei Jitsi auf Github:
Wer kein Problem damit hat, sein Jitsi Meet mit der Öffentlichkeit zu teilen, kann an dieser Stelle fast aufhören. Nur fast, weil man nochmals seine Datenschutzerklärung prüfen sollte, ob die ausreichend ist und den Betrieb on Jitsi Meet abdeckt.
Wer jedoch möchte, das Konferenzräume nur von den eigenen Mitarbeitern oder ausgewählten Personen eröffnet werden können, der kann gespannt sein auf die Artikel, die wir in den nächsten Tagen noch veröffentlichen werden. Die Zoom Alternative Jitsi Meet kann noch viel mehr.