OPNsense VM Platte voll?

Auf einer meiner OPNsense VMs war die zugewiesene Platte voll. Das lässt sich ganz einfach beheben, wie in folgendem Video beschrieben:

Hier habe ich dir noch schnell die passenden Befehle rausgeschrieben.

Zum Anzeigen der Plattenbelegung:

gpart show

Nach dem Vergrößern der Platte musst du zuerst die Partitionstabelle fixen:

gpart recover da0

Setze dabei für da0 die Bezeichnung deiner Patte ein.

Jetzt kannst du die Partition vergrößern:

gpart resize -i 4 da0

Passe dabei auf, die richtige Partitionsnummer einzusetzen.

Überprüfe die erfolgreiche Vergrößerung:

gpart show

Jetzt musst du noch das root-Filesystem vergrößern, dazu musst du unterscheiden, ob du ein UFS oder ZFS hast.

Für UFS:

growfs /dev/gpt/rootfs

Und für ZFS:

zpool online -e zroot da0p4

Hierbei auch wieder aufpassen wegen der Platte und Partition. da0p4 in meinem Fall heißt einfach Platte da0 und Partition 4

Das war’s auch schon 🙂

Falls du noch passende Hardware suchst um deine OPNsense aus der Virtualisierung zu befreien, dann schau doch mal meine Amazon-Links an. Falls etwas für dich dabei ist, würde ich mich freuen wenn du es über meinen Link bestellst, dir entstehen dabei keinerlei Mehrkosten und ich erhalte einen kleinen Anteil von Amazon.

Bestseller No. 1
SaleBestseller No. 2
Micro Firewall Appliance, Mini PC, pFsense Plus, Mikrotik, OPNsense, VPN, Router PC, Intel Alder Lake-N 12th Gen N100, HUNSN RJ42, 4 x 2.5GbE I226-V, 2 x HDMI, DP, TF, Type-C, 8G DDR5 RAM, 128G SSD
  • HUNSN RJ42 equipped with intel gen 12th alder lake-n n100 processor, compatible with many freebsd based router systems, linux distros, or win.os supported, easy configuration and management, support intel aes new instructions
  • Compatibility, firewalls for pfsense plus, opnsense and other popular open-source software solutions, supports UEFI only
  • Compact aluminum, 12v3a power supply, with power cord, all use a big brand memory and ssd/hdd with quality assurance, ready to run straight out of the box
  • RJ42 designed with power on/off, 5 x usb2.0, usb3.0, dp1.4, tf slot for data storage / system boot, type-c for display / data, 4 x lan, 2 x hdmi2.1, dc_in, size at 145.6 x 126.5 x 53.6mm
  • Quiet, fanless design silent 100%, 0.00db noise makes an ideal deployment in small offices
Bestseller No. 4
Sharevdi Firewall Micro Appliance, 4*In-tel i225 2.5Gbe NICs, In-tel Pentium N3700 4 Cores/4 Threads,SSD Dual HDMI/USB3.0/RS232 COM, AES NI, Kompatibel mit OPNsense (8 G 128 G/COM)
  • 【Leistungsstarker Prozessor】Firewall Micro Appliance Mini-PC mit In-tel N3700, 4Cores / 4 Threads (2MB L2 Cache, bis zu 2.40GHz), unterstützt AES-NI, es unterstützt Windows 10, Linux Ubuntu und andere Open Source Systeme. Das Gerät mit i225 Chip ist nicht kompatibel mit IPCop/sophos/untangle/coreboot.
  • 【Reichhaltige Schnittstelle】Der lüfterlose Mini-PC verfügt über 4 x I225-V 2.5GbE Nic Ethernet Ports, 2 x USB3.0 Ports, 2 x HDMI Ports, 1 xRS232 Com Port, 1 x DC Port, kann als Webserver, LAN- oder WAN-Router, VPN-Gerät, DHCP-Server, DNS-Server und IDS/IPS verwendet werden und kann auch als kommerzielle Firewall konfiguriert werden, um Ihr Netzwerk zu sichern.
  • 【Skalierbarer Speicher】der kleine Firewall-Minicomputer ist mit 8GB DDR3, 128GB M-SATA SSD, max. 512GB ausgestattet; optionale HDD (Motherboard unterstützt 2,5-Zoll-HDD-Erweiterung), großer Speicherplatz zum Speichern einer großen Anzahl von Dateien und verschiedener Netzwerksicherheitssoftware.
  • 【Lüfterloser PC】Die kleine Firewall-Box verfügt über Aluminiumlegierung Shell und schnellere Wärmeableitung. Kein Lüfter Design, unterstützt 7 * 24 Stunden Arbeit. Die Größe ist nur L 133,8 mm * B 126,6 mm * H 36,5 mm, klein, aber leistungsstark. Kommt mit Wandhalterung, die auf dem Mini-PC Rückseite des Monitors aufgehängt werden kann, spart Platz und Komfort.
  • 【Die Verpackung enthält】1 * Mini-PC,1 * Netzadapter, 1 * Netzkabel, 1 * Benutzerhandbuch, 1 * Halterung und Schrauben. Dieses Produkt kommt mit 12 Monaten Garantie nach dem Kauf. Wenn Sie irgendwelche Probleme mit dem Produkt haben, kontaktieren Sie uns bitte über Amazon, wir haben ein professionelles und effizientes Verkaufsteam, um Sie gewissenhaft zu bedienen.
