So hosten Sie selbst einen Jitsi Meet-Server mit Passwortschutz

So hosten Sie selbst einen Jitsi Meet-Server mit Passwortschutz

Jitsi Meet ist eine kostenlose Anwendung für Videokonferenzen. Es bietet eine Open-Source-Alternative zu proprietären Videokonferenzanwendungen wie Skype oder Zoom. Jeder kann ein verschlüsseltes Jitsi-Videomeeting erstellen, indem er die Jitsi Meet-Website aufruft oder die kostenlose Jitsi-App installiert.

Der Jitsi Meet-Dienst kann auch selbst gehostet werden. Mit dem Open-Source-Server Jitsi Meet können Sie private, verschlüsselte Videokonferenzen im Internet auf einer von Ihnen kontrollierten Domain betreiben.

Die folgenden Anweisungen zeigen, wie Sie den Jitsi Meet-Server auf einem VPS installieren und die Autorisierung konfigurieren, sodass zum Erstellen neuer Meetings ein Benutzername und ein Kennwort erforderlich sind. Diese Schritte erfordern ein Konto bei einem VPS-Anbieter wie Linode oder Digital Ocean und einen registrierten Domainnamen.

Erstellen Sie einen Debian 9 VPS

Debian-Logo

Erstellen Sie zunächst einen neuen VPS für Ihren Jitsi Meet-Server. Erstellen Sie im Dashboard Ihres VPS-Anbieters einen neuen virtuellen Host mit Debian 9 und mindestens 2 GB RAM (empfohlen).

Wenn Sie beispielsweise Linode verwenden, wählen Sie in Ihrem Linode-Dashboard Erstellen > Linode. Wählen Sie unter Choose a Distribution Debian 9 und einen Linode-Plan, der 2 GB RAM bietet.

Wenn Sie Digital Ocean verwenden, wählen Sie in Ihrem Digital Ocean-Dashboard Erstellen > Droplets aus. Wählen Sie unter Distributionen Debian 9.12 x64 und einen Droplet-Plan, der 2 GB RAM bietet.

DNS-Einträge aktualisieren

Fügen Sie Ihrer Domain A/AAAA-DNS-Einträge mit dem Subdomain-Namen und der IPv4/IPv6-Adresse Ihres neuen VPS hinzu.

Zum Beispiel, um Jitsi zu hosten video.meinedomain.commelden Sie sich bei Ihrem Domänenregistrierungskonto an und bearbeiten Sie die DNS-Einträge für meinedomain.com. Fügen Sie zwei Datensätze für den Hostnamen hinzu Videoeine mit der IPv4-Adresse (der „A“-Eintrag) und eine mit der IPv6-Adresse (der „AAAA“-Eintrag).

Wenn Sie keine Subdomain verwenden möchten (z. B. mydomain.com anstelle von video.mydomain.com), lassen Sie den Hostnamen in den A/AAAA-Einträgen leer.

Aktualisieren und sichern Sie VPS

Öffnen Sie ein Terminal- oder Eingabeaufforderungsfenster. SSH zu Ihrem VPS als Root-Benutzer.

ssh [email protected]ipaddress

Aktualisieren Sie die Paketliste und aktualisieren Sie die installierte Software.

apt update && apt -y upgrade

Installieren Sie sudo und UFW (unkomplizierte Firewall).

apt install -y sudo ufw

Firewall konfigurieren

Konfigurieren Sie UFW so, dass TCP-Kommunikation auf den von SSH, HTTP und HTTPS verwendeten Ports und UDP-Datenverkehr auf Port 10000 zugelassen werden.

ufw allow ssh
ufw allow http
ufw allow https
ufw allow 10000/udp

Aktivieren Sie die Firewall.

ufw enable

Setzen Sie den Hostnamen des Servers auf Ihren FQDN, z. B. video.meinedomain.com.

hostnamectl set-hostname video.mydomain.com

Fügen Sie den FQDN zu Ihrer Hosts-Datei hinzu. Öffne die Datei /etc/hosts in einem Texteditor wie Nano.

nano /etc/hosts

Finde die Linie 127.0.0.1 lokaler Host und hängen Sie Ihren FQDN an.

127.0.0.1        localhost video.mydomain.com

Speichern Sie die Datei und beenden Sie den Editor. (Drücken Sie in Nano Strg+O, Eingabe, um die Datei zu speichern, und Strg+X, um die Datei zu verlassen.)

Erstellen Sie einen Benutzer mit sudo-Rechten

Fügen Sie ein neues Benutzerkonto hinzu. Ersetzen Sie myuser durch Ihren gewünschten Benutzernamen.

