Tobias ScheibleCybercrime Dozent & Live Hacking Speaker
Server Installation

Jitsi Meet unter Ubuntu 20.04 installieren

In dieser Anleitung zeige ich, wie Jitsi Meet auf einem Root-Server mit Ubuntu 20.04 installiert wird. Die Installationsroutine der Open-Source-Software ist vorbildlich, damit kann sehr einfach ein eigener Server installiert werden. Zusätzlich zeige ich noch, wie Ubuntu abgesichert werden kann.

Mittwoch, 01. Juli 2020
25 Kommentare

16.05.2021 Update: Mehrere kleinere Aktualisierungen vorgenommen.

Jitsi Meet ist ein quelloffenes Videokonferenzsystem, das ohne Anmeldung und Installation in einem Webbrowser genutzt werden kann. Durch die einfache Installation kann sehr einfach ein eigener Jitsi Meet Server installiert werden.

Die Installation auf einem Ubuntu 18.04 habe ich bereits im Artikel „Installation eines eigenen Jitsi Meet Servers“ beschrieben. Im April dieses Jahres wurde die neue LTS-Version von Ubuntu mit Langzeitunterstützung bis April 2025 veröffentlicht. Daher habe ich mich entschlossen, eine neue Anleitung zu schreiben.

Öffentlicher Jitsi Meet Server (meet.scheible.it):

Das Ziel dieser Anleitung ist die Installation von Jitsi Meet auf einem Root-Server. Dabei sind die Erklärungen auch für Anfänger verständlich gehalten. Die Einrichtung des Servers erfolgt dabei Schritt für Schritt inklusive der Absicherung vor der eigentlichen Jitsi Meet Installation.

Als Basis für diese Anleitung habe ich einen dedizierten Root-Server verwendet. Als Option habe ich das Betriebssystem „Ubuntu 20.04 LTS minimal“ ausgewählt. Für die Konfiguration verwende ich meine Domain meet.scheible.it, sie muss immer durch die eigene ersetzt werden.

Jitsi Meet Server
SSH-Login mit Putty auf einem Root-Server
SSH-Login Jitsi Meet ServerSSH-Login mit Putty auf einem Root-Server
SSH Verbindung

Wird ein Linux Root-Server neu eingerichtet bzw. initialisiert, ist auf ihm meist nur ein SSH-Server aktiviert. Mittels SSH ist es möglich, über eine verschlüsselte Verbindung mit einer Konsole auf einem entfernten Server zu arbeiten und ihn zu administrieren. Um SSH unter Windows zu nutzen, kann die Software Putty verwendet werden (Anleitung). In den nächsten Schritten werden die Befehle auf der SSH-Konsole eingegeben. Um die Eingabe zu erleichter, sollten Sie mit dem Befehl sudo su in den Root-Modus zu wechseln.

Ubuntu absichern

Nach der Bestellung eines Root-Servers kann mit dem Root-Benutzer per SSH zugegriffen werden. Dies muss geändert werden, um die IT-Sicherheit des Servers zu erhöhen. Zusätzlich zeige ich, wie mit dem Tool Fail2Ban eingesetzt wird, um Angreifer abzuwehren, und die Konfiguration einer Firewall.

Passwort ändern

passwd

Als Erstes ändern wir das Passwort des Root-Benutzers, da dies vom Provider generiert worden ist. Dazu muss der Befehl passwd eingegeben werden. Anschließend erfolgt die Abfrage des Passwortes und die dazugehörige Wiederholung. Hier sollte ein möglichst langes und einmaliges Passwort gewählt werden.

# passwd
New password:
Retype new password:
passwd: password updated successfully

Benutzer anlegen

useradd

Damit der Login nicht mit dem Root-Benutzer erfolgen muss, wird ein neuer Benutzer mit eingeschränkten Rechten angelegt. Dazu wird der Befehl useradd gefolgt von dem Namen des Benutzers eingegeben. Es folgt die Eingabe des Passworts mit der Kontrolle und einige weitere Abfragen, die einfach mit Enter quittiert werden können. Am Ende muss die Korrektheit der Eingaben bestätigt werden.

