BigBlueButton grundlegend anpassen

und auf dem neuesten Stand halten

Zielgruppe Zielgruppe IT-Expert:in IT-Expert:in

Nachdem du BigBlueButton auf deinem eigenen Server installiert hast, gibt es ein paar Dinge, die du anpassen solltest. Im Folgenden zeige ich dir, wie du beispielsweise die Vortragsfolien und den Begrüßungstext im Chat anpassen kannst. Auch zeige ich dir, wie einfach du Updates installierst, und am Ende folgen ein paar Speicherorte von Dateien, die dir bei der Anpassung und Fehlersuche behilflich sind.

* * *

Inhaltsverzeichnis

Updates installieren
Webserver absichern
Standard-Präsentation ändern
Begrüßungstext im öffentlichen Chat anpassen
Aufnahmefunktion serverseitig deaktivieren
TURN- und STUN-Server anpassen
Passwort eines Benutzerkontos ändern
Nützliche Tools und Pfade

Ich möchte BigBlueButton anpassen, habe dabei aber Schwierigkeiten

* * *

Updates installieren

Hinweis
Dieser Schritt ist wichtig und sollte in regelmäßigen Abständen durchgeführt werden.

Wenn du möchtest, kannst du hierfür das Shell-Script verwenden, welches ich für die Updates meiner BBB-Instanzen verwende: codeberg.org/SWEETGOOD/andersgood-update-bbb-script

Beispiel für die Installation von Updates

Um Updates für BigBlueButton zu installieren, kannst du die Paketverwaltung nutzen, die auf Ubuntu-Systemen standardmäßig vorhanden ist. Mit apt update rufst du alle verfügbaren Updates ab und kannst diese anschließend mit apt list --upgradable in einer Liste anzeigen lassen. Das Kommando apt upgrade installiert dann alle verfügbaren Updates. Wenn bei den verfügbaren Updates Pakete mit dem Namen bbb-* dabei sind, empfehle ich dir, den Server nach deren Installation neu zu starten. So stellst du sicher, dass alle Dienste auch nach dem Update wieder korrekt gestartet werden.

Hinweis
Nach jedem Update solltest du gemäß der Dokumentation folgenden Befehl ausführen:
bbb-conf --setip dein.domainname.de

Hinterher dann noch die Installation überprüfen:
bbb-conf --check

* * *

Webserver absichern

Wichtiger Hinweis
In BigBlueButton 2.3 ist das nicht mehr notwendig, da die entsprechende Einstellung bereits unter /etc/nginx/sites-enabled/bigbluebutton hinterlegt ist.

Der installierte Webserver nginx ist so eingestellt, dass er bei einem Fehler die installierte Software-Version anzeigt.

404 Fehlerseite vor der Anpassung

Das solltest in der Konfigurationsdatei abstellen, damit potentiellen Angreifern der Versionsstand nicht auf dem Silbertablett serviert wird. Öffne dazu die Datei /etc/nginx/nginx.conf und entferne in Zeile 21 die Raute vor

        server_tokens off;

Starte dann mit systemctl restart nginx den Webserver neu und schon ist die Versionsnummer auf den Fehlerseiten nicht mehr enthalten.

404 Fehlerseite nach der Anpassung
* * *

Standard-Präsentation ändern

Achtung
Diesen Schritt musst du leider nach jedem Update der BigBlueButton-Pakete erneut machen, da die Updates deine Präsentationsfolien wieder mit der Standard-Präsentation überschreiben.

Diese Präsentation lässt sich sehr einfach auswechseln.

Die Standardpräsentation liegt in den Formaten .pdf und .pptx auf dem Server. Um diese auszutauschen, ersetze einfach die beiden folgenden Dateien durch deine Eigenen:

PDF: /var/www/bigbluebutton-default/default.pdf
PPTX: /var/www/bigbluebutton-default/default.pptx

Nach einem Neustart des BigBlueButton-Servers mit dem Befehl bbb-conf --restart werden die Folien standardmäßig im nächsten Meeting angezeigt.

* * *