adduser myuser

Fügen Sie diesen Benutzer der Gruppe „sudo“ hinzu, damit er Befehle mit sudo ausführen kann.

usermod -aG sudo myuser

Root-SSH deaktivieren

Öffnen Sie die Konfigurationsdatei des SSH-Daemons in einem Texteditor.

nano /etc/ssh/sshd_config

Finde die Linie PermitRootLogin jaund ändern Jawohl zu Nein.

PermitRootLogin no

Speichern Sie die Datei und beenden Sie den Editor (Strg+O, Enter, Strg+X in Nano).

Starten Sie dann den SSH-Daemon neu.

systemctl restart sshd

SSH-Schlüssel hinzufügen

Die folgenden Schritte fügen dem Server einen SSH-Schlüssel hinzu, um mehr Sicherheit zu bieten. Diese Schritte sind optional, werden jedoch empfohlen.

Wenn Sie noch bei Ihrer SSH-Sitzung angemeldet sind, melden Sie sich ab.

logout

Wenn Sie keinen vorhandenen SSH-Schlüssel haben, erstellen Sie einen auf Ihrem lokalen Computer. (Wenn Sie einen vorhandenen Schlüssel verwenden möchten, überspringen Sie diesen Schritt.)

ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (C:Usersneilg/.ssh/id_rsa):

Drücken Sie die Eingabetaste, um die Standarddateinamen für öffentliche/private Schlüssel zu verwenden.

Wenn Sie dazu aufgefordert werden, wählen Sie eine starke Passphrase als zusätzliche Sicherheitsebene.

Enter passphrase (empty for no passphrase): This is my passphrase.

Übertragen Sie den Schlüssel per SSH auf Ihren Server. Unter Linux und macOS:

ssh-copy-id [email protected]ipaddress

Unter Windows 10:

cd %USERPROFILE%
type .sshid_rsa.pub | ssh [email protected]ipaddress "mkdir -p ~/.ssh;
  cat >> ~/.ssh/authorized_keys"

Melden Sie sich mit Ihrem SSH-Schlüssel beim VPS an.

ssh [email protected]ipaddress

Wenn Sie dazu aufgefordert werden, geben Sie die Schlüssel-Passphrase ein.

Deaktivieren Sie als Nächstes die passwortbasierte SSH-Authentifizierung auf dem VPS. Öffnen Sie die SSH-Daemon-Konfiguration in einem Texteditor.

sudo nano /etc/ssh/sshd_config

Finden Sie die Zeile, die lautet #PasswordAuthentication ja. Ändern Jawohl zu Neinund entfernen Sie das #, um die Zeile auszukommentieren.

PasswordAuthentication no

Speichern Sie die Datei und verlassen Sie den Editor. Starten Sie dann den SSH-Daemon neu.

sudo systemctl restart sshd

SSH-Anmeldungen sind jetzt auf Benutzer mit den öffentlichen und privaten Schlüsseldateien beschränkt, die die Schlüssel-Passphrase kennen.

Beschränken Sie als bewährte Methode den Zugriff auf das .ssh-Verzeichnis nur auf Ihren Benutzer.

