Freistehend
Sie sind nicht gezwungen den offiziellen BOMnipotent Server Docker-Container zu verwenden. Stattdessen können Sie die BOMnipotent Server-Binärdatei herunterladen und direkt als eigenständige Anwendung ausführen.
Dieses Setup ist erst ab Version 0.4.2 sinnvoll, da der Server zuvor keine Portanpassungen und keine Protokollierung in Dateien unterstützte.
Voraussetzung: PostgreSQL
Der BOMnipotent Server benötigt eine PostgreSQL-Datenbank zur Datenspeicherung. Die Einrichtung hängt von Ihrem Server-Betriebssystem ab.
Auf den gängigsten Distributionen wird PostgreSQL als Paket angeboten. Sie können es beispielsweise über apt/apt-get/aptitude installieren:
PostgreSQL läuft nun als Dienst. Um weitere Anpassungen vorzunehmen, müssen Sie sich als Systembenutzer “postgres” anmelden:
Sie können nun die interaktive PostgreSQL-Shell öffnen:
In der Shell müssen Sie den Benutzer “bomnipotent_user” und ein Passwort hinzufügen und die Datenbank “bomnipotent_db” erstellen:
Sie können andere Namen für Benutzer und Datenbank verwenden, müssen dann aber den Eintrag “db_url” in Ihrer Konfigurationsdatei entsprechend anpassen.
Starten Sie PostgreSQL anschließend neu und wechseln Sie zurück zu Ihrem regulären Benutzer:
Für Windows bietet PostgreSQL ein interaktives Installationsprogramm an.
Nach Abschluss des Installationsvorgangs wird PostgreSQL als Dienst ausgeführt. Öffnen Sie eine interaktive PostgreSQL-Shell, indem Sie die Administrationskonsole starten und Folgendes eingeben:
In der Shell müssen Sie den Benutzer “bomnipotent_user” hinzufügen, ein Passwort vergeben und die Datenbank “bomnipotent_db” erstellen:
Sie können andere Namen für Benutzer und Datenbank verwenden, müssen dann aber den Eintrag “db_url” in Ihrer Konfigurationsdatei entsprechend anpassen.
Wenn Sie nur BOMnipotent Server als eigenständige Anwendung ausführen, aber dennoch PostgreSQL in einem Container laufen lassen möchten, können Sie letzteren wie folgt starten:
Dadurch wird ein Container namens “bomnipotent_db” mit der ebenso benannten Datenbank “bomnipotent_db”, dem Benutzer “bomnipotent_user” und einem Passwort erstellt. Der Befehl stellt Port 5432 des Containers bereit, speichert die Daten in einem Docker-Volume und startet das Image “postgres:latest” im losgelösten Modus.
Sie können andere Namen für Benutzer und Datenbank verwenden, müssen dann aber den Eintrag “db_url” in Ihrer Konfigurationsdatei entsprechend anpassen.
Empfohlene Dateistruktur
Die vorgeschlagene Dateistruktur im Lieblingsverzeichnis Ihres Servers sieht folgendermaßen aus:
Diese Anleitung führt Sie durch die einzelnen Dateien und erklärt sie Schritt für Schritt.
.env
BOMnipotent-Server benötigt einige geschützte Informationen. Dazu gehören die Passwörter für die SQL Datenbank, für den geheimen OpenPGP Schlüssel, und für den SMTP Server.
Es empfiehlt sich, diese Passwörter in einer separaten .env-Datei zu speichern, anstatt direkt im compose.yaml.
Der Name der Datei muss “.env” lauten, ansonsten erkennt Docker sie nicht.
Ihre .env-Datei sollte so aussehen:
Anmerkung
Falls Sie ein Versionierungssystem zum Speichern Ihres Setups verwenden, vergessen Sie nicht, “.env” zu Ihrer .gitignore oder analogen Ignore-Datei hinzuzufügen!
config.toml
BOMnipotent Server benötigt eine Konfigurationsdatei, die in einem anderen Abschnitt ausführlicher erläutert wird.
Der Name der Datei ist beliebig.
Eine minimale Konfiguration sieht folgendermaßen aus:
Fügen Sie Ihre Daten in die Klammern ein.
Der Abschnitt zur TLS-Konfiguration enthält ausführlichere Informationen, um häufige Fehler zu vermeiden.
Falls Sie es bevorzugen, eine lokal laufende SMTP Relay Station zu nutzen, schauen Sie sich die notwendigen Anpassungen der compose Datei an.
Die Publisher-Daten werden verwendet, um den OASIS CSAF-Standard einzuhalten.
Der Abschnitt über Provider-Metadaten beschreibt die Bedeutung der Felder im Detail.
Es wird empfohlen, die Datei config.toml in einem dedizierten Verzeichnis (in diesem Beispiel “bomnipotent_config”) zu speichern. BOMnipotent Server überwacht das Verzeichnis auf Änderungen. Je weniger Dateien sich im Ordner befinden, desto weniger muss er überwachen. Der Server versucht, die Konfigurationsdatei und die .env-Datei neu zu laden, sobald sich eine davon ändert.
Viele Konfigurationseinstellungen unterstützen Hot Reloading, d. h. sie können ohne Serverneustart geändert werden.
Nachdem Sie Ihre config.toml eingerichtet haben, können Sie diese beispielsweise als config.toml.default kopieren, um Ihre ursprüngliche Konfiguration schnell wiederherstellen zu können. Dies ist jedoch völlig optional.
open_pgp_*_key.asc
OpenPGP ist ein Standard zum Verschlüsseln und Signieren von Dateien und Nachrichten. Eine andere Seite dieser Dokumentation bietet einen Überblick sowie einen leichten Einstieg in das Thema.
Der geheime Schlüssel wird verwendet, um heruntergeladene BOMs und CSAF Dokumente zu signieren.
Falls Ihr geheimer Schlüssel durch eine Passphrase geschützt ist, müssen Sie diese in der .env Datei angeben und in der config.toml verwenden. Andernfalls können Sie das Argument weglassen.
Der öffentliche Schlüssel wird von den Verwendern Ihres Servers benötigt, um die Signatur zu überprüfen. Er ist deswegen unter der URL “<Ihre-Domain>/openpgp-key.asc” zu finden.
BOMnipotent Server bemerkt, falls Sie aus Versehen öffentlichen und geheimen Schlüssel vertauschen, oder falls diese nicht zusammenpassen.
Nur falls Sie beide Schlüsseldateien in der config.toml angeben darf BOMnipotent Server sie als csaf_trusted_provider ausweisen.
bomnipotent_server
Dies ist die Binärdatei, mit der BOMnipotent Server ausgeführt wird. Sie können jede Version für Ihre Serverplattform von www.bomnipotent.de herunterladen.
Grundsätzlich benötigt BOMnipotent Server lediglich den Pfad zu seiner Konfigurationsdatei. Wenn Sie die Binärdatei ausführen und den Pfad als erstes Argument angeben, haben Sie eine funktionierende Serverinstanz erstellt. Ihr Terminal ist nun jedoch dauerhaft blockiert, und der Dienst wird nach einem Systemneustart nicht neu gestartet. Der Rest dieses Abschnitts dient lediglich dazu, sicherzustellen, dass das Betriebssystem den Server ordentlich unterstützt.
Im Gegensatz BOMnipotent Client, der unter allen gängigen Betriebssystemen läuft, wird BOMnipotent Server derzeit nur unter Linux und Windows unterstützt. Wenn Sie ihn auf einem Server mit macOS hosten möchten, erstellen Sie bitte einen Issue.
Für diese Konfiguration muss systemd auf Ihrer Distribution integriert sein.
Falls Sie unsicher sind, ob es das ist, ist es das wahrscheinlich.
Falls Sie sicher sind, dass es das nicht ist, benötigen Sie diese Anleitung wahrscheinlich nicht.
Erstellen Sie die Datei “/etc/systemd/system/bomnipotent.service” mit folgendem Inhalt:
Passen Sie die Werte an Ihren Server an. Führen Sie anschließend Folgendes aus:
Öffnen Sie die Aufgabenplanung (taskschd.msc).
Klicken Sie im rechten Bereich auf “Aufgabe erstellen”.
Im Reiter “Allgemein”:
- Benennen Sie die Aufgabe “BOMnipotent Server”.
- Wählen Sie “Ausführen, unabhängig davon, ob der Benutzer angemeldet ist oder nicht”.
Im Reiter “Trigger”:
- Klicken Sie auf “Neu” und wählen Sie “Beim Start”.
Im Reiter “Aktionen”:
- Klicken Sie auf “Neu” und legen Sie die Aktion auf “Programm starten” fest.
- Wählen Sie unter “Programm/Skript” “C:\Pfad\zu\bomnipotent_server.exe” (entsprechend anpassen).
- Geben Sie unter “Argumente hinzufügen (optional)” “C:\Pfad\zu\bomnipotent_config\config.toml” ein (entsprechend anpassen).
Klicken Sie auf “OK”, um die Aufgabe zu speichern.