NetBox Installation · 15 min read · Oct 22, 2025

So installieren Sie das NetBox-Netzwerkdokumentations- und Verwaltungstool auf Ubuntu 22.04

NetBox ist eine Open-Source-Webanwendung zur Verwaltung von IP-Adressen (IPAM) und der Infrastruktur von Rechenzentren (DCIM), die zur Verwaltung und Dokumentation von Computernetzwerken und IP-Adressen verwendet wird. Das Netzwerkengineering-Team von DigitalOcean hat es ursprünglich konzipiert. Es ist mit dem Django-Python-Framework geschrieben und verwendet die PostgreSQL-Datenbank zur Datenspeicherung. Es verwendet auch die Redis-Datenbank zum Caching von Abfragen.

Dieses Tutorial zeigt Ihnen, wie Sie das NetBox-Tool auf einem Ubuntu 22.04-Server und Nginx als Reverse-Proxy-Server installieren.

Voraussetzungen

  • Ein Server, der Ubuntu 22.04 ausführt.
  • Ein Nicht-Root-Benutzer mit Sudo-Rechten.
  • Ein vollständig qualifizierter Domainname (FQDN) wie netbox.example.com.
  • Stellen Sie sicher, dass alles aktualisiert ist. $ sudo apt update $ sudo apt upgrade
  • Einige Pakete, die Ihr System benötigt. $ sudo apt install wget curl nano software-properties-common dirmngr apt-transport-https gnupg2 ca-certificates lsb-release ubuntu-keyring unzip -y Einige dieser Pakete sind möglicherweise bereits auf Ihrem System installiert.

Schritt 1 - Firewall konfigurieren

Der erste Schritt besteht darin, die Firewall zu konfigurieren. Ubuntu wird standardmäßig mit ufw (Uncomplicated Firewall) geliefert.

Überprüfen Sie, ob die Firewall läuft.

$ sudo ufw status

Sie sollten die folgende Ausgabe erhalten.

Status: inactive

Erlauben Sie den SSH-Port, damit die Firewall die aktuelle Verbindung beim Aktivieren nicht unterbricht.

$ sudo ufw allow OpenSSH

Erlauben Sie auch die HTTP- und HTTPS-Ports.

$ sudo ufw allow http
$ sudo ufw allow https

Aktivieren Sie die Firewall

$ sudo ufw enable
Befehl kann bestehende SSH-Verbindungen stören. Mit der Operation fortfahren (y|n)? y
Firewall ist aktiv und beim Systemstart aktiviert

Überprüfen Sie den Status der Firewall erneut.

$ sudo ufw status

Sie sollten eine ähnliche Ausgabe sehen.

Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
80/tcp                     ALLOW       Anywhere
443                        ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)
80/tcp (v6)                ALLOW       Anywhere (v6)
443 (v6)                   ALLOW       Anywhere (v6)

Schritt 2 - PostgreSQL installieren und konfigurieren

NetBox funktioniert mit PostgreSQL 11 und höher. Ubuntu 22.04 wird standardmäßig mit PostgreSQL 14 ausgeliefert. Wir werden PostgreSQL 15 für unser Tutorial verwenden.

Führen Sie den folgenden Befehl aus, um den PostgreSQL GPG-Schlüssel hinzuzufügen.

$ curl https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor | sudo tee /usr/share/keyrings/postgresql-key.gpg >/dev/null

Fügen Sie das APT-Repository zu Ihrer Quellenliste hinzu.

$ sudo sh -c 'echo "deb [signed-by=/usr/share/keyrings/postgresql-key.gpg arch=amd64] http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'

Aktualisieren Sie das System-Repository.

$ sudo apt update

Jetzt können Sie PostgreSQL mit dem folgenden Befehl installieren.

$ sudo apt install postgresql postgresql-contrib

Das Paket postgresql-contrib enthält einige zusätzliche Dienstprogramme.

Überprüfen Sie den Status des PostgreSQL-Dienstes.

$ sudo systemctl status postgresql
? postgresql.service - PostgreSQL RDBMS
     Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
     Active: active (exited) since Tue 2022-11-27 9:10:35 UTC; 5s ago
    Process: 30544 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
   Main PID: 30544 (code=exited, status=0/SUCCESS)
        CPU: 2ms

Dec 27 9:10:35 netbox systemd[1]: Starting PostgreSQL RDBMS...
Dec 27 9:10:35 netbox systemd[1]: Finished PostgreSQL RDBMS.