Bestseller No. 5
HSIPC Newer Celeron J4125 Quad Core Firewall Micro Appliance, Mini PC, Nano PC, Router PC with 8G RAM 128G SSD, 4*i226 2.5GBE Port AES-NI Compatible with pfsense opnsense……
  • Fanless box PC with four intel Nic, Intel Celeron J4125 Quad Core processor
  • Suitable for Network Security Application. Support AES PXE
  • With Aluminum + Metal Fanless design, it could works stably without noisy
  • Rich IO: HDMI,VGA,USB3.0+USB2.0,4*Intel I226 Nic
  • Warranty: 1st year: free, 2-3year: half of the delivery cost, >3year quote according exact status.

Synology Let’s Encrypt DNS-Challenge mit IPv64

SSL-Zertifikate?

Secure Socket Layer (SSL)-Zertifikate sind das, was dein Browser verwendet, um eine Website sicher zu kontaktieren und Benutzernamen, Passwörter, Kreditkartendaten usw. zu schützen. Auf den Synology-Geräten ist standardmäßig ein „self-signed“ Zertifikat installiert. Diese bieten zwar Sicherheit, aber der Webbrowser beschwert sich darüber und man muss verschiedene Schaltflächen/Links anklicken, um zur Website zu gelangen. Fragt man nahezu jeden Enterprise-Administrator nach dieser Unannehmlichkeit, sind selbstsignierte SSL-Zertifikate ein alter Hut – sie finden sich in zahlreichen Administrations-Tools. Für einen Endnutzer wirkt es jedoch nicht sonderlich vertrauenserweckend, wenn er Fehlermeldungen wegklicken muss, um auf ein System zuzugreifen, das wichtige und potenziell sensible Daten enthält.

Es GIBT zwar eine eingebaute Methode, ein gültiges SSL-Zertifikat auf einem Synology-Gerät zu bekommen, doch sie hat einen entscheidenden Nachteil: Dein Synology-Gerät muss dafür auf den Ports 80 und 443 über das öffentliche Internet erreichbar sein ODER du musst den Synology-DDNS-Service nutzen. Für manche Nutzer ist das vielleicht kein großes Problem, aber ich glaube nicht, dass die Mehrheit ihr Synology-Gerät öffentlich zugänglich machen oder eine merkwürdige URL (z. B. DeviceName.synology.me) verwenden möchte, um auf die Daten zuzugreifen.

Synology DS223 – Amazon-Link

Die Lösung?

