Wie installiere ich das Videokonferenzsystem Jitsi Meet unter Ubuntu 20.04

|   Ubuntu | Ubuntu 20.04Jitsi

Jitsi Meet ist eine Open-Source WebRTC-JavaScript-Anwendung, die Jitsi Videobridge nutzt, um sichere und skalierbare Videokonferenzen zu ermöglichen.

Schritt 1: Erforderliche Pakete und Repository-Aktualisierungen

Du benötigst folgende Pakete:

  • gnupg2
  • sudo (nur erforderlich, wenn du sudo verwenden)

Stell sicher, dass dein System auf dem neuesten Stand ist und die erforderlichen Pakete installiert sind:

apt update
apt install gnupg2 sudo apt-transport-https

Auf Ubuntu-Systemen erfordert Jitsi Abhängigkeiten von Ubuntu's universe Paket-Repository. Um sicherzustellen, dass dies aktiviert ist, führst du folgenden Befehl aus:

sudo apt-add-repository universe
sudo apt update

Schritt 2: Einrichtung Domain, DNS und FQDN

Zur Vorbereitung musst du den DNS-A-Eintrag für deine Domain auf die öffentliche IP-Adresse deines Servers verweisen lassen. Sollte sich der Server hinter einem Router befinden und lediglich eine über private IP-Adresse verfügen, muss der Eintrag auf die öffentliche IP des Routers verweisen. In diesem Fall musst du sicherstellen, das dein Server mittels Network Address Translation (NAT) über den Router erreichbar ist.

Sollte dein Server bzw. dein Router nur über eine dynamische (wechselnde) IP-Adresse erreichbar sein, kannst du einen dynamischen DNS-Dienst verwenden.

Domain und DNS einrichten

Einrichten des Fully Qualified Domain Name (FQDN) (optional)

Wenn für deinen Server, der für die Jitsi Meet-Instanz verwendet werden soll, ein FQDN (z. B. meet.open-how2.de) im DNS eingerichtet ist, kannst du mit dem folgenden Befehl den Hostname (im Beispiel: meet) setzen:

sudo hostnamectl set-hostname meet

Füge dann den FQDN in die Datei /etc/hosts ein und verknüpfe ihn mit der Loopback-Adresse:

sudo nano /etc/hosts
127.0.0.1 localhost
x.x.x.x meet.open-how2.de meet

Hinweis: x.x.x.x ist die öffentliche IP-Adresse deines Servers.

Teste anschließend, ob du den FQDN anpingen kannst:

ping "$(hostname)"

Wenn alles wie erwartet funktioniert, solltest du folgende Ausgabe sehen:

PING meet.open-how2.de (127.0.1.1) 56(84) bytes of data.
64 bytes from meet.open-how2.de (127.0.1.1): icmp_seq=1 ttl=64 time=0.017 ms
64 bytes from meet.open-how2.de (127.0.1.1): icmp_seq=2 ttl=64 time=0.040 ms
64 bytes from meet.open-how2.de (127.0.1.1): icmp_seq=3 ttl=64 time=0.018 ms
...

Schritt 3: Einrichten und Konfigurieren der Firewall

Die folgenden Ports müssen in deiner Firewall offen sein, um den Datenverkehr zum Jitsi Meet-Server zuzulassen:

  • 80 TCP - für die Überprüfung / Erneuerung von SSL-Zertifikaten mit Let's Encrypt
  • 443 TCP - für allgemeinen Zugang zu Jitsi Meet
  • 4443 TCP - für Fallback-Netzwerk-Video/Audio-Kommunikation (wenn z. B. UDP blockiert ist)
  • 10000 UDP - für allgemeine Netzwerk-Video/Audio-Kommunikation
  • 22 TCP - wenn Sie über SSH auf Ihren Server zugreifen (ändern Sie den Port entsprechend, wenn er nicht 22 ist)

Wenn du ufw verwendest, kannst du die folgenden Befehle verwenden:

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 4443/tcp
sudo ufw allow 10000/udp
sudo ufw allow 22/tcp
sudo ufw enable

Überprüfe den Firewall-Status mit folgendem Befehl:

sudo ufw status verbose

Du solltest jetzt folgende Ausgabe sehen:

80/tcp                     ALLOW IN    Anywhere
443/tcp                    ALLOW IN    Anywhere
4443/tcp                   ALLOW IN    Anywhere
10000/udp                  ALLOW IN    Anywhere
22/tcp                     ALLOW IN    Anywhere
80/tcp (v6)                ALLOW IN    Anywhere (v6)
443/tcp (v6)               ALLOW IN    Anywhere (v6)
4443/tcp (v6)              ALLOW IN    Anywhere (v6)
10000/udp (v6)             ALLOW IN    Anywhere (v6)
22/tcp (v6)                ALLOW IN    Anywhere (v6)