# adduser admin
Adding user `admin' ...
Adding new group `admin' (1000) ...
Adding new user `admin' (1000) with group `admin' ...
Creating home directory `/home/admin' ...
Copying files from `/etc/skel' ...
New password:
Retype new password:
passwd: password updated successfully
Changing the user information for admin
Enter the new value, or press ENTER for the default Full Name []: Admin Room Number []: Work Phone []: Home Phone []: Other []:
Is the information correct? [Y/n] Y

Jetzt muss unbedingt getestet werden, ob dieser neue Benutzer funktioniert, bevor die nächsten Schritten durchgeführt werden. Dazu einfach ein zweites Putty Fenster öffnen, eine Verbindung herstellen und mit dem neuen Benutzer anmelden. Nach dem Login den Befehl su eingeben, um in die Rolle des Root-Benutzers zu wechseln.

SSH absichern

Danach können wir die Konfiguration von SSH anpassen. Dazu muss die Datei /etc/ssh/sshd_config bearbeitet werden. Wir verwenden den Editor Nano (Anleitung).

# nano /etc/ssh/sshd_config

Als Erstes ändern wir den Port für den SSH-Zugriff. Das erhöht die Sicherheit zwar nur ein wenig, da mit einem Port-Scan sehr schnell der geänderte SSH-Port gefunden werden kann, aber einige automatisierte Tools werden ausgebremst. Es sollte ein Port über 1024 und nicht höher als 65535 gewählt werden.

Port 10022

Um den externen SSH-Login des Root-Benutzers nicht mehr zu erlauben, suchen wir den Eintrag PermitRootLogin und ändern den Wert auf no.

PermitRootLogin no

Unter dem Block mit diesem Eintrag fügen wir die folgende Zeile hinzu, damit sich unser neuer Benutzer anmelden kann:

AllowUsers admin

Um Anmeldeversuche zu blockieren, kann mit der Option MaxAuthTries die maximale Anzahl an Anmeldeversuchen beschränkt werden. Da diese Option aber nur pro Verbindung einen Schutz bietet und ein Angreifer sich nach fünf Fehlversuchen einfach neu verbinden kann, wird weiter unten die Installation des Tool fail2ban erklärt, um SSH gegen Angriffe besser abzusichern.

MaxAuthTries 5

Anschließend können die Änderungen mit der Tastenkombination STRG + O gespeichert werden. Die Nachfrage nach dem Dateinamen kann einfach mit Enter bestätigt werden. Um den Editor zu verlassen, wird die Tastenkombination STRG + X verwendet.

Um die Änderungen zu übernehmen, muss der SSH-Dienst neugestartet werden:

# service ssh restart

Wichtig ist, dass das aktuelle Putty-Fenster nicht geschlossen werden darf. Es muss erst überprüft werden, ob die Einstellungen funktionieren. Dazu wird wieder ein zweites Putty-Fenster geöffnet und ein Login mit dem geänderten Port durchgeführt.

Keyfile

Für Fortgeschrittene: Um noch mehr Sicherheit zu erreichen, sollte der SSH-Login per Keyfiel durchgeführt werden (Anleitung).

Fail2Ban installieren

Fail2Ban ist ein Tool, das fehlgeschlagene Login Versuche analysiert. Nach einer fest definierten Anzahl von Fehlschlägen, wird der Verursacher geblockt. Damit können sehr effektiv Brute-Force-Angriffe, die versuchen, das Passwort zu erraten, abgewehrt werden. Als Erstes muss das Tool installiert werden:

# apt install fail2ban

Als Nächstes muss eine lokale Kopie der Konfigurationsdatei erstellt werden:

# cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

Die neu erstellte Datei wird mit dem nano Editor geöffnet:

# nano /etc/fail2ban/jail.local

Und die folgenden Zeilen ganz am Ende der Datei eingefügt:

#
# SSH servers
#
[sshd]
enabled	= true
port	= 10022
filter	= sshd
logpath	= /var/log/auth.log
maxretry	= 3

Zum Abschließen der Konfiguration muss Fail2Ban neugestartet werden:

# service fail2ban restart

Firewall konfigurieren

Als Software für die Firewall wird ufw (uncomplicated firewall) eingesetzt. Damit lässt sich eine unkomplizierte kommandozeilenbasierte Konfiguration der Firewall vornehmen. Als Erstes muss die Software installiert werden:

# apt install ufw

Nach der Installation von ufw kann ein einzelner Port mit dem Parameter allow freigegeben werden. Als Erstes muss unbedingt der SSH-Port freigegeben werden, damit ein weiterer Zugriff nach der Aktivierung der Firewall noch möglich ist.

# ufw allow 10022

Zum Abschluss kann die Firewall mit dem folgenden Befehl aktiviert werden:

# ufw enable
Jitsi Meet

Für die Funktionen von Jitsi Meet müssen noch weitere Port freigehalten werden.

# ufw allow 80/tcp
# ufw allow 443/tcp
# ufw allow 10000/udp
# ufw enable

Anschließend sollte die Konfiguration der Firewall für Jitsi Meet noch einmal überprüft werden:

# ufw status verbose
Jitsi Meet Sicherheit
Ausgabe der Ports für Jitsi Meet in der Firewall Konfiguration
Jitsi Meet FirewallAusgabe der Ports für Jitsi Meet in der Firewall Konfiguration

Jitsi Meet installieren

Die Installation von Jitsi Meet auf einem eigenen Server ist sehr einfach. Die nachfolgenden Schritte sind beschrieben, um möglichst viele Szenarien abzudecken.

Vorbereitungen

Vor der Installation von Jitsi Meet müssen zur Vorbereitung ein paar Konfigurationen vorgenommen werden.

System Konfiguration

Für einen reibungslosen Betrieb muss in der Datei /etc/systemd/system.conf die Anzahl der zulässigen Prozesse eingetragen werden. Dazu müssen die folgenden Einträge am Ende hinzugefügt werden:

DefaultLimitNOFILE=65000
DefaultLimitNPROC=65000
DefaultTasksMax=65000

Damit die Einträge wirksam sind, muss der Dienst Systemd neugestartet werden:

 # systemctl daemon-reload

Als nächster Schritt muss die verwendete Domain konfiguriert werden, damit die verschiedenen Module von Jitsi Meet reibungslos zusammenarbeiten können.

# hostnamectl set-hostname meet.scheible.it 

Zusätzlich muss in der Datei /etc/hosts ebenfalls die Domain als localhost eingetragen werden. Dazu kann die Domain einfach in der ersten Zeile am Ende hinzugefügt werden.

# nano /etc/hosts
01: 127.0.0.1 localhost.localdomain localhost meet.scheible.it
Software-Pakete

Als Erstes wird das System auf den aktuellen Stand gebracht und alle Ubuntu Updates installiert:

# apt update && apt upgrade

Jetzt muss überprüft werden, ob das universe Repositorie eingerichtet ist. Dies kann mit dem folgenden Befehl überprüft werden:

# grep ^deb /etc/apt/sources.list

In der folgenden Ausgabe muss der folgende Eintrag vorhanden sein:

deb http://de.archive.ubuntu.com/ubuntu/ focal universe

Falls nicht, müssen die folgenden Befehle ausgeführt werden:

# apt install software-properties-common
# apt-add-repository universe

Jetzt muss noch das folgende Paket installiert werden:

# apt install apt-transport-https

Installation

Nun kann die eigentliche Installation von Jitsi Meet beginnen. Als Erstes werden die Software-Quellen von Jitsi Meet mit den nachfolgenden beiden Zeilen hinzugefügt und die Paketquelle aktualisiert.

# 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
# apt update
Jitsi Meet Paketquellen
In der Liste der Ausgabe erscheint nun die Paketquelle download.jitsi.org
Jitsi Meet InstalaltionIn der Liste der Ausgabe erscheint nun die Paketquelle download.jitsi.org