Begrüßungstext im öffentlichen Chat anpassen

Achtung
Diesen Schritt musst du leider nach jedem Update der BigBlueButton-Pakete erneut durchführen, sofern du in deinem Begrüßungstext Umlaute verwendest. Die Updates entfernen aus der Konfigurationsdatei die \ für die Unicode-Charakter, wodurch der Text unbrauchbar wird.

Den rot umrandeten Begrüßungstext kannst du vollständig anpassen.

Bevor du den Inhalt der Konfigurationsdatei änderst, empfehle ich dir, mit folgendem Befehl ein Backup anzulegen:

cp /usr/share/bbb-web/WEB-INF/classes/bigbluebutton.properties /usr/share/bbb-web/WEB-INF/classes/bigbluebutton.properties.backup

Öffne anschließend die Datei /usr/share/bbb-web/WEB-INF/classes/bigbluebutton.properties und passe die folgenden Variablen an. Du kannst hier zum Styling einfaches HTML verwenden:

#
#----------------------------------------------------
# Default welcome message to display when the participant joins the web
# conference. This is only used for the old scheduling which will be
# removed in the future. Use the API to create a conference.
#
# If the message contains characters not in ISO-8859-1 character sets
# they must be properly escaped to unicode characters. An easy way to
# do this is running the native2ascii command setting UTF8 encoding and
# passing this file's path as input and output parameters, e.g.:
#
# native2ascii -encoding UTF8 bigbluebutton.properties bigbluebutton.properties
#
defaultWelcomeMessage=Willkommen zur Konferenz <b>%%CONFNAME%%</b>!<br><br>Wenn du hier noch mehr schreiben magst, darfst du das gerne tun.
defaultWelcomeMessageFooter=Dieser Server wird mit der genialen Open-Source-Software <a href="http://docs.bigbluebutton.org/" target="_blank"><u>BigBlueButton</u></a> betrieben.

Nach einem Neustart des BigBlueButton-Servers mit dem Befehl bbb-conf --restart wird dein Begrüßungstext standardmäßig im nächsten Meeting angezeigt.

Wichtiger Hinweis bei Umlauten
Solltest du in einer der beiden Variablen Umlaute einsetzen, muss die Datei hinterher mit dem Befehl native2ascii konvertiert werden, damit diese korrekt angezeigt werden.

Das Programm ist im Paket openjdk-8-jdk-headless enthalten, was du mit folgendem Befehl installierst:

apt install openjdk-8-jdk-headless

Anschließend kannst du die Datei mit folgendem Befehl konvertieren (Achtung, die ursprüngliche Datei wird dabei überschrieben!):

native2ascii -encoding UTF8 /usr/share/bbb-web/WEB-INF/classes/bigbluebutton.properties /usr/share/bbb-web/WEB-INF/classes/bigbluebutton.properties

Hinterher den Neustart des Servers nicht vergessen:

bbb-conf --restart

Alternative
Die Umlaute als HTML-Entities eintragen, z.B. &auml; statt ä oder &szlig; statt ß.
Eine vollständige Tabelle aller HTML-Entities findest du unter dev.w3.org/html5/html-author/charref.

* * *

Aufnahmefunktion serverseitig deaktivieren

10.06.2020: Anmerkung von Millesimus
Unter github.com/Millesimus/bbb-privacy findest du das Bash-Script apply-config.sh, was viele der Datenschutz-Probleme von BigBlueButton korrigiert.

Leider zeichnet BigBlueButton designbedingt alle Sitzungen auf – unabhängig davon, ob das gewünscht ist oder nicht. Wenn du die Funktion sowieso nicht benötigst, solltest du sie serverseitig deaktivieren. Das spart dir nebenbei einige Ressourcen in Form von CPU-Leistung. Weitere Informationen zu diesem Thema findest du hier.

Öffne dazu die Datei /usr/share/bbb-web/WEB-INF/classes/bigbluebutton.properties und passe die folgende Variable an:

disableRecordingDefault=true