Sie können sehen, dass der Dienst standardmäßig aktiviert und ausgeführt wird.

Starten Sie die PostgreSQL-Shell.

$ sudo -i -u postgres psql

Erstellen Sie die NetBox-Datenbank.

postgres=# CREATE DATABASE netbox;

Erstellen Sie den NetBox-Benutzer und wählen Sie ein sicheres Passwort.

postgres-# CREATE USER netbox WITH PASSWORD 'Your_Password';

Ändern Sie den Datenbankbesitzer in den NetBox-Benutzer.

postgres-# ALTER DATABASE netbox OWNER TO netbox;

Verlassen Sie die Shell.

postgres-# \q

Überprüfen Sie, ob Ihre Anmeldeinformationen funktionieren.

$ psql --username netbox --password --host localhost netbox
Passwort für Benutzer netbox:
psql (15.1 (Ubuntu 15.1-1.pgdg22.04+1))
SSL-Verbindung (Protokoll: TLSv1.3, Chiffre: TLS_AES_256_GCM_SHA384, Bits: 256, Kompression: aus)
Geben Sie "help" für Hilfe ein.

netbox=>

Verlassen Sie die Shell, indem Sie \q eingeben.

Schritt 3 - Redis installieren und konfigurieren

Ubuntu wird mit Redis 6.0.16 ausgeliefert. Für unser Tutorial werden wir die neueste Version aus dem offiziellen Repository installieren.

Importieren Sie den offiziellen Redis GPG-Schlüssel.

$ curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg

Fügen Sie das APT-Repository zu Ihrer Quellenliste hinzu.

echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list

Aktualisieren Sie die System-Repository-Liste.

$ sudo apt update

Führen Sie den folgenden Befehl aus, um den Redis-Server zu installieren.

$ sudo apt install redis

Bestätigen Sie die Redis-Version.

$ redis-server -v
Redis-Server v=7.0.7 sha=00000000:0 malloc=jemalloc-5.2.1 bits=64 build=2260280010e18db8

Lassen Sie uns die Dienstverbindung mit dem folgenden Befehl überprüfen.

$ redis-cli

Sie werden zur Redis-Shell gewechselt.

Der erste Schritt besteht darin, das Passwort für den Standardbenutzer von Redis festzulegen. Ersetzen Sie Your_Redis_Password durch ein sicheres Passwort Ihrer Wahl.

127.0.0.1:6379> acl setuser default >Your_Redis_Password

Testen Sie die Redis-Authentifizierung.

127.0.0.1:6379> AUTH Your_Redis_Password
OK

Pingen Sie den Dienst.

127.0.0.1:6379> ping
PONG

Verlassen Sie den Dienst, indem Sie exit eingeben.

Schritt 4 - NetBox herunterladen

NetBox benötigt Python Django, um zu funktionieren. Der erste Schritt bei der Installation von NetBox besteht darin, die erforderlichen Python-Pakete zu installieren. Führen Sie den folgenden Befehl aus, um die erforderlichen Python-Pakete zu installieren.

$ sudo apt install -y python3 python3-pip python3-venv python3-dev build-essential libxml2-dev libxslt1-dev libffi-dev libpq-dev libssl-dev zlib1g-dev

Überprüfen Sie die Python-Version.

$ python3 -V
Python 3.10.6

Erstellen Sie das Basisverzeichnis für die NetBox-Installation.

$ sudo mkdir -p /opt/netbox/

Wechseln Sie in das Verzeichnis.

$ cd /opt/netbox

Klonen Sie den Master-Zweig des GitHub-Repositorys von NetBox in das aktuelle Verzeichnis.

$ sudo git clone -b master --depth 1 https://github.com/netbox-community/netbox.git .

Das Flag --depth 1 ruft nur den neuesten Commit des Repositorys ab. Wenn Sie die gesamte Commit-Historie herunterladen möchten, können Sie das Flag weglassen.

Überprüfen Sie die neueste Version von NetBox auf der Release-Seite und checken Sie sie mit Git aus. Zum Zeitpunkt des Schreibens des Tutorials ist 3.4.1 die neueste verfügbare Version.

$ git config --global --add safe.directory /opt/netbox
$ sudo git checkout v3.4.1