Let’s Encrypt stellt kostenlose SSL-Zertifikate zur Verfügung, und acmesh (https://github.com/acmesh-official/acme.sh) bietet ein Skript, das genutzt werden kann, ohne dass Port 80 und 443 für das öffentliche Internet offen sind.

Wo ist der Haken?

Nun ja, ein bisschen gibt es da schon. Du brauchst eine Domain bei einem Registrar, der eine Programmierschnittstelle (API) bereitstellt, um bestimmte Einträge zu aktualisieren. acme.sh unterstützt auch https://IPv64.net – yay! Andere Anbieter sollten ebenfalls problemlos funktionieren, und das meiste in diesem Beitrag sollte auch für sie passen. Getestet habe ich allerdings nur mit IPv64. Deine Ergebnisse können variieren („YMMV“).

Wo fängt man an?

Als Erstes: Stell sicher, dass du einen Domainnamen bei deinem bevorzugten Registrar oder DynDNS-Anbieter (IPv64 in meinem Fall) registriert hast und beschaffe dir den API-Key. Bei IPv64 kannst du dir den API-Key in deiner Domainübersicht (für die Domain zu der das Zertifikat dann erstellt werden soll) besorgen, er steht auf der rechten Seite und kann dort kopiert werden. Sobald du den API-Key hast, kann es losgehen!

Erstelle einen Benutzer in Synology DSM

Melde dich bei deinem Synology-Gerät an, klicke auf „Systemsteuerung“ und dann auf „Benutzer und Gruppe“. Klicke auf „Erstellen“. Ich habe den Benutzernamen „certadmin“ gewählt und eine entsprechende Beschreibung hinzugefügt. Der Benutzer muss Mitglied der Gruppe „administrators“ sein (das ist erforderlich für den SSH-Zugriff, den wir gleich nutzen werden) und außerdem in der Gruppe „http“ (das ist nötig, damit sich der Prozess im SSH-Session-Kontext bei DSM authentifizieren kann). Der Benutzer „certadmin“ benötigt nur Lese-/Schreibzugriff auf den Ordner „homes“ und du kannst den Zugriff auf alle Anwendungen verweigern. Wenn du den Benutzer erstellt hast, gehe zurück zur „Systemsteuerung“, klicke auf „Terminal & SNMP“ und setze ein Häkchen bei „SSH-Dienst aktivieren“. Klicke auf „Übernehmen“.

Jetzt wird’s spannend!

Wahrscheinlich bist du hier, um eine Anleitung zu bekommen und nicht, um meine ganzen Erklärungen zu lesen – also los!

Verwende einen SSH-Client (z. B. https://www.putty.org für Windows; unter Linux ist SSH standardmäßig verfügbar). Wenn du Putty nutzt, gib dort die IP-Adresse oder den Hostnamen deines Synology-Geräts ein, wähle SSH und klicke auf „Open“. Es erscheint eine Sicherheitswarnung, die du mit „Yes“ bestätigen kannst. Anschließend wirst du nach dem Benutzernamen gefragt („certadmin“ in meinem Fall). Unter macOS oder Linux öffnest du ein Terminal und gibst Folgendes ein:

ssh certadmin@DEINHOSTODERIPADRESSE

Wenn du die Sicherheitswarnung bestätigst, wirst du nach deinem Passwort gefragt. Gib das Passwort ein, das du oben für den Synology-Benutzer festgelegt hast (bei der Eingabe erscheint möglicherweise kein Text) und drücke Enter. Lass dich nicht von der SSH-Sitzung abschrecken – die Kommandozeile ist dein Freund!

Die folgenden Befehle (kopiere sie nacheinander, wenn du möchtest) laden das Skript herunter, entpacken die ZIP-Datei, verschieben die Dateien in einen anderen Ordner, übertragen den Besitz der Dateien an den neuen Benutzer und wechseln in das richtige Verzeichnis. Jeder dieser Befehle sollte in einer einzelnen Zeile ausgeführt werden. Die meisten Befehle stammen aus https://www.driscocity.com/synology-dsm-6-2-lets-encrypt-dns-challenge-route53/.

wget -O /tmp/acme.sh.zip https://github.com/acmesh-official/acme.sh/archive/master.zip
(==> da ist kein Zeilenumbruch, die Zeile wurde nur zu lang)

sudo 7z x -o/usr/local/share /tmp/acme.sh.zip

sudo mv /usr/local/share/acme.sh-master/ /usr/local/share/acme.sh

sudo chown -R certadmin /usr/local/share/acme.sh/

cd /usr/local/share/acme.sh

Nun haben wir die notwendigen Dateien. Jetzt müssen wir ein paar Variablen anlegen, damit das Skript funktioniert. Ersetze die Platzhalter unbedingt durch deine eigenen Informationen!

export IPv64_Token="DEIN_GODADDY_KEY"
export SYNO_Username="certadmin"
export SYNO_Password="DEIN_CERTADMIN_PASSWORT"
export SYNO_Certificate="Let's Encrypt"
export SYNO_Create=1

Wenn du nicht IPv64 als Domain-Registrar/DynDNS-Provider verwendest, kannst du unter
https://github.com/acmesh-official/acme.sh/wiki/dnsapi nach den entsprechenden export-Befehlen für andere Registrare schauen.

Verwende zum Erstellen des ersten Zertifikats folgenden Befehl. Achte darauf, deinen Domainnamen zu ersetzen!

./acme.sh --server letsencrypt --issue -d "*.DEINEDOMAIN.NAME" --dns dns_ipv64 --home $PWD
(==> auch hier: kein Zeilenumbruch!)

Wenn du einen anderen Registrar verwendest, musst du in der oben genannten Github-Dokumentation nachlesen, welchen Wert du für --dns benötigst.

Der Vorgang dauert ca. eine Minute. Keine Sorge: Auf dem Bildschirm siehst du Ausgaben, die den Fortschritt zeigen. Dieser Prozess erstellt und lädt das Zertifikat zwar auf dein Synology-Gerät, sagt diesem aber noch nicht, dass es verwendet werden soll. Das erledigt folgender Befehl:

./acme.sh -d "*.DEINEDOMAIN.NAME" --deploy --deploy-hook synology_dsm --home $PWD
(==> auch hier: kein Zeilenumbruch!)

Du solltest einige Meldungen sehen, die anzeigen, dass sich das Skript erfolgreich bei deinem Synology-Gerät anmelden konnte, die Zertifikate abruft, sie anwendet und den Webserver neu startet.

Das automatische zuweisen der Zertifikate und der Neustart des HTTP-Servers hat bei mir nicht geklappt, ich musste die Zertifikate manuell im DSM zuordnen. Dazu klickst du in der Systemsteuerung auf „Sicherheit“ und dann „Zertifikat“. Dann klickst du auf die Schaltfläche Einstellungen und ordnest dein neues Zertifikat für alle Dienste zu. Beim klicken auf ok werden die Dienste neu gestartet und das neue Zertifikat ist aktiv.

Wenn du dich jetzt per HTTPS bei deinem Synology anmeldest, solltest du ein gültiges Zertifikat sehen!

Wenn du ein gültiges und funktionierendes SSL-Zertifikat hast, stelle sicher, dass deine Browser es verwenden! Melde dich bei deinem Synology-Gerät an, gehe in die Systemsteuerung und rufe „Anmeldeportal“ auf. Setze ein Häkchen bei „HTTP-Verbindungen automatisch zu HTTPS umleiten“ und klicke auf „Speichern“. Sobald alles nach Wunsch funktioniert, gehe wieder zur Systemsteuerung und deaktiviere unter „Terminal & SNMP“ den SSH-Zugriff. Denk dran: Das Deaktivieren unnötiger Dienste ist ein guter Sicherheitsgrundsatz!

Und was kommt jetzt?

Das Zertifikat ist installiert und funktioniert. Wenn du allerdings prüfst, wirst du feststellen, dass es nur 90 Tage gültig ist. Du kannst es ganz einfach automatisch verlängern, indem du in deinem Synology-Gerät in die Systemsteuerung gehst, den „Aufgabenplaner“ öffnest, auf „Erstellen“ und „Geplante Aufgabe“ klickst und „Benutzerdefiniertes Skript“ auswählst. Gib der Aufgabe einen aussagekräftigen Namen und achte darauf, dass als Benutzer „certadmin“ ausgewählt ist. Plane die Aufgabe so, dass sie täglich ausgeführt wird, und trage im Reiter „Aufgabeneinstellungen“ das benutzerdefinierte Skript ein. In meinem Fall sieht das so aus:

/usr/local/share/acme.sh/acme.sh --renew -d "*.DEINEDOMAIN.NAME" --home /usr/local/share/acme.sh --server letsencrypt
(==> auch hier: kein Zeilenumbruch!)

Das war’s!

Nur ein paar relativ einfache Schritte, und du hast ein gültiges SSL-Zertifikat auf deinem Synology-Gerät, das sich automatisch verlängert, bevor es abläuft.

Quellenangabe

Anleitung gefunden auf:
https://dr-b.io/post/Synology-DSM-7-with-Lets-Encrypt-and-DNS-Challenge

Angepasst für IPv64 und ein wenig bereinigt.