Nach einem Neustart des BigBlueButton-Servers mit dem Befehl bbb-conf --restart ist die Aufzeichnungsfunktion für alle Sitzungen deaktiviert.

Info
Alle bisherigen Aufzeichnungen findest du im Ordner /var/bigbluebutton/recording/raw/ und kannst sie dir mit dem Befehl bbb-record --list anzeigen lassen. Sollte der Server schon einige Zeit laufen, kannst du alle dort hinterlegten Aufzeichnungen auf einmal löschen. Beachte, dass dabei alle Aufzeichnungen gelöscht werden, also auch die, die du explizit angefertigt hast.

bbb-record --deleteall
* * *

TURN- und STUN-Server anpassen

Damit Teilnehmer:innen hinter einer Firewall eine Verbindung zum Audio- und Videostream des Servers herstellen können, nutzt man sogenannte TURN- und STUN-Server. Diese kannst du in folgender Datei eintragen:

/usr/share/bbb-web/WEB-INF/classes/spring/turn-stun-servers.xml

Solltest du keinen eigenen Server betreiben (können), dann findest du hier eine öffentliche Liste mit STUN/TURN-Servern. Anleitungen für die Installation eines Servers findest du in den Weiterführenden Links.

Alternativ kannst du einen der folgenden beiden Servern nutzen, mit denen ich gute Erfahrungen gemacht habe:

stun:stun.schlund.de
stun:stun.gmx.net

Hier findest du meine Konfiguration aus der Datei turn-stun-servers.xml ohne eigenen TURN- oder STUN-Server:

<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
            http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
            ">

    <bean id="stun1" class="org.bigbluebutton.web.services.turn.StunServer">
        <constructor-arg index="0" value="stun:stun.schlund.de"/>
    </bean>

    <!--bean id="stun2" class="org.bigbluebutton.web.services.turn.StunServer">
        <constructor-arg index="0" value="stun:stun2.example.com"/>
    </bean-->

    <!--bean id="iceCandidate1" class="org.bigbluebutton.web.services.turn.RemoteIceCandidate">
        <constructor-arg index="0" value="192.168.0.1"/>
    </bean-->

    <!-- Turn servers are configured with a secret that's compatible with
         http://tools.ietf.org/html/draft-uberti-behave-turn-rest-00
         as supported by the coturn and rfc5766-turn-server turn servers -->

    <!--bean id="turn1" class="org.bigbluebutton.web.services.turn.TurnServer">
        Secret:
        <constructor-arg index="0" value="secret"/>
        TURN server URL, use turn: or turns:
        <constructor-arg index="1" value="turn:turn1.example.com"/>
        TTL in seconds for shared secret
        <constructor-arg index="2" value="86400"/>
    </bean-->

    <!--bean id="turn2" class="org.bigbluebutton.web.services.turn.TurnServer">
        <constructor-arg index="0" value="secret"/>
        <constructor-arg index="1" value="turns:turn2.example.com:443"/>
        <constructor-arg index="2" value="86400"/>
    </bean-->

    <bean id="stunTurnService" class="org.bigbluebutton.web.services.turn.StunTurnService">
        <property name="stunServers">
            <set>
                <ref bean="stun1" />
                <!--ref bean="stun2" /-->
            </set>
        </property>
        <property name="turnServers">
            <set>
                <!--ref bean="turn1" /-->
                <!--ref bean="turn2" /-->
            </set>
        </property>
        <property name="remoteIceCandidates">
            <set>
                <!--ref bean="iceCandidate1" /-->
                <!--ref bean="iceCandidate2" /-->
            </set>
        </property>
    </bean>
</beans>
* * *

Passwort eines Benutzerkontos ändern

zur Quelle

Theoretisch kann jede Benutzer:in ihr Kennwort selbst über die Greenlight-Oberfläche ändern. Wenn diese ihr Kennwort jedoch vergessen haben, dann bleibt nur die "Passwort vergessen"-Funktion. Diese funktioniert jedoch in der Standard-Konfiguration von BigBlueButton nicht. Das liegt daran, dass kein SMTP-Server hinterlegt ist, über den diese Mails versendet werden können.