Der Download und die Installation von jitsi Meet werden dabei mit dem folgenden Befehl initiiert:

# apt -y install jitsi-meet

Nachdem die Jitsi Meet Pakete heruntergeladen und installiert worden sind, erfolgt eine Abfrage der Domain und der SSL-Konfiguration.

TEXT
Eingabe der Domain während der Installation von Jitsi Meet
TEXTEingabe der Domain während der Installation von Jitsi Meet
TEXT
An dieser Stelle können vorhandene SSL-Zertifikate angegeben werden oder später ein Let’s Encrypt Zertifikat generiert werden
TEXTAn dieser Stelle können vorhandene SSL-Zertifikate angegeben werden oder später ein Let’s Encrypt Zertifikat generiert werden

Danach ist die Installation von Jitsi Meet abgeschlossen.

SSL-Zertifikat

Als Nächstes muss noch das Let’s Encrypt Zertifikat für die sichere HTTPS-Verbindung eingerichtet werden. Die Einrichtung des Let’s Encrypt Zertifikat für Jitsi Meet kann mit dem folgenden Script gestartet werden:

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

Es muss nur eine E-Mailadresse angegeben werden. Diese wird nur verwendet, falles es Probleme mit dem Zertifikat geben sollte.

TEXT
Erfolgreiche Installation des Let’s Encrypt Zertifikats von Jitsi Meet unter Ubuntu 20.04
TEXTErfolgreiche Installation des Let’s Encrypt Zertifikats von Jitsi Meet unter Ubuntu 20.04

Jetzt kann die Domain aufgerufen werden und das Web-Interface von Jitsi Meet wird angezeigt:

TEXT
Startseite von Jitsi Meet auf einem Root-Server mit Ubuntu 20.04
TEXTStartseite von Jitsi Meet auf einem Root-Server mit Ubuntu 20.04

Konfiguration

Logo & Design

Wie das Logo getauscht und die Farben angeapsst werden können beschreibe ich im Blog-Artikel „Das Design von Jitsi Meet anpassen“.

Geschwindigkeits-optimierung

Informationen zur Geschwindigkeitsoptimierung von Jitsi Meet habe ich im Blog-Artikel „Geschwindigkeitsoptimierung von Jitsi Meet“ bereits beschrieben.

Datenschutz

Zusätzliche Einstellungen, um den Datenschutz von Jitsi Meet zu verbessern, habe ich im Blog-Artikel „Datenschutzfreundliche Konfiguration von Jitsi Meet“ beschrieben.

STUN/TURN-Server

Die Technologie der STUN-Server kommt aus dem VoIP-Bereich und ermöglicht es einem Rechner hinter einer restriktiven Firewall trotzdem eine Verbindung aufzubauen. Mit dem TURN-Protokoll können Teilnehmer Daten austauschen, auch wenn keine direkte Verbindung besteht. Der Server dient dabei als Relay (Zwischenstation). In früheren Versionen nutzte Jitsi Meet hierfür STUN/TURN-Server von Google und wurde dafür kritisiert. Mit den Updates im April 2020 wurden diese Einträge entfernt und durch den eigenen Server von Jitsi meet-jit-si-turnrelay.jitsi.net ersetzt.

Mit weiteren Updates wurde eine einfache Methode realisiert, um einen eigenen coturn STUN/TURN-Server einzurichten. Das Paket jitsi-meet-turnserver sollte bereits automatisch installiert worden sein. Falls nicht, kann es auch manuell installiert werden:

$ sudo apt install jitsi-meet-turnserver

In früheren Varianten musste anschließend noch eine Konfiguration vorgenommen werden, diese wird mittlerweile automatisiert durchgeführt.

Firewall

Als letzter Schritt muss noch der Port 3478 für UDP-Datenverkehr und der Port 5349 für TCP -Datenverkehr in der Firewall freigegeben werden:

$ sudo ufw allow 3478/udp
$ sudo ufw allow 5349/tcp
Überprüfung