sudo chmod 600 ~/.ssh/*
sudo chmod 700 ~/.ssh

Installieren Sie den Jitsi Meet-Server

Angetrieben von Jitsi

Die folgenden Schritte installieren das Jitsi Meet-Serverpaket auf Ihrem VPS.

Aktivieren Sie zunächst die Installation von APT-Paketen über HTTPS.

sudo apt install -y apt-transport-https

Fügen Sie Jitsi zur Liste der APT-Repositories hinzu.

echo 'deb https://download.jitsi.org stable/' | sudo tee 
/etc/apt/sources.list.d/jitsi-stable.list

Laden Sie den öffentlichen Verschlüsselungsschlüssel des Jitsi-Repositorys herunter und installieren Sie ihn.

wget -qO -  https://download.jitsi.org/jitsi-key.gpg.key | sudo 
apt-key add -

Aktualisieren Sie Ihre APT-Paketliste.

sudo apt update

Installieren Sie den Jitsi Meet-Server.

sudo apt install -y jitsi-meet

Wenn Sie nach dem Hostnamen der aktuellen Installation gefragt werden, geben Sie Ihren FQDN ein, einschließlich der Unterdomäne, falls vorhanden.

Jitsi-Hostname

Wählen Sie Neues selbstsigniertes Zertifikat generieren aus.

Generieren Sie ein selbstsigniertes Zertifikat

Ersetzen Sie als Nächstes das selbstsignierte Zertifikat durch ein vertrauenswürdiges Zertifikat, das von Let’s Encrypt bereitgestellt wird.

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

Geben Sie bei Aufforderung eine E-Mail-Adresse ein, um Warnungen oder Benachrichtigungen zu Ihrem Zertifikat zu erhalten.

Enter your email and press [ENTER]: [email protected]

Die Zertifikatserstellung sollte weniger als eine Minute dauern. Wenn dies erledigt ist, ist Ihr Jitsi Meet-Server im Internet unter Ihrer Domain aktiv. Sie können neue Meetings erstellen und Benutzer einladen, indem Sie die Meeting-URL teilen.

Jitsi Treffen nach Hause

Die Anwendung ist jedoch nicht sicher. Jeder, der Ihre Domain besucht, kann ein neues Jitsi-Meeting erstellen, das auf Ihrem Server gehostet wird.

Um unbefugten Zugriff zu verhindern, aktivieren die folgenden Schritte die Authentifizierung, sodass ein Benutzername und ein Kennwort erforderlich sind, bevor ein Meeting erstellt wird.

Prosodie konfigurieren

Prosody ist eine Komponente von Jitsi Meet, die eine XMPP-Kommunikation zwischen Benutzern und dem Server bereitstellt. Die folgenden Schritte konfigurieren Prosody, um Benutzer zu authentifizieren, die ein Jitsi-Meeting erstellen.

Erstellen Sie eine Gastdomäne

Wechseln Sie auf dem VPS zum Benutzer root.

sudo su

Wechseln Sie in das Verzeichnis /etc/prosody/conf.avail/.

cd /etc/prosody/conf.avail/

Öffnen Sie die Datei fqdn.cfg.lua in einem Texteditor.

nano video.mydomain.com.cfg.lua

Ändern Sie im Abschnitt VirtualHost für Ihre Domäne die Authentifizierungsmethode von anonym zu internal_plain.

VirtualHost "video.mydomain.com"
        ...
        authentication = "internal_plain"
        ...

Fügen Sie über dem vorhandenen VirtualHost-Abschnitt für Ihre Website einen neuen VirtualHost-Abschnitt ein. Der Name dieses VirtualHost ist guest.fqdn. Fügen Sie beispielsweise die folgenden Zeilen ein, um einen neuen Gast-VirtualHost für die Site video.mydomain.com zu erstellen.

VirtualHost "guest.video.mydomain.com"
        authentication = "anonymous"
        c2s_require_encryption = false
        modules_enabled = {
            "bosh";
            "pubsub";
            "ping";
            "speakerstats";
            "turncredentials";
            "conference_duration";
        }

Speichern Sie die Datei und verlassen Sie den Editor. Beenden Sie dann das Root-Konto.

exit

Installieren Sie das Modul storage_memory

Ein optionales Prosody-Modul, storage_memory, ermöglicht eine temporäre Speicherung von dauerhaften Informationen, einschließlich Benutzersitzungsdaten. Der Quellcode des Moduls ist im Mercurial-Repository von Prosody verfügbar.

Installieren Sie Mercurial auf Ihrem VPS.

sudo apt install -y mercurial

Erstellen Sie ein temporäres Verzeichnis und wechseln Sie dorthin.

mkdir ~/temp && cd ~/temp

Klonen Sie das Prosody-Modul-Repository in ein neues Verzeichnis, prosody_modules.

hg clone 'https://hg.prosody.im/prosody-modules/' prosody-modules

Datei kopieren mod_storage_memory.lua zum Verzeichnis /usr/lib/prosody/modules.

sudo cp prosody-modules/mod_storage_memory/*.lua /usr/lib/prosody/modules/.

Erstellen Sie eine anonyme Jitsi-Domäne

Konfigurieren Sie Jitsi Meet so, dass eine anonyme Domäne für Benutzer verwendet wird, die zu einem Meeting eingeladen werden.

Öffnen Sie die Datei /etc/jitsi/meet/fqdn-config.js in einem Texteditor.

sudo nano /etc/jitsi/meet/video.mydomain.com-config.js

In dem Konfig variabel, in der Gastgeber Schlüssel, fügen Sie einen neuen Schlüssel mit dem Namen hinzu anonymeDomänemit dem Wert Gast.fqdn.

Wenn Ihre Gastdomain beispielsweise guest.video.mydomain.com lautet, sollte der Eintrag wie folgt aussehen. Beachten Sie, dass die Zeile mit einem Komma endet.

var config = {
    ...
    hosts: {
            ...
            domain: 'video.mydomain.com',
            anonymousdomain: 'guest.video.mydomain.com',
            ...
        },
        ...
}

Speichern Sie die Datei und schließen Sie den Texteditor.

Jicofo konfigurieren

Jicofo (Jitsi Conference Focus) ist eine Komponente von Jitsi Meet, die Benutzersitzungen verwaltet. Die folgenden Schritte konfigurieren das SIP (Session Initiation Protocol) von Jicofo für die Verwendung der XMPP-Authentifizierung.

Öffne die Datei /etc/jitsi/jicofo/sip-communicator.properties in einem Texteditor.

sudo nano /etc/jitsi/jicofo/sip-communicator.properties

Fügen Sie eine neue Zeile mit der folgenden Konfiguration hinzu. Ersetzen video.meinedomain.com mit Ihrem FQDN.

org.jitsi.jicofo.auth.URL=XMPP:video.mydomain.com

Speichern Sie die Datei und verlassen Sie den Editor.

Erstellen Sie Jitsi-Administratorbenutzer

Der Zugriff auf die Prosodie-Verwaltungsfunktionen erfolgt über die prosodyctl Befehl (“Prosodiesteuerung”).

Führen Sie den Befehl aus, um einen Benutzer/ein Kennwort für Jitsi Meet zu erstellen Prosodyctl-Register Benutzername FQDN-Passwort.

sudo prosodyctl register alice video.mydomain.com secretpassword123

Wiederholen Sie diesen Befehl für alle weiteren Benutzer, die Sie erstellen möchten.

Tipp

Nur Benutzer, die neue Meetings erstellen, benötigen ein Konto. Das Herstellen einer Verbindung zu einem vorhandenen Meeting erfordert keine Autorisierung.

Dienste neu starten

Um die neue Konfiguration anzuwenden, starten Sie die betroffenen Dienste neu.

sudo systemctl restart {prosody,jicofo,jitsi-videobridge2,nginx}

Jetzt können nur Benutzer mit der richtigen Kombination aus Benutzername und Passwort neue Meetings auf Ihrem Jitsi-Server erstellen.

Erstellen neuer Besprechungen

Befolgen Sie diese Schritte, um neue Meetings auf Ihrem Jitsi-Server zu erstellen.

In einem Browser

Öffnen Sie auf einem Laptop oder Desktop-Computer einen Browser mit der Adresse Ihres Jitsi-Servers.

Geben Sie unter Neues Meeting starten einen Namen für das Meeting ein und klicken Sie auf Los.

Tipp

Dieser Name erscheint in der URL, die Sie mit eingeladenen Personen teilen. Bei Besprechungsnamen wird nicht zwischen Groß- und Kleinschreibung unterschieden.

Benennen Sie das Jitsi-Meeting

Klicken Sie auf Ich bin der Gastgeber.

Bestätigen Sie, dass Sie Gastgeber sind

Geben Sie den von Ihnen erstellten Jitsi-Benutzernamen und das Passwort ein und klicken Sie auf OK.

Kontoauthentifizierung

Bei erfolgreicher Authentifizierung geht die Konferenz sofort live.

Tipp

Sie müssen sich nur einmal pro Browsersitzung authentifizieren. Um Ihr aktuelles Login zu vergessen, löschen Sie Ihre Browser-Cookies, siehe: Wie aktiviere, deaktiviere, zeige oder lösche ich Internet-Cookies?

In der mobilen App

Holen Sie sich die Jitsi-App für iOS im App Store oder für Android im Play Store.

Öffnen Sie die Jitsi Meet-App. Tippen Sie auf die Menüschaltfläche und wählen Sie Einstellungen.

Jitsi-App für Mobilgeräte

Geben Sie in den Einstellungen unter Server-URL die Domäne Ihres Jitsi-Servers ein.

Konfigurieren Sie den Host in den Einstellungen

Gehen Sie zurück zum Hauptfenster der App. Geben Sie einen neuen Meeting-Namen ein und tippen Sie auf „Erstellen/beitreten“.

Neue Besprechung erstellen

Tippen Sie auf OK.

Überprüfen Sie den Hoststatus

Geben Sie den von Ihnen erstellten Jitsi-Benutzernamen und das Passwort ein und tippen Sie auf OK.

Name und Passwort eingeben

Wenn die App bei „Verbinden“ einzufrieren scheint, warten Sie einige Sekunden, bis die Authentifizierung abgeschlossen ist.

Neueste Artikel
Vielleicht möchten Sie lesen

LEAVE A REPLY

Please enter your comment!
Please enter your name here