Um als Administrator dennoch das Kennwort der Benutzer:in ändern zu können, bleibt dir nichts anderes übrig, als die Kommandozeile zu bemühen. Logge dich dazu über SSH auf deinem Server ein und führe nacheinander folgende Befehle aus:

docker exec -it greenlight-v2 bash
bundle exec rails c
User.find_by(email: "<E-Mailadresse der Benutzer:in>").update_attribute(:password,"<Neues Passwort>")

Ersetze dabei <E-Mailadresse der Benutzer:in> durch die für die Anmeldung verwendete E-Mailadresse der Benutzer:in und <Neues Passwort> durch das temporäre Passwort.

War alles erfolgreich, bekommst du folgende Rückmeldung:

=> true

Drücke zweimal hintereinander STRG + D, um die Docker- bzw. Rails-Konsole wieder zu verlassen.

Das Passwort kann nach erfolgreichem Login dann selbstständig von der Benutzer:in über die Weboberfläche geändert werden. Klicke dazu nach dem Login oben rechts auf deinen Namen und dann auf Profil. In der linken Leiste unter dem Menüpunkt Passwort kann daraufhin das Kennwort geändert werden.

* * *

Nützliche Tools und Pfade

Zum Schluss noch ein paar nützliche Tools und Pfade für die Administration deines BigBlueButton-Servers.

bbb-conf (BigBlueButton Configuration Utility)

BigBlueButton Configuration Utility - Version 2.2.30

   bbb-conf [options]

Configuration:
   --version                        Display BigBlueButton version (packages) "Versionsnummern aller BBB-Bestandteile auslesen"
   --setip <IP/hostname>            Set IP/hostname for BigBlueButton "Die IP / den Hostnamen für den Server (nach einem Update) erneut setzen"
   --setsecret <secret>             Change the shared secret in bigbluebutton.properties

Monitoring:
   --check                          Check configuration files and processes for problems "Die Konfiguration ausgeben und auf Fehler prüfen"
   --debug                          Scan the log files for error messages "Aktuelle Fehler aus den Log-Dateien ausgeben"
   --watch                          Scan the log files for error messages every 2 seconds "Die Log-Dateien alle 2 Sekunden auf Fehler prüfen"
   --network                        View network connections on 80 and 1935 by IP address
   --secret                         View the URL and shared secret for the server
   --lti                            View the URL and secret for LTI (if installed)

Administration:
   --restart                        Restart BigBlueButton "BigBlueButton-Server neustarten"
   --stop                           Stop BigBlueButton "BigBlueButton-Server stoppen"
   --start                          Start BigBlueButton "BigBlueButton-Server starten"
   --clean                          Restart and clean all log files "Alle Log-Dateien leeren und den Server neu starten"
   --status                         Display running status of components "Prüfen, ob alle Dienste gestartet sind"
   --zip                            Zip up log files for reporting an error

bbb-record (BigBlueButton Recording Diagnostic Utility)

BigBlueButton Recording Diagnostic Utility (BigBlueButton Version 2.2.30)

   bbb-record [options]

Reporting:
   --list                           List all recordings "Alle Aufzeichnungen anzeigen"

Monitoring:
   --watch                              Watch processing of recordings "Die Verarbeitung der Aufzeichnungen in Echtzeit anzeigen"
   --watch --withDesc                   Watch processing of recordings and show their description

Administration:
   --rebuild <internal meetingID>       rebuild the output for the given internal meetingID
   --rebuildall                 rebuild every recording
   --delete <internal meetingID>    delete one meeting and recording "Ein Meeting und die zugehörige Aufzeichnung entfernen"
   --deleteall                          delete all meetings and recordings "Alle Meetings und zugehörigen Aufzeichnungen entfernen"
   --debug                              check for recording errors "Die Log-Dateien auf Aufzeichnungs-Fehler prüfen"
   --check                              check for configuration errors Die  Konfiguration auf Fehler prüfen"
   --enable <workflow>                  enable a recording workflow
   --disable <workflow>                 disable a recording workflow
   --tointernal <external meetingId>    get the internal meeting ids for the given external meetingId
   --toexternal <internal meetingId>    get the external meeting id for the given internal meetingId
   --republish <internal meetingID> republish the recording for meetingID. (Only for Matterhorn Integration)

