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 -yEinige 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:// zuzugreifen. Sie erhalten den folgenden Bildschirm.

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

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.
Erhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.