Nun wird ein eigener STUN/TURN-Server verwendet. In den Konfigurationsdateien /etc/prosody/conf.avail/meet.scheible.it.cfg.lua und /etc/jitsi/meet/meet.scheible.it-config.js wurden automatisch die richtigen Parameter eingefügt. Mit dem Trickle ICE Tool, kann die Funktionsweise getestet werden. Dort muss in das Feld STUN or TURN URI die eigene Domain, nach dem Schema stun:meet.exmaple.com:3478, eingetragen werden. Mit dem Button „Add Server“ wird er in die Liste aufgenommen und der Test wird dem Button „Gather candidates“ gestartet. Wenn alles in Ordnung ist, erscheint nach kurzer Zeit rechts unten als Bestätigung der Begriff „Done“.

Secure Domain

Wird die Konfiguration Secure Domain von Jitsi Meet verwendet, wird in der Prosody Konfigurationsdatei meet.scheible.it.cfg.lua ein neuer VirtualHost Eintrag für Gäste hinzugefügt. Hierbei kann es zu Problemen kommen, dass der TURN-Server für Gäste nicht mehr korrekt funktioniert. Das liegt daran, dass für den Gast-Eintrag auch das Modul turncredentials eingebunden werden muss.

// /etc/prosody/conf.d/meet.scheible.it.cfg.lua
VirtualHost "guest.meet.example.com" authentication = "anonymous" modules_enabled = { "bosh"; "pubsub"; "ping"; -- Enable mod_ping "speakerstats"; "turncredentials"; "conference_duration"; -- "muc_lobby_rooms"; } c2s_require_encryption = false

Jitsi Meet Aktualisierung

Update

Die Macher und die Community hinter Jitsi Meet sind sehr fleißig und veröffentlichen regelmäßig Updates. Auf der Github Seite des Projektes werden die Änderungen in einer Changelog zusammengefasst. Hier lohnt sich regelmäßig ein Blick, welche neuen Funktionalitäten Jitsi Meet inzwischen bietet. Die Aktualisierung von Jitsi Meet erfolgt gleich wie das Update des Ubuntu Systems, da die Softwarequellen fest eingebunden sind.

# sudo apt-get update && sudo apt-get upgrad

Hinweis: Bei der Aktualisierung werden zum Teil die Konfigurationsdateien überschrieben. Daher bietet es sich an ein spezielles Update Script zu verwenden.

Welche Version von Jitsi Meet derzeit installiert ist, kann übrigens mit dem folgenden Befehl abgefragt werden:

dpkg -l | grep jitsi

Jitsi Meet Artikelserie

Dieser Blogbeitrag ist Teil der Artikelserie „Videokonferenzen mit Jitsi Meet“, die sich mit dem Open-Source-Webkonferenzsystem Jitsi für Video-, Web- und Telefonkonferenzen beschäftigt. Die Artikelserie zu Jitsi Meet umfasst die folgenden Themen:


Jitsi Meet Artikel für Anwender


Jitsi Meet Artikel für Administratoren

Changelog

16.05.2021Mehrere kleinere Aktualisierungen vorgenommen.

06.01.2021Abschnitte SSH absichern und STUN/TURN-Server erweitert.

22.11.2020Abschnitt STUN/TURN-Server aktualisiert.

24.10.2020Korrekturen und Abschnitt Jitsi Meet Aktualisierung hinzugefügt.

15.07.2020Abschnitt über die Installation des STUN/TURN-Server hinzugefügt.

Über Tobias Scheible

Tobias Scheible

Hallo, mein Name ist Tobias Scheible. Ich bin begeisterter Informatiker und Sicherheitsforscher mit den Schwerpunkten Cyber Security und IT-Forensik. Mein Wissen teile ich gerne anhand von Fachartikeln hier in meinem Blog und in meinem Fachbuch. Als Referent halte ich Vorträge und Workshops für Verbände und Unternehmen u. a. auch offene Veranstaltungen für den VDI und die IHK.