Pfade

Pfad Inhalt
/var/log/bigbluebutton/ Log-Dateien des BigBlueButton-Servers
/var/bigbluebutton/recording/raw/ Rohdaten der Aufzeichnungsfunktion
/opt/freeswitch/share/freeswitch/sounds/en/us/callie Audio-Dateien für die Sprachausgabe

Konfigurationsdateien

Konfigurationsdatei Beschreibung Modul
/usr/share/bbb-web/WEB-INF/classes/bigbluebutton.properties Grundeinstellungen von BBB bbb-web
/usr/share/bbb-web/WEB-INF/classes/spring/turn-stun-servers.xml Konfiguration der STUN- / TURN-Server bbb-web
/usr/share/red5/webapps/sip/WEB-INF/bigbluebutton-sip.properties Konfiguration der SIP-Module red5
/opt/freeswitch/etc/freeswitch/autoload_configs/conference.conf.xml FreeSWITCH Konfiguration freeswitch
/opt/freeswitch/conf/sip_profiles/external.xml FreeSWITCH Konfiguration freeswitch
/opt/freeswitch/conf/vars.xml FreeSWITCH Konfiguration freeswitch
/usr/local/bigbluebutton/bbb-webrtc-sfu/config/default.yml webRTC / Websocket Konfiguration kurento / freeswitch
/etc/kurento/modules/kurento/WebRtcEndpoint.conf.ini Kurento webRTC Konfiguration kurento
/usr/share/meteor/bundle/programs/server/assets/app/config/settings.yml Konfiguration der Meetingoberfläche meteor
/etc/bigbluebutton/nginx/sip.nginx nginx Websocket Konfiguration nginx
* * *

Ich möchte BigBlueButton anpassen, habe dabei aber Schwierigkeiten

Ich unterstütze dich gerne bei der Anpassung von BigBlueButton auf deinem eigenen Server.
Schreib mir hierzu einfach über Kontakt, per Telegram oder unten in die Kommentare eine Nachricht.

* * *
* * *

Änderungshistorie

18.05.2021, 10:45 – Link zum Matrix-Austauschkanal ergänzt
01.12.2020, 14:05 – Passage "Passwort eines Benutzerkontos ändern" ergänzt, Administrations-Tools und Pfade inkl. Erläuterung ergänzt, Entfernen des verwaisten STUN-Servers stun.freeswitch.org, Aktualisierung auf den Stand von BBB v2.2.30
17.08.2020, 22:40 – Shell-Script für das einfache Updaten von BBB ergänzt
14.08.2020, 13:20 – Alternative Angabe von Umlauten in den Raumtexten ergänzt (Danke, @gehtnicht)
31.07.2020, 23:20 – Update-Sektion aktualisiert
07.07.2020, 23:39 – Link zu Privatsphäre-Anpassungen eingefügt (Danke, @basisbit)
10.06.2020, 11:00 – Ergänzung von Millesimus eingefügt
09.06.2020, 23:00 – Artikel erstellt

* * *
Christian Süßenguth Christian Süßenguth @sweetgood

Hi, ich bin Inhaber der Firma SWEETGOOD. Mit dem andersGOOD Blog möchte ich auch dich für datensichere IT-Lösungen begeistern. So bringst du dein Unternehmen voran, ohne großen Konzernen deine wertvollen Daten zu liefern. Probiers mal anders!


Kommentarbereich

Die Kommentare sind für dich noch deaktiviert, da du dem Setzen von Cookies bisher nicht zugestimmt hast.
Klicke oben rechts auf "Ja, klar!" und lade die Seite neu, um die Kommentare anzuzeigen.

Seite neu laden

👾 Magst du Kekse?

Ich würde gerne Cookies setzen

Ist das OK für dich?