Eine etwas ausführlichere Anleitung zur Einrichtung der UFW findest du hier.

Schritt 4: Jitsi-Meet installieren

Hinzufügen des Jitsi-Paket-Repositorys

Als erstes fügst du das Jitsi-Repository zu den Paketquellen hinzu, um die Jitsi-Meet-Pakete verfügbar zu machen.

curl https://download.jitsi.org/jitsi-key.gpg.key | sudo sh -c 'gpg --dearmor > /usr/share/keyrings/jitsi-keyring.gpg'
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

Das Installationsprogramm prüft, ob Nginx oder Apache bereits installiert sind (in dieser Reihenfolge). Wenn keiner der genannten Webserver gefunden wird, wird als Standardeinstellung Nginx installiert und ein virtueller Host für die Jitsi-Meet-Instanz konfiguriert.

Wenn bereits ein Nginx-Server auf Port 443 auf derselben Maschine läuft, wird die Konfiguration des Turn-Servers übersprungen, da sie mit dem aktuellen Port 443 in Konflikt gerät.

Die Installation von Jitsi-Meet startest du mit folgendem Befehl:

sudo apt install jitsi-meet

Hostname

Während der Installation wirst du aufgefordert, den Hostnamen deiner Jitsi Meet-Instanz einzugeben. Wenn du eine Domain hast, verwendest du den spezifischen Domainnamen (z. B.: meet.open-how2.de. Alternativ kannst du die IP-Adresse des Servers eingeben (falls sie statisch ist bzw. sich nicht ändert).

Dieser Hostname wird für die Konfiguration des virtuellen Hosts innerhalb von Jitsi-Meet verwendet, und du und deine Korrespondenten verwenden ihn auch für den Zugang zu den Webkonferenzen.

Erzeugung eines SSL/TLS-Zertifikates

Im weiteren Verlauf er Installation wirst du nach der Generierung eines SSL/TLS-Zertifikates gefragt. Dieses wird für eine verschlüsselte Kommunikation benötigt. Hierbei kannst du zwischen verschiedenen Optionen wählen.

  1. Die empfohlene Option ist, Generate a new self-signed certificate (ein neues selbstsigniertes Zertifikat zu erzeugen) und später ein Lets-Encrypt-Zertifikat zu erstellen (dieses ersetzt das selbstsignierte Zertifikat).
  2. Wenn du jedoch ein anderes Zertifikat verwenden oder eine anderen Challenge-Typ von Let's Encrypt wählen möchtest, solltest du zuerst dieses Zertifikat erstellen, dann jitsi-meet installieren und I want to use my own certificate (Ich möchte mein eigenes Zertifikat verwenden) auswählen.
  3. Du kannst auch das selbstsignierte Zertifikat verwenden, aber dies wird aus den folgenden Gründen nicht empfohlen:
    • Die Verwendung eines selbstsignierten Zertifikats führt dazu, dass in den Browsern Ihrer Benutzer Warnungen angezeigt werden, da diese die Identität deines Servers nicht überprüfen können.
    • Jitsi Meet mobile Anwendungen erfordern ein gültiges, von einer vertrauenswürdigen Zertifizierungsstelle signiertes Zertifikat und können keine Verbindung zu deinem Server herstellen, wenn du ein selbstsigniertes Zertifikat wählst.

Wähle an dieser Stelle Generate a new self-signed certificate aus.

Generieren eines Let's Encrypt-Zertifikats (optional, aber dringend empfohlen)

Für eine verschlüsselte Kommunikation benötigst du ein TLS-Zertifikat, wie bereits oben schon erwähnt.

Die beste Methode ist die Erstellung eines Zertifikats, das von einer Zertifizierungsstelle signiert ist. Auf diese Weise kannst du Probleme mit einem selbstsignierten Zertifikat vermeiden. Die einfachste Methode ist die Verwendung von Let's Encrypt.

Führe einfach den folgenden Befehl in deiner Shell aus:

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

Während der Installation des Zertifikats wirst du nach deiner E-Mail-Adresse gefragt. Gib deine E-Mail-Adresse ein und bestätige sie mit ENTER.

Schritt 5: Zugriffskontrolle

Die Zugangskontrolle für Konferenzen/Räume wird in den Räumen verwaltet, du kannst nach der Erstellung auf der Webseite des jeweiligen Raumes ein Passwort festlegen.

Hinweis

Standardmäßig kann jeder, der Zugang zu deinem Jitsi Meet-Server hat, eine Konferenz starten: Wenn dein Server für die Welt geöffnet ist, kann jeder mit jedem anderen einen Chat führen. Wenn du die Möglichkeit, eine Konferenz zu starten, auf registrierte Benutzer beschränken möchtest, musst du eine "sichere Domäne" einrichten. Hierzu gibt es in Kürze ein weiteres How-To.