1. Schritt: System aktualisieren
  2. Schritt: Hostname einstellen
  3. Schritt: Java installieren
  4. Schritt: Jitsi Meet installieren
  5. Schritt: SSL-Zertifikat Konfiguration
  6. Schritt: Nginx-Konfiguration anpassen
  7. Schritt: Caddy als Reverse Proxy konfigurieren
  8. Erklärung der Konfiguration:
  9. Schritt: Authentifizierung für Jitsi Meet aktivieren

Einleitung

Jitsi Meet ist eine Open-Source-Videokonferenzlösung, die sowohl einfach zu verwenden als auch hochgradig anpassbar ist. Im Gegensatz zu kommerziellen Lösungen wie Microsoft Teams oder Zoom bietet Jitsi den Vorteil, dass es auf eigenen Servern gehostet werden kann, was die volle Kontrolle über Daten und Sicherheit ermöglicht. Mit Jitsi können Sie verschlüsselte Meetings abhalten, ohne auf Dritte vertrauen zu müssen. Darüber hinaus ist es kostenfrei und ermöglicht es Ihnen, Funktionen und Einstellungen ganz nach Ihren Bedürfnissen anzupassen.

Voraussetzung: Wir gehen davon aus, dass Sie bereits einen installierten und konfigurierten Ubuntu Server 22.04 haben.

Schritt: System aktualisieren

Zunächst müssen wir sicherstellen, dass das System auf dem neuesten Stand ist:

sudo apt-get update && sudo apt-get upgrade -y

Dieser Schritt stellt sicher, dass der Server die neuesten Sicherheitsupdates und Softwareaktualisierungen erhält.

Schritt: Hostname einstellen

Stellen Sie sicher, dass der Hostname des Servers korrekt konfiguriert ist:

sudo hostnamectl set-hostname jitsi.yourdomain.com

Bearbeiten Sie die /etc/hosts-Datei, um den neuen Hostnamen zu reflektieren:

sudo nano /etc/hosts

Fügen Sie die folgende Zeile hinzu (ersetzen Sie jitsi.yourdomain.com durch Ihren tatsächlichen Domainnamen und jitsi durch den gewünschten Servernamen):

127.0.1.1 jitsi.yourdomain.com jitsi

Der Hostname hilft dem Server, sich selbst im Netzwerk korrekt zu identifizieren, was wichtig für die Funktion von Diensten wie Jitsi Meet ist.

Schritt: Java installieren

Jitsi Meet erfordert Java, um ordnungsgemäß zu funktionieren:

sudo apt-get install -y openjdk-11-jre-headless

Überprüfen Sie die Java-Installation:

java -version

Java ist notwendig für einige der Jitsi-Komponenten, insbesondere für die Videobrücke (Jitsi Videobridge).

Schritt: Jitsi Meet installieren

Fügen Sie das Jitsi-Repository hinzu und installieren Sie Jitsi Meet:

wget -qO - https://download.jitsi.org/jitsi-key.gpg.key | sudo apt-key add -
sudo sh -c "echo 'deb https://download.jitsi.org stable/' > /etc/apt/sources.list.d/jitsi.list"
sudo apt-get update
sudo apt-get install jitsi-meet -y

Diese Schritte installieren die notwendigen Pakete für Jitsi Meet, einschließlich der Konferenzkomponenten wie Prosody (XMPP-Server), Jicofo (Konferenzfokus) und Jitsi Videobridge.

Schritt: SSL-Zertifikat Konfiguration

Da Let’s Encrypt nicht genutzt wird und die Zertifikatsverwaltung von einem anderen Server in unserem Caddy als Reverse Proxy übernommen wird, können Sie die Optionen während der Installation überspringen. Da wir Caddy als Reverse Proxy verwenden, werden die Zertifikate auf einem anderen Server verwaltet. Daher müssen die Standard-SSL-Einstellungen auf dem Jitsi-Server nicht verwendet werden. Das heißt durch die Auswahl von „I want to use my own certificate“ überlassen wir Caddy die Verwaltung und verwenden das vorhandene Setup.

Hier: I want to use my own certifcate auswählen

An dieser Stelle kannst du einfach die Pfade so lassen, wie sie sind, oder Platzhalter verwenden, da diese Pfade nicht wirklich relevant sein werden, wenn Caddy die SSL/TLS-Verbindung handhabt:

Die Telephony-Funktion ist optional und wird normalerweise nicht benötigt, wenn alle Teilnehmer eine Internetverbindung und ein Gerät mit Mikrofon haben.

Schritt: Nginx-Konfiguration anpassen

Nach der Installation von Jitsi müssen Sie die Nginx-Konfigurationsdatei anpassen, um sicherzustellen, dass sie korrekt mit Caddy als Reverse Proxy funktioniert.

