Videokonferenzsysteme /BigBlueButton, Cisco Webex Meeting, Facebook Messenger, FaceTime, GoToMeeting, Hangouts, Jitsi, Microsoft Teams, Skype, WhatsApp & Co.
Spaetestens seit Corona sind Videokonferenzssysteme in aller Munde, ermoeglichen Sie doch Teamarbeit in Zeiten von Reisebeschraenkungen und Schulschliessungen. Standen am Beginn noch die schnellen, sofortigen Loesungen im Vordergrund, erhielten im weiteren Verlauf doch die Zuverlaessigkeit, die Zulaessigkeit, die Einfachheit der Bedienung, die Verfuegbarkeit, der Datenschutz und die Moeglichkeit der Datenkontrolle einen hoeheren Stellenwert. Wir betreuen Sie auf allen Ihren Wegen und stehen mit Rat und Tat zur Verfuegung.
Nachfolgend beschreiben wir exemplarisch die Installation und die Konfiguration eines eigenen selbstgehostenen Videokonferenzsystemes auf Basis der Open-Souce-Anwendung Jitsi mit einer sehr datensparsamen und datensicheren Einstellung. Konfiguriert man den Server unter diesen Bedingungen ist auch ein sehr schmalbruestiger und damit preiswerter Server ausreichend, das genannte System laeuft auf einem 1 € brutto teurem V-Server von Ionos mit 1 vCore, 512 MB Arbeitsspeicher und 10 GB SSD-HDD, als Betriebssystem wurde das - als bei Ionos als Image vorhandene - Ubuntu 20.04 gewaehlt. Als Grundlage bzw. zum weiteren Einstieg in die Materie verweisen wir auf die folgenden - umn. sehr hilfreichen - Ausfuehrungen:
- Tobias Scheible, Artikelserie: Videokonferenzen mit Jitsi, https.//scheible.it
- Dr. Joerg Mayer, Jitsi-Videokonferenzsystem: Server-Installation und Konfiguration, https://praatpfanne.lingphin.ne
Anleitung (Installation eines Jitsi-Server auf dem kleinstverfuegbarem IONOS-Server (VPS S, 1 vCore, 512 MB Ram, 10 GB SSD-HDD, monatliche Kosten 1,00 € brutto je Monat, eine eigene Subdomain war vorhanden)
- Serverbuchung / Als erster Schritt wird der entsprechende Server bei IONOS gebucht und dann ueber das Login und das Webinterface das Image Ubuntu 20.04 installiert (Zusatzhinweis: bei dem Vorgang "Image neu installieren" kann man unter den "Weitere Einstellungen" eine eigenes Passwort fuer den Server- root-Zugriff hinterlegen, das vereinfacht die weiteren Schritte). Die Installation dauert ca. 5 Minuten. Wir schauen derweil nach der IP des Servers und konfigurieren unsere Sub-Domain entsprechend.
- Als zweiten Schritt loggen wir uns mit Putty (PuTTY - a free SSH and telnet client for Windows) mit dem Login root und dem selbstgewaehltem Passwort auf unserem Server ein (Achtung: das Passwort wird bei der Eingabe nicht angezeigt) und konfigurieren die verwendete Domain, damit die diversen Jitsi-Module reibungslos zusammenarbeiten: {# sudo hostnamectl set-hostname meet.beispieldomain.beispieldomainendung} Zusaetzlich muss in der Datei /etc/hosts ebenfalls die Domain als localhost eingetragen werden. Dazu kann die Domain einfach in der ersten Zeile am Ende hinzugefuegt werden. {# sudo nano /etc/hosts} (127.0.0.1 localhost.localdomain localhost meet.beispieldomain.beispieldomainendung) (Zusatzhinweis: Es ist ratsam, vor der Bearbeitung wichtiger Dateien eine Sicherungskopie der Originaldatei anzulegen. Wir speichern dazu eine Kopie der Originalddatei mit der Endung .BKP
Systemaktualisierung / Nun ueberpruefen wir die Systemaktualitaet unseres Servers und Updaten & Upgraden diesen: {# sudo apt update && apt upgrade}- Schutz des Servers / Eine rudimentaere Firewall fuer den Schutz unseres Servers und die Funktionsfaehigkeit der Jitsi-Installation konfigurieren wir am besten in der IONOS-Oberflaeche, das ist einfach unter "Netzwerk/Firewall-Richtlinien" moeglich. Aktion: Zulassen, Erlaubte IP: Alle, Protokoll: TCP, Port: 22, Aktion: Zulassen, Erlaubte IP: Alle, Protokoll: TCP, Port: 80, Aktion: Zulassen, Erlaubte IP: Alle, Protokoll: TCP, Port: 443, Aktion: Zulassen, Erlaubte IP: Alle, Protokoll: TCP, Port: 4443, Aktion: Zulassen, Erlaubte IP: Alle, Protokoll: UDP, Port: 10000
- Installation apt-transportt-https-Protokoll / {# sudo apt install apt-transport-https}
- Vorbereitung und Durchfuehrung der eigentlichen Jitsi Installation / {# sudo curl https://download.jitsi.org/jitsi-key.gpg.key | sudo sh -c 'gpg --dearmor > /usr/share/keyrings/jitsi-keyring.gpg'}, {# sudo echo 'deb [signed-by=/usr/share/keyrings/jitsi-keyring.gpg] https://download.jitsi.org stable/' | sudo tee /etc/apt/sources.list.d/jitsi-stable.list > /dev/null}, {# sudo apt update}, [HINWEIS: Bei einer Neuinstallation am 13.12.2022 aren folgende Zwischenschritte neu noetig (ansonsten gabs es die Fehlermeldung "The following packages have unmet dependencies: jitsi-meet : Depends: jitsi-meet-prosody (= 1.0.6600-1) but it is not going to be installed E: Unable to correct problems, you have held broken packages." {# sudo echo deb http://packages.prosody.im/debian $(lsb_release -sc) main | sudo tee -a /etc/apt/sources.list}, {# sudo wget https://prosody.im/files/prosody-debian-packages.key -O- | apt-key add -}, {apt-get update}, {apt-get install -y prosody-0.11} und {sudo apt install}.] {# sudo apt -y install jitsi-meet}, (Zusatzhinweise: In der Installation werden diverse Parameter (Installationsdomain fuer die Videobridge, e-mail fuer SSL-Zertifikate) abgefragt, diese sind selbsterklaerend. Diese Installation dauert nun etwas.
- Systemaktualisierung / Nun ueberpruefen wir die Systemaktualitaet unseres Servers und Updaten & Upgraden diesen: {# sudo apt update && apt upgrade}
- Fertig! Ihr Eigener Jitsi-Server ist nun einsatzbereit und ready fuer einen ersten Test. (Zusatzhinweise: In diesem jetzigem Zustand funktioniert der Jitsi-Server in seiner Grundkonfiguration. Obgleich diese Grundinstallation schon sehr datensparsam ist, bestehen doch noch ergebliche Optimierungsmoeglichkeiten. Auch kann jeder - der Ihren Domainnamen kennt - diesen Server fuer eigene Videokonferenzen nutzen, das ist natuerlich gerade hinsichtlich der gewaehlten preiswertmoeglichsten Serverausstattung bedenklich (Die Serverauslastung kann am einfachsten in der IONOS-Oberflaeche begutachtet werden))
- Interfacestandardsprache / Umstellung der Standardsprache des Nutzerinterfaces auf Deutsch, {# sudo nano /etc/jitsi/meet/meet.beispieldomain.beispieldomainendung-config.js}, (Aenderung des Schalters defaultLanguage auf de)
- Wilkommensseite / Einschalten der Vorschaltseite, um den Teilnehmern das einfache Eingeben ihres Namens sowie Einstellungen des Mikrofones und der Kamera vor Konferenzbeitritt zu ermoeglichen, {# sudo nano /etc/jitsi/meet/meet.beispieldomain.beispieldomainendung-config.js}, (Aenderung des Schalters prejoinConfig enabled: true)
- Drittserverbeteiligung verhindern / Ausschalten jedmoeglicher DrittServerAnfrage, {# sudo nano /etc/jitsi/meet/meet.beispieldomain.beispieldomainendung-config.js}, (Aktivierung & Aenderung des Schalters disableThirdPartyRequests: true)
- 2er Direktverbindung unterbinden / {# sudo nano /etc/jitsi/meet/meet.beispieldomain.beispieldomainendung-config.js (Aenderung des Schalters p2p: enabled: auf false), (Zusatzhinweise: In der Grundkonfiguration verbinden sich 2 Teilnehmer direkt, in diesem Falle kann die IP des Gegenuebers ausgelesen werden. Dies verhindern wir indem wir immer die Verbindung nur ueber den Server zulassen)
- Bedienungsvereinfachung / Werkzeugleiste immer zu sehen, {# sudo nano /etc/jitsi/meet/meet.beispieldomain.beispieldomainendung-config.js}, (Aktivierung & Aenderung des Schalters toolbarConfig: alwaysVisible: auf true)
- Ausschalten der Moderatorenkennzeichnung aus Perfomancegruenden / {# sudo nano /etc/jitsi/meet/meet.beispieldomain.beispieldomainendung-config.js}, (Aktivierung & Aenderung des Schalters disableModeratorIndicator: auf true)
- Deaktivierung des Mikrofons und der Kamera neuer Teilnehmer / Videokonferenzen werden immer mit ausgeschalteter Kamera und deaktiviertem Mikrofon gestartet, {# sudo nano /etc/jitsi/meet/meet.beispieldomain.beispieldomainendung-config.js}, (Aktivierung & Aenderung des Schalters startAudioOnly: auf true & startAudioMuted: auf 1), (Zusatzhinweis: Der Schalter startAudioMuted: 1 bewirkt, dass jeder Teilnehmer nach dem ersten Teilnehmer (daher hier die Zahl 1) stumm beitritt. Diese Zahl ist natuerlich variabel und kann auch auf jedwede andere Zahl eingestellt werden.)
- Ausschalten der Kennzeichnung des aktiven Sprechers aus Perfomancegruenden / {# sudo nano /usr/share/jitsi-meet/interface_config.js}, (Aenderung des Schalters DISABLE_DOMINANT_SPEAKER_INDICATOR: auf true)
- Ausschalten der sinnfreien Namenvorschlaege fuer die Konferenzraeume / {# sudo nano /usr/share/jitsi-meet/interface_config.js}, (Aenderung des Schalters GENERATE_ROOMNAMES_ON_WELCOME_PAGE: auf false)
- Ausschalten der Werbung fuer die Jitsi-Apps (Android/Apple) auf der Starseite / {# sudo nano /usr/share/jitsi-meet/interface_config.js}, (Aenderung des Schalters DISPLAY_WELCOME_FOOTER: auf false)
- Komplette Deaktivierung des IP-Loggings des von Jitsi verwendeten Webserver nginx / {# sudo nano /etc/nginx/nginx.conf}, (Aenderung des Schalters access_log auf off & Aenderung des Schalters error_log auf off )
- Das von Jitsi verwendeten Modul videobridge protokolliert die Zugriffe permanent. Hier aendern wir die Voreinstellung auf das Level Warning, {# sudo nano /etc/jitsi/videobridge/logging.properties}, (Aenderung des Schalters .level auf WARNING)
- Fertig 2! / Wieder ein Stueck geschafft. Jetzt ist die Jitsi-Instanz schon sehr ressourcenschonend und sparsam im Datenumgang. Abschliessend widmen wir uns noch einer Zugangskontrolle, um den Server vor einer Uberlastung zu schuetzen.
- Anpassung des XMPP-Servers / {# sudo nano /etc/prosody/conf.avail/meet.beispieldomain.beispieldomainendung.cfg.lua}, (Hier aendern wir den authentication-Parameter im Abschnitt "VirtualHost "meet.beispieldomain.beispieldomainendung" von anonymous in internal_hashed und fuegen einen neuen VirtualHost mit den Parametern VirtualHost "guest.meet.beispieldomain.beispieldomainendung", authentication = "anonymous" und c2s_require_encryption = false (Einfuegen am besten vor der Zeile Component "conference.beispieldomain.beispieldomainendung" "muc") ein.
- Anpassung der Jitsi-Komponente jicofo / {# sudo nano /etc/jitsi/jicofo/sip-communicator.properties}, (Hier fuegen wir am Ende die Zeile org.jitsi.jicofo.auth.URL=XMPP:tele.beispieldomain.beispieldomainendung ein, ggf. muss diese Datei auch erst angelegt werden)
- Anpassung der Jitsi-Komponente meet ( {# sudo nano /etc/jitsi/meet/meet.beispieldomain.beispieldomainendung-config.js}, (Hier aktivieren wir im hosts XMPP den Schalter anonymousdomain und aendern die hinterlegte domain in guest.meet.beispieldomain.beispieldomainendung)
- Anlegen der berechtigten Benutzer / {# prosodyctl register BENUTZERNAME meet.beispieldomain.beispieldomainendung PASSWORT}, (Mit diesem Befehl werden nun die jeweiligen berechtigten Benutzer angelegt, dies ist natuerlich auch zu jedem spaeterem Zeitpunkt moeglich. (Zusatzhinweis: e-mail-Adresse funktionieren als BENUTZERNAME nicht, am besten waehlt man was ganz einfaches, normales wie den Vornamen etc.)
- Systemaktualisierung / Nun ueberpruefen wir die Systemaktualitaet unseres Servers und Updaten & Upgraden diesen: {# sudo apt update && apt upgrade}
- Neustart des Jitsi-Videokonferenzsystemes / {# systemctl restart nginx.service prosody.service jicofo.service jitsi-videobridge2.service}, Wir haben hier nun weitrechende Aenderung vorgenommen. Um alle Veraenderungen zu uebernehmen, muessen wir das Jitsi-Videokonferenzsystem neu starten.
- Fertig 3!
- Textaenderungen im Jitsi-System / Alle verwendeten Textausgaben sind in der jeweiligen sprachspezifischen Datei hinterlegt. Etwaige Aenderungen werden dort hinterlegt, {# sudo nano /usr/share/jitsi-meet/lang/main-de.json}