Bevor Sie es auschecken, müssen Sie das Verzeichnis zur Liste der sicheren Verzeichnisse von Git hinzufügen. Dies ist eine neue Sicherheitsfunktion, die in den neuesten Git-Versionen verfügbar ist.

Der nächste Schritt besteht darin, einen Systembenutzer und eine Gruppe für NetBox zu erstellen.

$ sudo adduser --system --group netbox

Geben Sie dem Benutzer Berechtigungen für das Medienverzeichnis von NetBox.

$ sudo chown --recursive netbox /opt/netbox/netbox/media/

Schritt 5 - NetBox konfigurieren

Wechseln Sie in das Konfigurationsverzeichnis von NetBox.

$ cd /opt/netbox/netbox/netbox/

Kopieren Sie die Beispieldatei zur Erstellung der tatsächlichen Datei.

$ sudo cp configuration_example.py configuration.py

Bevor Sie mit der Konfiguration fortfahren, müssen wir einen geheimen Schlüssel für NetBox erstellen. Notieren Sie sich den Schlüssel, da wir ihn für die Konfiguration benötigen.

$ python3 ../generate_secret_key.py
dSSWi$Ar2cVvu1)V!B82sY1tJAQK9r)vzM8ReQRF7@C^+$=1+(

Öffnen Sie die Konfigurationsdatei zur Bearbeitung.

$ sudo nano configuration.py

Suchen Sie die Variable ALLOWED_HOSTS und setzen Sie ihre Werte wie folgt. Diese Variable enthält eine Liste der gültigen Hostnamen und IP-Adressen, über die dieser Server erreicht werden kann.

ALLOWED_HOSTS = ['netbox.example.com', '']

Der nächste Schritt besteht darin, die Datenbankdetails zu bearbeiten. Konfigurieren Sie die Datenbankdetails wie folgt.

DATABASE = {
    'NAME': 'netbox',              # Datenbankname
    'USER': 'netbox',              # PostgreSQL-Benutzername
    'PASSWORD': 'Your_Password',   # PostgreSQL-Passwort
    'HOST': 'localhost',           # Datenbankserver
    'PORT': '',                    # Datenbankport (leer lassen für Standard)
    'CONN_MAX_AGE': 300,           # Maximalalter der Datenbankverbindung
}

Konfigurieren Sie die Redis-Konfiguration wie gezeigt. Geben Sie das Redis-Passwort ein, das Sie in Schritt 3 festgelegt haben.

REDIS = {
    'tasks': {
        'HOST': 'localhost',
        'PORT': 6379,
        # Kommentieren Sie die Zeilen `HOST` und `PORT` aus und heben Sie die folgenden hervor, wenn Sie Redis Sentinel verwenden
        # 'SENTINELS': [('mysentinel.redis.example.com', 6379)],
        # 'SENTINEL_SERVICE': 'netbox',
        'PASSWORD': 'Your_Redis_Password',
        'DATABASE': 0,
        'SSL': False,
        # Setzen Sie dies auf True, um die TLS-Zertifikatsüberprüfung zu überspringen
        # Dies kann die Verbindung Angriffen aussetzen, seien Sie vorsichtig
        # 'INSECURE_SKIP_TLS_VERIFY': False,
    },
    'caching': {
        'HOST': 'localhost',
        'PORT': 6379,
        # Kommentieren Sie die Zeilen `HOST` und `PORT` aus und heben Sie die folgenden hervor, wenn Sie Redis Sentinel verwenden
        # 'SENTINELS': [('mysentinel.redis.example.com', 6379)],
        # 'SENTINEL_SERVICE': 'netbox',
        'PASSWORD': 'Your_Redis_Password',
        'DATABASE': 1,
        'SSL': False,
        # Setzen Sie dies auf True, um die TLS-Zertifikatsüberprüfung zu überspringen
        # Dies kann die Verbindung Angriffen aussetzen, seien Sie vorsichtig
        # 'INSECURE_SKIP_TLS_VERIFY': False,
    }
}

Fügen Sie den Wert des geheimen Schlüssels der Variablen hinzu.

SECRET_KEY = 'dSSWi$Ar2cVvu1)V!B82sY1tJAQK9r)vzM8ReQRF7@C^+$=1+('

Standardmäßig verwendet NetBox das lokale Dateisystem, um hochgeladene Dateien zu speichern. Sie können Dateien auf einem Remote-Dateisystem speichern, indem Sie die Bibliothek django-storages installieren. Führen Sie den folgenden Befehl aus, um das Paket django-storages zur requirements.txt von NetBox hinzuzufügen, das dann in einem späteren Schritt installiert wird. Wir müssen auch die Speicherparameter konfigurieren. Kommentieren Sie den Speicherabschnitt der Konfigurationsdatei aus und fahren Sie wie folgt fort.

STORAGE_BACKEND = 'storages.backends.s3boto3.S3Boto3Storage'
STORAGE_CONFIG = {
    'AWS_ACCESS_KEY_ID': 'Key ID',
    'AWS_SECRET_ACCESS_KEY': 'Secret',
    'AWS_STORAGE_BUCKET_NAME': 'netbox',
    'AWS_S3_REGION_NAME': 'eu-west-1',
}

Andere Speichertypen werden ebenfalls unterstützt, einschließlich FTP, SFTP, Dropbox und anderer S3-Anbieter. Um zu erfahren, wie Sie sie konfigurieren, können Sie die Hilfeseite von django-storages lesen.

Speichern Sie die Datei, indem Sie Strg + X drücken und Y eingeben, wenn Sie dazu aufgefordert werden.

Schritt 6 - NetBox installieren

Führen Sie das Upgrade-Skript von NetBox aus.

$ sudo /opt/netbox/upgrade.sh

Das Upgrade-Skript führt die folgenden Aufgaben aus.

  • Erstellt eine Python-virtuelle Umgebung
  • Installiert alle erforderlichen Python-Pakete
  • Führt Datenbankschema-Migrationen durch
  • Baut die Dokumentation lokal (für die Offline-Nutzung)
  • Aggregiert statische Ressourcen-Dateien auf der Festplatte

Aktivieren Sie die virtuelle Umgebung, die vom Upgrade-Skript erstellt wurde.

$ source /opt/netbox/venv/bin/activate

Der nächste Schritt besteht darin, einen Superbenutzer zu erstellen, um auf NetBox zuzugreifen. Wechseln Sie zuerst in das erforderliche Verzeichnis.

(venv) $ cd /opt/netbox/netbox

Erstellen Sie den Superbenutzer.

(venv) $ python3 manage.py createsuperuser

Sie erhalten die folgende Ausgabe.

Benutzername (leer lassen, um 'navjot' zu verwenden):
E-Mail-Adresse: [email protected]
Passwort:
Passwort (nochmals):
Superbenutzer erfolgreich erstellt.

NetBox enthält einen housekeeping-Managementbefehl, der wiederkehrende Bereinigungsaufgaben wie das Löschen alter Sitzungen und abgelaufener Änderungsprotokolle verwaltet. Sie können den Befehl entweder manuell ausführen oder Cron verwenden, um ihn in regelmäßigen Abständen auszuführen. NetBox bietet ein Shell-Skript, um die Hausmeisteraufgaben auszuführen. Führen Sie den folgenden Befehl aus, um einen symbolischen Link für das Skript im täglichen Cron-Verzeichnis zu erstellen. Dadurch wird sichergestellt, dass der Befehl täglich ausgeführt wird.

(venv) $ sudo ln -s /opt/netbox/contrib/netbox-housekeeping.sh /etc/cron.daily/netbox-housekeeping

Der letzte Schritt besteht darin, zu testen, ob die NetBox-Anwendung funktioniert. Zuerst müssen wir jedoch den Port 8000 für Tests öffnen. Sie können jedoch jeden Port verwenden.

(venv) $ sudo ufw allow 8000

Starten Sie eine Entwicklungsinstanz von NetBox.

(venv) $ python3 manage.py runserver 0.0.0.0:8000 --insecure

Wenn erfolgreich, erhalten Sie die folgende Ausgabe.

Durchführung von Systemprüfungen...

Systemprüfung hat keine Probleme identifiziert (0 stumm).
27. Dezember 2022 - 09:27:37
Django-Version 4.1.4, verwendet Einstellungen 'netbox.settings'
Starte Entwicklungsserver unter http://0.0.0.0:8000/
Beenden Sie den Server mit CONTROL-C.

Sie sollten in der Lage sein, auf NetBox über die URL http://:8000/ zuzugreifen. Sie erhalten den folgenden Bildschirm.

NetBox-Startseite

Klicken Sie auf die Schaltfläche Anmelden, um die Anmeldeseite zu öffnen, und geben Sie die zuvor erstellten Superbenutzer-Anmeldeinformationen ein.

NetBox-Anmeldeseite

Sie werden zurück zum NetBox-Dashboard geleitet.

Drücken Sie die Strg + C-Taste, um den Server zu stoppen. Deaktivieren Sie die Python-virtuelle Umgebung.

(venv) $ deactivate

Schritt 7 - Gunicorn konfigurieren und eine Dienstdatei erstellen

NetBox läuft als WSGI-Anwendung hinter einem HTTP-Server. NetBox installiert automatisch den Gunicorn-Server. In diesem Schritt werden wir Gunicorn konfigurieren und eine Dienstdatei für NetBox erstellen, damit sie im Hintergrund und über Systemneustarts hinweg ausgeführt werden kann.

NetBox wird mit einer Standard-Gunicorn-Konfigurationsdatei geliefert. Erstellen Sie eine Kopie davon.

$ sudo cp /opt/netbox/contrib/gunicorn.py /opt/netbox/gunicorn.py

Die Standardkonfiguration sollte für unsere Zwecke ausreichen. Je nach Ihren Bedürfnissen können Sie die Datei bearbeiten, um den Hostnamen, die Portnummer zu ändern oder Leistungsverbesserungen durch Ändern von Threads, Arbeitern und der Anzahl der Anfragen vorzunehmen.

Der nächste Schritt besteht darin, sowohl die NetBox- als auch die Gunicorn-Dienstdateien in das Verzeichnis /etc/systemd/system zu kopieren.

$ sudo cp -v /opt/netbox/contrib/*.service /etc/systemd/system/

Laden Sie den Dienstdaemon neu.

$ sudo systemctl daemon-reload

Starten und aktivieren Sie die Dienste netbox und netbox-rq.

$ sudo systemctl start netbox netbox-rq
$ sudo systemctl enable netbox netbox-rq

Überprüfen Sie den Status des WSGI-Dienstes.

$ sudo systemctl status netbox

Sie erhalten eine ähnliche Ausgabe.

? netbox.service - NetBox WSGI-Dienst
     Loaded: loaded (/etc/systemd/system/netbox.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2022-12-27 09:28:23 UTC; 17s ago
       Docs: https://docs.netbox.dev/
   Main PID: 4180 (gunicorn)
      Tasks: 6 (limit: 1030)
     Memory: 357.9M
        CPU: 7.747s
     CGroup: /system.slice/netbox.service
             ??4180 /opt/netbox/venv/bin/python3 /opt/netbox/venv/bin/gunicorn --pid /var/tmp/netbox.pid --pythonpath /opt/netbox/netbox --config /opt/netbox/gunicorn.py netbox.wsgi
             ??4181 /opt/netbox/venv/bin/python3 /opt/netbox/venv/bin/gunicorn --pid /var/tmp/netbox.pid --pythonpath /opt/netbox/netbox --config /opt/netbox/gunicorn.py netbox.wsgi
             ??4182 /opt/netbox/venv/bin/python3 /opt/netbox/venv/bin/gunicorn --pid /var/tmp/netbox.pid --pythonpath /opt/netbox/netbox --config /opt/netbox/gunicorn.py netbox.wsgi
             ??4183 /opt/netbox/venv/bin/python3 /opt/netbox/venv/bin/gunicorn --pid /var/tmp/netbox.pid --pythonpath /opt/netbox/netbox --config /opt/netbox/gunicorn.py netbox.wsgi
             ??4184 /opt/netbox/venv/bin/python3 /opt/netbox/venv/bin/gunicorn --pid /var/tmp/netbox.pid --pythonpath /opt/netbox/netbox --config /opt/netbox/gunicorn.py netbox.wsgi
             ??4185 /opt/netbox/venv/bin/python3 /opt/netbox/venv/bin/gunicorn --pid /var/tmp/netbox.pid --pythonpath /opt/netbox/netbox --config /opt/netbox/gunicorn.py netbox.wsgi

Dec 27 09:28:23 netbox systemd[1]: Started NetBox WSGI-Dienst.
Dec 27 09:28:24 netbox gunicorn[4180]: [2022-12-27 09:28:24 +0000] [4180] [INFO] Starte gunicorn 20.1.0
Dec 27 09:28:24 netbox gunicorn[4180]: [2022-12-27 09:28:24 +0000] [4180] [INFO] Höre auf: http://127.0.0.1:8001 (4180)
Dec 27 09:28:24 netbox gunicorn[4180]: [2022-12-27 09:28:24 +0000] [4180] [INFO] Verwende Worker: gthread
Dec 27 09:28:24 netbox gunicorn[4181]: [2022-12-27 09:28:24 +0000] [4181] [INFO] Starte Worker mit PID: 4181
Dec 27 09:28:24 netbox gunicorn[4182]: [2022-12-27 09:28:24 +0000] [4182] [INFO] Starte Worker mit PID: 4182
Dec 27 09:28:24 netbox gunicorn[4183]: [2022-12-27 09:28:24 +0000] [4183] [INFO] Starte Worker mit PID: 4183
Dec 27 09:28:24 netbox gunicorn[4184]: [2022-12-27 09:28:24 +0000] [4184] [INFO] Starte Worker mit PID: 4184
Dec 27 09:28:24 netbox gunicorn[4185]: [2022-12-27 09:28:24 +0000] [4185] [INFO] Starte Worker mit PID: 4185

Wie Sie sehen können, hört Gunicorn standardmäßig auf Port 8001. Diese Information ist nützlich, wenn Sie Nginx als Reverse-Proxy-Server konfigurieren.

Schritt 8 - Nginx installieren

Ubuntu 22.04 wird mit einer älteren Version von Nginx ausgeliefert. Um die neueste Version zu installieren, müssen Sie das offizielle Nginx-Repository herunterladen.

Importieren Sie den Signaturschlüssel von Nginx.

$ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
    | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null

Fügen Sie das Repository für die stabile Version von Nginx hinzu.

$ echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg arch=amd64] \
http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" \
    | sudo tee /etc/apt/sources.list.d/nginx.list

Aktualisieren Sie die System-Repositories.

$ sudo apt update

Installieren Sie Nginx.

$ sudo apt install nginx

Überprüfen Sie die Installation.

$ nginx -v
nginx version: nginx/1.22.1

Starten Sie den Nginx-Server.

$ sudo systemctl start nginx

Schritt 9 - SSL installieren

Wir müssen Certbot installieren, um das SSL-Zertifikat zu generieren. Sie können Certbot entweder über das Ubuntu-Repository installieren oder die neueste Version mit dem Snapd-Tool herunterladen. Wir werden die Snapd-Version verwenden.

Ubuntu 22.04 wird standardmäßig mit Snapd installiert. Führen Sie die folgenden Befehle aus, um sicherzustellen, dass Ihre Version von Snapd auf dem neuesten Stand ist. Stellen Sie sicher, dass Ihre Version von Snapd auf dem neuesten Stand ist.

$ sudo snap install core
$ sudo snap refresh core

Installieren Sie Certbot.

$ sudo snap install --classic certbot

Verwenden Sie den folgenden Befehl, um sicherzustellen, dass der Certbot-Befehl ausgeführt wird, indem Sie einen symbolischen Link zum Verzeichnis /usr/bin erstellen.

$ sudo ln -s /snap/bin/certbot /usr/bin/certbot

Führen Sie den folgenden Befehl aus, um ein SSL-Zertifikat zu generieren.

$ sudo certbot certonly --nginx --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d netbox.example.com

Der obige Befehl lädt ein Zertifikat in das Verzeichnis /etc/letsencrypt/live/netbox.example.com auf Ihrem Server herunter.

Generieren Sie ein Diffie-Hellman-Gruppe-Zertifikat.

$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096

Um zu überprüfen, ob die SSL-Erneuerung einwandfrei funktioniert, führen Sie einen Testlauf des Prozesses durch.

$ sudo certbot renew --dry-run

Wenn Sie keine Fehler sehen, sind Sie bereit. Ihr Zertifikat wird automatisch erneuert.

Schritt 10 - Nginx konfigurieren

Öffnen Sie die Datei /etc/nginx/nginx.conf zur Bearbeitung.

$ sudo nano /etc/nginx/nginx.conf

Fügen Sie die folgende Zeile vor der Zeile include /etc/nginx/conf.d/*.conf; hinzu.

server_names_hash_bucket_size  64;

Speichern Sie die Datei, indem Sie Strg + X drücken und Y eingeben, wenn Sie dazu aufgefordert werden.

Erstellen und öffnen Sie die Datei /etc/nginx/conf.d/netbox.conf zur Bearbeitung.

$ sudo nano /etc/nginx/conf.d/netbox.conf

Fügen Sie den folgenden Code ein.

server {
  # Leiten Sie alle http-Anfragen zu https um
  listen         80;
  listen         [::]:80;
  server_name    netbox.example.com;
  return 301     https://$host$request_uri;
}

server {
  listen                    443 ssl http2;
  listen                    [::]:443 ssl http2;
  server_name               netbox.example.com;

  access_log                /var/log/nginx/netbox.access.log;
  error_log                 /var/log/nginx/netbox.error.log;

  # TLS-Konfiguration
  ssl_certificate           /etc/letsencrypt/live/netbox.example.com/fullchain.pem;
  ssl_certificate_key       /etc/letsencrypt/live/netbox.example.com/privkey.pem;
  ssl_trusted_certificate   /etc/letsencrypt/live/netbox.example.com/chain.pem;
  ssl_protocols             TLSv1.2 TLSv1.3;

  ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384';
  ssl_prefer_server_ciphers on;
  ssl_session_cache         shared:SSL:50m;
  ssl_session_timeout       1d;

  # OCSP Stapling ---
  # Holen Sie sich OCSP-Datensätze von der URL im ssl_certificate und cachen Sie sie
  ssl_stapling on;
  ssl_stapling_verify on;
  ssl_dhparam /etc/ssl/certs/dhparam.pem;

  client_max_body_size 25m;

  # Proxy alles zum NetBox-Server
  location /static/ {
    alias /opt/netbox/netbox/static/;
  }

  location / {
    proxy_set_header        X-Real-IP $remote_addr;
    proxy_set_header        X-Forwarded-Proto $scheme;
    proxy_set_header        X-Forwarded-Host $http_host;
    proxy_pass              http://127.0.0.1:8001;
  }
}

Speichern Sie die Datei, indem Sie Strg + X drücken und Y eingeben, wenn Sie dazu aufgefordert werden.

Überprüfen Sie die Syntax der Nginx-Konfigurationsdatei.

$ sudo nginx -t
nginx: die Konfigurationsdatei /etc/nginx/nginx.conf Syntax ist ok
nginx: Konfigurationsdatei /etc/nginx/nginx.conf Test war erfolgreich

Starten Sie den Nginx-Dienst neu.

$ sudo systemctl restart nginx

Sie können jetzt auf das NetBox-Dashboard über die URL https://netbox.example.com zugreifen.

Schritt 11 - NetBox aktualisieren

Das Aktualisieren von NetBox ist ganz einfach. Die Schritte umfassen das Auschecken des Master-Zweigs des Git-Repositorys, das Abrufen der neuesten Commits und das Auschecken der neuen stabilen Version.

Wechseln Sie in das NetBox-Verzeichnis.

$ cd /opt/netbox

Checken Sie den Master-Zweig aus.

$ sudo git checkout master

Holen Sie sich die neuesten Commits aus dem Repository.

$ sudo git pull origin master

Checken Sie die neue Version aus. Wenn 3.4.2 die neuere Version ist, können Sie diese auschecken.

$ sudo git checkout v3.4.2

Führen Sie das Upgrade-Skript aus.

$ sudo ./upgrade.sh

Für den Upgrade-Prozess führt das Skript die folgenden Funktionen aus.

  • Zerstört und baut die Python-virtuelle Umgebung neu auf
  • Installiert alle erforderlichen Python-Pakete (aufgelistet in requirements.txt)
  • Installiert alle zusätzlichen Pakete aus local_requirements.txt
  • Wendet alle Datenbankmigrationen an, die in der Veröffentlichung enthalten sind
  • Baut die Dokumentation lokal (für die Offline-Nutzung)
  • Sammelt alle statischen Dateien, die vom HTTP-Dienst bereitgestellt werden sollen
  • Löscht veraltete Inhaltstypen aus der Datenbank
  • Löscht alle abgelaufenen Benutzersitzungen aus der Datenbank

Starten Sie den Gunicorn- und NetBox-Dienst neu.

$ sudo systemctl restart netbox netbox-rq

Fazit

Damit endet unser Tutorial zur Installation des NetBox-Netzwerkdokumentations- und Verwaltungstools auf einem Ubuntu 22.04-Server sowie Nginx als Reverse-Proxy-Server. Wenn Sie Fragen haben, posten Sie diese in den Kommentaren unten.

Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.