Öffnen Sie die Nginx-Konfigurationsdatei:

sudo nano /etc/nginx/sites-available/jitsi.yourdomain.com.conf

Stellen Sie sicher, dass die Datei wie folgt aussieht:

server {
    listen 80;
    server_name jitsi.yourdomain.com;

    location / {
        proxy_pass http://localhost:8000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

Überprüfen Sie die Nginx-Konfiguration:

sudo nginx -t

Starten Sie den Nginx-Server neu:

sudo systemctl restart nginx

Schritt: Caddy als Reverse Proxy konfigurieren

Erstellen Sie eine Caddyfile auf Ihrem Caddy-Server:

jitsi.yourdomain.com {
    reverse_proxy http://ihre-lokale-IP:8000 {
        header_up X-Real-IP {remote_host}
        header_up X-Forwarded-For {remote_host}
        header_up X-Forwarded-Proto {scheme}
    }
    tls youremail@domain.com
    encode gzip

    header {
        # HTTP Strict Transport Security (HSTS)
        Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"

        # Content Security Policy (CSP)
        Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; frame-ancestors 'self'; img-src 'self' data:; connect-src 'self';"

        # Verhindert MIME-Typ-Sniffing
        X-Content-Type-Options "nosniff"

        # Schutz gegen Clickjacking
        X-Frame-Options "SAMEORIGIN"

        # Einschränkung von API-Nutzung und Features
        Permissions-Policy "fullscreen=(self), microphone=(), camera=(), geolocation=(), usb=()"

        # Referrer-Policy
        Referrer-Policy "no-referrer"
    }

    log {
        output file /var/log/caddy/jitsi-access.log
    }
}

Erklärung der Konfiguration:

  1. Reverse Proxy:
    • Leitet Anfragen von jitsi.yourdomain.com an den internen Jitsi-Server auf http://192.168.178.204:8000 weiter.
    • Zusätzliche Header wie X-Real-IP und X-Forwarded-For sorgen dafür, dass die IP-Adresse des Clients erhalten bleibt.
  2. TLS-Verschlüsselung:
    • tls youremail@domain.com aktiviert automatische HTTPS-Zertifikate über Let’s Encrypt für eine sichere Verbindung.
  3. Sicherheitsheader:
    • HSTS: Erzwingt HTTPS für die Hauptdomain und Subdomains.
    • CSP: Schränkt das Laden externer Inhalte ein und schützt vor XSS-Angriffen.
    • X-Content-Type-Options: Verhindert MIME-Typ-Sniffing.
    • X-Frame-Options: Verhindert Clickjacking durch die Einschränkung von iFrames.
    • Permissions-Policy: Regelt den Zugriff auf API-Funktionen wie Mikrofon und Kamera.
    • Referrer-Policy: Kontrolliert die Weitergabe von Referrer-Informationen.
  4. Protokollierung:
    • Zugriffsdaten werden im Log-Pfad /var/log/caddy/jitsi-access.log gespeichert, was die Analyse erleichtert.
  5. Kompression:
    • encode gzip reduziert die Größe der übertragenen Daten, um die Ladezeit zu optimieren.

Caddy fungiert als Reverse Proxy, der Anfragen an den Jitsi-Server weiterleitet. Durch die Angabe der IP-Adresse und des Ports des Jitsi-Servers in der Caddyfile können Anfragen korrekt weitergeleitet werden.

Schritt: Authentifizierung für Jitsi Meet aktivieren

Um sicherzustellen, dass nur autorisierte Benutzer Meetings erstellen können, müssen Sie die Authentifizierung in der Prosody-Konfigurationsdatei aktivieren:

Bearbeiten Sie die Prosody-Konfigurationsdatei:

sudo nano /etc/prosody/conf.avail/jitsi.yourdomain.com.cfg.lua

Fügen Sie die folgenden Zeilen hinzu oder passen Sie sie an:

VirtualHost "jitsi.yourdomain.com"
    authentication = "internal_hashed"

Erstellen Sie einen Benutzer:

sudo prosodyctl register <username> jitsi.yourdomain.com <password>

Durch die Aktivierung der Authentifizierung wird sichergestellt, dass nur registrierte Benutzer Meetings erstellen können.

Starten Sie die Dienste neu damit die Änderungen übernommen werden:

sudo systemctl restart prosody
sudo systemctl restart jicofo
sudo systemctl restart jitsi-videobridge2
sudo systemctl restart nginx

Dieses Tutorial führt Sie Schritt für Schritt durch die Installation und Konfiguration von Jitsi Meet hinter einem Caddy Reverse Proxy auf einem Ubuntu Server 22.04. Es beinhaltet die Anpassung der Konfiguration, die Authentifizierung und die Verwendung von Caddy für die SSL-Zertifikate, um eine sichere und funktionale Videokonferenzlösung bereitzustellen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert