WireGuard via AVM Fritz!Box

WireGuard via AVM Fritz!Box

AVM

Internet in Deutschland ohne AVM Fritz!Box gibt es eigentlich nicht. Unserer Meinung nach völlig zu Recht handelt es sich bei den Routern der Berliner AVM um sehr beliebte Router im privaten Umfeld. Von daher ist es alles andere als verwunderlich, dass man diese Router oftmals im geschäftlichen Umfeld ebenfalls antrifft.

Viele Administratoren betrachten allerdings die Fähigkeiten einer Fritz!Box bei IpSec VPN als eher eingeschränkt. Mit WireGuard hat nun allerdings eine neue, weitere VPN Technik zuletzt in einigen Fritz!Box Modellen Einzug gehalten. Und die funktioniert selbst bei Site-to-Site wunderbar.

 

Eine Verbindung per VPN ist dank WireGuard zwischen einer Fritz!Box und einer OPNsense Firewall nun kein Problem mehr. Eingerichtet wird dies auf Seiten von der Fritz!Box genauso wie in OPNsense so wie in der jeweiligen Dokumentation beschrieben (Links Stand Oktober 2023):

https://avm.de/service/vpn/wireguard-vpn-zur-fritzbox-am-computer-einrichten/dok2/3687_WireGuard-VPN-zwischen-FRITZ-Box-und-anderem-Router-einrichten/

https://docs.opnsense.org/manual/how-tos/wireguard-s2s.html

Der Vollständigkeit wegen noch der Link zu WireGuard allgemein - falls unbekannt:

https://www.wireguard.com/

Fritz!Box

Allerdings gibt es eine Besonderheit auf Seiten der Fritz!Box. Wie in deren Dokumentation zu lesen ist, benötigt die Fritz!Box keine IP-Adresse in einem Transfernetz. Anstatt eines Transfernetzes trägt man an dieser Stelle die interne IP der Fritz!Box mit der zugehörigen Maske ein. Für OPNsense bedeutet dies im Umkehrschluss, dass die Tunnel-Adresse bei der Instanz leer gelassen werden kann. Diese ist, aufgrund des fehlenden Transportnetzes, unnötig. Der Rest wird so eingerichtet, wie dies bei WireGuard üblicherweise gemacht wird.

Zusammengefasst kann man sagen, dass WireGuard und Fritz!Box zusammen wunderbar funktionieren. Eine stabile Verbindung zu einer OPNsense Firewall ist somit in wenigen Minuten eingerichtet. Auch in dieser Kombination spielt WireGuard seine Vorteile wie einfache, schnelle aber sichere Konfiguration selbst bei wechselnden öffentlichen IP-Adressen vollends aus.

 

Quellen zu Bildern von Dritten

Sinnvolles „allow any“

Sinnvolles „allow any“

Sofern ich einen eigenen E-Mail-Server betreibe, habe ich in meiner Firewall eine Regel stehen, die besagt, dass jeder da draußen an meinen E-Mail-Server eine Mail senden darf. Aber nur E-Mail. Das ist ja schließlich kein Webserver und auch kein Datenbankserver. So sind Firewallregeln nun mal, dies ist so allgemein üblich.

Aber warum eigentlich? Wirklich „jeder“ darf an mich E-Mails senden? Und das „jeder“ kann an vielen Stellen hinterfragt werden: Man betreibt einen Webshop ausschließlich für den deutschsprachigen oder vielleicht sogar den europäischen Markt. Warum sollte jemand am anderen Ende der Welt diesen Shop besuchen wollen? Und selbst wenn man für die zu betrachtende Webanwendung keine solchen Einschränkungen treffen kann, dann sollte man trotzdem „jeder“ kritisch hinterfragen.

Zum einen sollte man den Bereich der „Bogon“ Adressen ausschließen. Das sind Adressen, die im Internet an niemanden vergeben wurden und welche für Firewalls häufig um die Bereiche erweitert wurden, welche im Internet erst gar nicht vorkommen können. Neben den privaten A/B/C-Netzen gibt es da noch einiges mehr.

Ebenso gibt es DROP bzw. EDROP-Listen. Das sind IP-Adressen von gekaperten Netzbereichen, professionellen Spammern, Cybercrime-Organisationen usw. EDROP erweitert diese Liste um die noch freien IP-Bereiche. Also ein zusätzlicher Schutz – freie IPs könnten bereits von Dritten gekapert worden sein.

Das ist der Mindestschutz, den eine Firewall bei eingehenden Verbindungen bieten sollte. Was ist, falls man jetzt, wie oben bei einem Webservice gezeigt, den Besucherkreis noch weiter einschränken kann, zum Beispiel auf Deutschland? Selbst das kann eine moderne Firewall filtern: IP-Adress-Bereiche sind an Länder vergeben worden. Dank GeoIP kann eine Firewall nach diesen Länderlisten filtern und entsprechend den Zugang gewähren oder eben verweigern.

Das waren jetzt mal ein paar grundlegende Möglichkeiten, die man hat um „jeder“ zu optimieren. Hier ist noch viel mehr möglich als dieser kurze Artikel im Detail zeigen könnte.

Zusammengefasst: Bei eingehenden Verbindungen von extern sollte man wirklich einen kurzen Moment innehalten und überlegen, ob das wirklich „jeder“ heißen muss. Selbst falls keine Beschränkung via GeoIP möglich sein sollte, so kann man das direkt offensichtliche mit Bogon sowie DROP und EDROP sperren. Für mehr Schutz ihrer Webservices.

Nehmen Sie einfach unverbindlich Kontakt zu uns auf bei Fragen wie man dies mit einer OPNsense Firewall in wenigen Minuten wirkungsvoll umsetzen kann. Und was davon kann Ihre Firewall?

Quellen zu Bildern von Dritten

Wider der Zwangstrennung

Wider der Zwangstrennung

Die Internetleitung steht, das Wetter sitzt - und dann ist alles kurzfristig vorbei: Alle VPNs weg, alle Datenübertragungen brechen ab. Des Rätsels Lösung: Die Zwangstrennung.

Bei DSL-Leitungen hat man sich daran gewöhnt: Zwangstrennung spätestens nach 24 Stunden. Früher hat man vor dem Netzteil des DSL-Modems eine Zeitschaltuhr gesteckt, welche das Modem irgendwann mitten in der Nacht per Zwangsreset zur Neueinwahl gezwungen hat. Heute ist das in der Regel viel eleganter gelöst: Jeder moderne Internetrouter bietet die Möglichkeit der automatischen Neueinwahl zu einer bestimmten Uhrzeit. In der Regel passiert dies mitten in der Nacht. Die Art und Weise mag sich gewandelt haben - der Wunsch, die Zwangstrennung der Neueinwahl auf einen Zeitpunkt zu legen, wo dieser nicht störend ist, blieb der Gleiche.

Und bei OPNsense? Die Einwahl per Glasfaser bzw. FTTH erfolgt wie bei DSL in der Regel über PPPoE. Bei den Einstellungen zu PPPoE sucht man eine steuerbare Zwangstrennung allerdings vergebens. Nicht, weil OPNsense das nicht könnte - ganz im Gegenteil: OPNsense kann deutlich mehr als nur die Zwangstrennung. OPNsense ist es letztendlich egal, warum man eine Netzwerkkarte neu initialisieren möchte. In unserem Fall ist es aber das, was wir haben wollte: Eine erneute Initialisierung der PPPoE Netzwerkkarte verbindet eben diese neu - und wählt somit neu ein.

Diese Einstellung findet sich unter System/Settings/Cron: Einfach einen neuen Cronjob anlegen vom Typ "Periodic interface reset" und als Parameter gibt man den Device-Namen an wie zum Beispiel "wan" oder "opt1". Auf die Uhrzeit gelegt, wo man dies haben möchte und das war es bereits. Einfach, oder?

Periodic Interface Reset

Noch mehr Infos zu geplanten Aufgaben wie cron oder dem "Periodic Interface Reset" gewünscht? Aber gerne doch, die gibt es im Handbuch: https://docs.opnsense.org/manual/settingsmenu.html#cron.

Quellen zu Bildern von Dritten

BGP für IpSec VPNs

BGP für IpSec VPNs

Zu Zeiten von Cloud und Co. stellen sich immer mehr Unternehmen die Frage, was passiert, wenn die Firewall einmal ausfallen sollte. Kein Problem, die Lösung ist mittels OPNsene einfach: Ein HA-Cluster muss her. Und der ist bereits bei OPNsense enthalten. Das ist toll, die Firewall ist verfügbar. Oder auch nicht sollte die Internetleitung ausfallen. Aber auch hier: OPNsense kann Multi-WAN, kann also mehrere Internetleitungen verwalten. Nur was ist, wenn man auf dieser Grundlage zu einem entfernten Ziel nicht nur einen, sondern zwei VPN-Tunnel öffnen möchte? Also wenn Tunnel 1 über Leitung 1 ausfällt, dann wechsle automatisch auf den Backup-Tunnel 2 auf Leitung 2.

Dieses Szenario kann man inzwischen regelmäßig finden. Oftmals lautet die Lösung für dieses Problem, dass sich im Falle eines Ausfalls ein Admin auf die Firewall verbindet und den Tunnel auf der ausgefallenen Leitung 1 manuell deaktiviert und den bereits konfigurierten, aber inaktiven, Backup-Tunnel auf Leitung 2 aktiviert. Und sobald die Leitung 1 wieder da ist das gleiche Spiel nochmals. Nur andersherum.

Doch wozu? OPNsense bringt für solche Szenarien alles mit, um automatisch den VPN-Tunnel schwenken zu lassen. Alles, was man tun muss, ist unter System/Firmware/Plugins das Plugin os-frr installieren.

Zwischen Firewall und VPN erscheint nun im Menü der Punkt Routing. Und hier ist alles enthalten, was man für die Lösung dieses Problems benötigt: Routing Protokolle wie zum Beispiel RIP, OSPF und BGP.

Routing Protokolle helfen auf Routern alle verfügbaren Wege zum Ziel zu finden und den Besten als aktiven Weg zu verwenden. Und im Falle eines Ausfalls wird die Route ins Ziel automatisch auf die jetzt beste Alternative geschwenkt.

Oder konkret für unser Beispiel zum Textanfang: Mittels BGP wählt eine OPNsense Firewall automatisch immer den Besten IpSec Tunnel aus. Und im Falle eins Aufalls schwenkt es automatisch auf den Backup-Tunnel. Und zurück, sobald die Leitung wieder verfügbar ist.

Routing Plugin

Und dies war nur ein einfaches Beispiel, welches zeigen soll, wie man so etwas mit OPNsense lösen kann. Die Verfügbarkeit von Routing Protokollen eröffnen beinahe ungeahnte Möglichkeiten mit der die Firewall automatisch immer den Besten Weg zum Ziel findet. Auch dann, wenn gerade mal kein Admin erreichbar ist, welcher von Hand auf die Backupleitung schwenkt.

Quellen zu Bildern von Dritten

AirPrint, IPP und Co.

AirPrint, IPP und Co.

Sie haben ihr Netzwerk aufgeteilt? Der Drucker steht in einem anderen Netzwerk wie ihr gerade verwendetes Gerät? Und dennoch soll der Drucker via IPP, AirPrint, BonJour, ZeroConfig und Co. gefunden werden? Ihr SmartPhone oder Ihr PC findet den Drucker nicht mehr automatisch? Dieses Problem ist einfach zu lösen: Ihr Netzwerk benötigt einen Multicast Repeater!

OPNsense ist bereits bestens gerüstet für solche Aufgaben. Unter den verfügbaren Plugins finden sich sogar mehrere Tools, welche hier helfen können. Am einfachsten für diese Aufgabe ist allerdings der mDNS Repeater einzurichten.

mDNS-Anfragen funktionieren nur innerhalb des aktuell verwendeten Subnetzes. Unerkannt bleiben somit Geräte, welche sich außerhalb ihres Subnetzes befinden. Um dies zu lösen wiederholt ein mDNS Repeater alle Anfragen, welche auf einer Schnittstelle eingehen, auf allen anderen Schnittstellen erneut. Und schon ist die Grenze des lokalen Subnetzes übergangen.

Der mDNS Repeater kennt im Wesentlichen nur eine einzige Einstellung: Die Netzwerkkarten bzw. VLANs welche miteinander verbunden werden sollen. Für diese Schnittstellen muss nun lediglich noch die passende Regel in der Firewall eingetragen werden und schon werden wieder sämtliche Drucker, wie zum Beispiel im angefügten Screenshot gezeigt, gefunden.

 

SmartPhone Printer

Quellen zu Bildern von Dritten

Defekte pkg Datenbank

Defekte pkg Datenbank

Mal eben rasch an der Konsole oder per WebUI ein OPNsense Update ausgeführt, ein pkg udpdate oder irgendwas in der Art und oha, ein Fehler der folgenden Art erscheint:

Currently running OPNsense 23.1.11 at Wed Jul 12 16:12:07 CEST 2023 Fetching changelog information, please wait... done Updating OPNsense repository catalogue... pkg: sqlite error while executing SELECT count(name) FROM sqlite_master WHERE type='table' AND name='repodata'; in file pkgdb.c:2358: database is locked pkg: Repository OPNsense contains no repodata table, need to re-create database Fetching meta.conf: . done Fetching packagesite.pkg: .......... done pkg: sqlite error while executing CREATE TABLE packages (id INTEGER PRIMARY KEY,origin TEXT,name TEXT NOT NULL,version TEXT NOT NULL,comment TEXT NOT NULL,desc TEXT NOT NULL,osversion TEXT,arch TEXT NOT NULL,maintainer TEXT NOT NULL,www TEXT,prefix TEXT NOT NULL,pkgsize INTEGER NOT NULL,flatsize INTEGER NOT NULL,licenselogic INTEGER NOT NULL,cksum TEXT NOT NULL,path TEXT NOT NULL, pkg_format_version INTEGER,manifestdigest TEXT NULL,olddigest TEXT NULL,dep_formula TEXT NULL,vital INTEGER NOT NULL DEFAULT 0);CREATE TABLE deps (origin TEXT,name TEXT, version TEXT,package_id INTEGER REFERENCES packages(id) ON DELETE CASCADE ON UPDATE
*snip*

Die Lösung ist hierfür oftmals sehr einfach: Die Datenbank welche von pkg verwendet wird ist schlichtweg defekt. Eine Reparatur wird über ein update mit "force" durchgeführt. Dafür gibt man an der Konsole lediglich folgenden Befehl ein: pkg update -f

Das war es bereits, die Datenbank sollte wieder wie gewohnt funktionieren.

Quellen zu Bildern von Dritten

Vergrößerung eines UFS Dateisystems

Vergrößerung eines UFS Dateisystems

Die Festplatte läuft voll. Wie gut, dass sie noch nicht komplett verwendet wird oder, da virtuell, sie sehr einfach vergrößert werden kann. Nur wie vergrößert man ein UFS Dateisystem? Vor allem dann, wenn wie bei OPNsense oftmals der Fall hinter der UFS-Partition die swap Partition liegt?

OPNsense oder FreeBSD?

Da OPNsense auf FreeBSD basiert, funktioniert diese Anleitung logischerweise für beide Systeme.

Sämtliche Schritte können online, also ohne Betriebsunterbrechung, durchgeführt werden. Diese Anleitung zeigt, wie man eine mit Festplatte mit GPT (https://de.wikipedia.org/wiki/GUID_Partition_Table) und UFS (https://de.wikipedia.org/wiki/Unix_File_System) vergrößert. Ebenso wird die swap Partition berücksichtigt, welche oftmals an eine andere Stelle umziehen muss. Selbstverständlich kann diese auf diesem Weg ihre Größe ändern oder, falls noch gar nicht vorhanden, erstmalig angelegt werden.

Wie immer bei irgendwelchen Änderungen von kritischen Daten: Prüfe im ersten Schritt die Aktualität des Backups ab.

Ablauf

Im ersten Schritt geht es darum die "richtige" Platte zu ermitteln. Unter FreeBSD, und somit auch unter OPNsense, ist dies meist ada0.

Um dies zu können muss man sich zuerst auf die Konsole des Systems verbinden - hierbei ist egal, ob dies über die Konsole mit einem Bildschirm, via ssh oder über einen seriellen Port geschieht.

Durch den Befehl geom disk list werden die vorhandenen Datenträger aufgelistet. Da für unser Vorhaben nur Festplatten interessant sind kann man zusätzlich noch die Ausgabe filtern lassen: geom disk list | grep "Name: ad"

FreeBSD geom disk list
FreeBSD gpart show ada0

Im obigen Beispiel ist die gesuchte Platte die ada0. Im nächsten Schritt geht es darum, die UFS Partiton zu ermitteln, zu prüfen ob es eine swap Partition gibt und ob der hinzugefügte Platz bereits erkannt wurde.

Im obigen Beispiel kann man 4 Partitionen erkennen: Den efi Bootloader, der boot Bereich von FreeBSD, die zu vergrößernde UFS Partition sowie eine swap Partition. Ebenfalls erkennbar: die 110 GB freien Festplattenplatz welcher dem UFS zugewiesen werden soll.

Falls die Platte größer sein sollte, aber noch kein oder nicht ausreichend freier Platz angezeigt wird: Boote das System neu. Danach sollte der korrekte Platz angezeigt werden.

Corrupt

Beim Vergrößern von Platten, vor allem in virtuellen Umgebungen, oder beim Klonen des Systems von anderen Systemen, kann es vorkommen, dass die Partitionstabelle als CORRUPT betrachtet wird. Geprüft werden kann dies via gpart status ada0. Im Screenshot sind alle Partitionen als OK markiert.

Sollte die Partitionstabelle als CORRUPT markiert sein, sollte dies im ersten Schritt repariert werden. Hierfür ist einfach folgender Befehl auszuführen: geom recover ada0

FreeBSD gpart status

swap Partition - 1. Teil

Sofern es, wie oben gezeigt, eine swap Partiton nach der UFS Partition geben muss diese im ersten Schritt gelöscht werden. Um die Partition löschen zu können, muss allerdings davor noch die swap Partition geleert werden. Dafür wird ihr Inhalt zurück in den physikalischen RAM kopiert. Sollte nicht genügend RAM frei sein sind ggf. Dienste anzuhalten oder der Speicher entsprechend anderweitig zu bereinigen. Die vermutlich einfachste Variante hierfür ist, das System einfach neu zu starten.

FreeBSD swapinfo und swapoff

Mit swapinfo kann man sich den aktuellen Füllstand der swap Partition anzeigen lassen. Um sie zu leeren und auszuhängen, ist der Befehl swapoff -a zu verwenden. Anstatt -a für "alle" kann gezielt die Partition angegeben werden.

Da die swap Partition nicht mehr verwendet wird ist die entsprechende Zeile in der /etc/fstab zu löschen. Die richtige Zeile ist die mit FStype swap. Im Screenshot ist als Device /dev/ada0p4 angegeben, ebenfalls eine häufige Variante ist /dev/gpt/swap.

FreeBSD fstab
FreeBSD gpart delete

Da die swap Partiton nun frei ist kann diese gelöscht werden. Wie oben bereits ermittelt ist es auf diesem System die Partition mit der Nummer 4: gpart delete -i 4

Berechnungen

Im nächsten Schritt müssen einige Werte ermittelt und berechnet werden. Die notwendigen Befehle sind: diskinfo -v ada0, geom disk list ada0 sowie gpart show ada0. Der Screenshot vom gpart Aufruf ist der gleiche wie bereits oben gezeigt. Die jetzt fehlende swap Partition tut bei der Informationssuche nichts zur Sache.

FreeBSD diskinfo
FreeBSD gpart show ada0
FreeBSD geom disk list

Im Folgenden werden Werte berechnet bzw. ermittelt. Diese Werte sind im folgenden Kasten, entsprechend der hier im Text verwendeten Reihenfolge, dargestellt.

Das Beispiel erzeugt eine swap Partition. Falls dies nicht gewünscht ist, kann dieser Schritt entsprechend übersprungen und nur die UFS Partition auf das Maximum vergrößert werden.

  • Im ersten Schritt wird die stripsize fürs alignment ermittelt. Dies kann 0 sein und ist somit uninteressant. Falls der Wert ungleich 0 ist, muss dieser beim Anlegen von Partitionen in der Form -a <stripsize> angegeben werden. Weitere Infos zur Festplattenausrichtung finden sich zum Beispiel hier: https://en.wikipedia.org/wiki/Partition_alignment
  • Nun wird die sectorsize benötigt. Diese findet sich sowohl bei diskinfo als auch beim geom Befehl.
  • Die Anzahl der insgesamt vorhandenen Sektoren befindet sich in der ersten Zeile von der Ausgabe von gpart show ada0. Die zweite Spalte beinhaltet den gesuchten Wert.
  • In der gleichen Tabelle finden sich in der -free- Zeile die derzeit freien Sektoren.
  • Die Zahl der freien Bytes bzw. der freien Gigabytes wird nicht zwangsläufig benötigt, sondern dient lediglich der eigenen Information. Oder als Plausibilitätskontrolle, ob die errechneten Werte überhaupt stimmen. Die freien Bytes berechnen sich hierbei aus der Größe der Sektoren multipliziert mit der Anzahl der freien Sektoren: 231682743 Sektoren * 512 Bytes je Sektor = 118621564416 Bytes. Dieser Wert geteilt durch 1024 hoch 3 ergibt die Anzahl der freien Gigabytes: 110,4 GigaByte. Wen man berechnen will wie groß die Festplatte ist: Gleiches Spiel, allerdings ist die Anzahl der insgesamt vorhanden Sektoren nehmen. Logisch, oder?
  • Ich hätte gerne eine swap Parition mit 8 GigaByte Größe. Diesen Wert nehme ich mal 1024 hoch 3 um die Größe in Byte zu erhalten. Das teile ich nun durch die Sektorgröße und erhalte die Anzahl der Sektoren in der künftigen swap Partiton: 8 * 1024³ / 512 = 16777216
  • Meine swap Partition soll an das Ende der Platte. Der Start wird also wie folgt berechnet: Insgesamt verfügbare Sektoren auf der Platte minus Größe der swap Partition in Sektoren: 500118119 - 16777216 = 483340903 Das geht allerdings nur, wenn die Anzahl der freien GigaBytes auf der Platte auch tatsächlich größer ist als die künftige swap Partition.
  • Wer will, kann jetzt noch berechnen, um wie viel die UFS Partition vergrößert wird: Die Anzahl der freien Sektoren abzüglich der zu verwendeten Sektoren für die swap Partiton mal der Sektorgröße. Geteilt durch 1024³ und man erhält die Vergrößerung für die UFS Partition.

stripsize=0
sectorsize=512
sectors=500118119
freesectors=231682743

freebytes=118621564416
freegigabytes=110 (gerundet)

swapsize=8 (in GigaByte)
swapsectors=16777216
swapstart=483340903

ufsextend=103 (in GigaBytes, gerundet)

Prüfung

Um Fehler zur vermeiden lohnt es sich immer die Anzahl der verwendeten Sektoren zu kontrollieren. Wenn man sich mit diesem Wert gedanklich schwertut: Umrechnen in zum Beispiel GigaBytes und immer ein wachsames Auge darauf haben, ob die ermittelten Werte in Summe nie größer als die Festplatte werden.

FreeBSD gpart add swap
FreeBSD new swap activate
FreeBSD new swap activate

swap Partition - 2. Teil

Wenn man eine swap Partiton haben möchte, wird diese wie folgt angelegt: Es wird eine Partition vom Typ freebsd-swap angelegt und beginnt an der vorher berechneten Stelle. Eine Angabe der Größe ist nicht notwendig, da diese durch das "Ende" der Platte vorgegeben ist. Der dazugehörige Befehl lautet: gpart add -t freebsd-swap -b 483340903 ada0

Die vorher gelöschte oder auskommentierte Zeile in der /etc/fstab für die swap Partition muss wieder entsprechend aufgenommen werden.

Mit swapon -a und swapinfo wird die neue swap Partiton aktiviert sowie Infos über deren Verwendung angezeigt. Hat hier alles fehlerfrei geklappt, ist der swap ans Ende der Platte umgezogen, wurde in seiner Größe geändert oder erstmalig neu angelegt.

UFS Partition

Der letzte Teil ist nun rasch erledigt. Ein Blick in die aktuelle Festplattenpartitionierung zeigt den freien Platz, welcher nach der UFS Partition frei ist. Dieser geht entweder bis zum Ende der Festplatte oder bis zum Beginn der swap Partition welche in den vorherigen Schritten bereits an das Ende der Platte gelegt wurde.

Analog zur swap Partition muss keine neue Größe angegeben werden, da das Ende durch das Ende der Festplatte oder durch den Beginn der swap Partition vorgegeben ist. Das Gleiche gilt für den Beginn der ufs Partition. Diese existiert bereits und soll lediglich am Ende vergrößert werden.

Somit sind zwei Dinge zu tun: Vergrößerung der Partition und im Anschluss daran Vergrößerung des UFS Dateisystems auf die nun neue, größere Partition.

Im Screenshot ist, zur Kontrolle, ein vorheriger und anschließender Aufruf des df Befehls gezeigt, welcher die erfolgreiche Aktion bestätigt.

Die beiden Befehle lautet wie folgt: gpart resize -i 3 ada0 wobei die 3 die Nummer der ufs Partition ist. Das Dateisystem wird mit growfs -y / vergrößert.

FreeBSD grow ufs

Fazit

Ohne swap Partition ist die Aufgabe rasch erledigt. Mit swap ist etwas Rechenarbeit notwendig. Ob man, wie hier gezeigt, dabei zuerst die Größe und Position der swap Partition berechnet oder berechnet, wie groß die UFS Partition werden darf, damit der Rest dem swap zugewiesen werden kann, ist letztendlich zweitrangig. Dem Verständnis für Festplatten und Partitionen ist die gelegentliche Rechnerei auf jeden Fall zweckdienlich 😉

Quellen zu Bildern von Dritten

ClamAV erweitern

ClamAV erweitern

ClamAVClamAV (Clam AntiVirus, https://www.clamav.net/) ist ein frei verfügbares Virenschutzprogramm, welches zusätzlich einen Phishing-Filter besitzt und schon alleine deswegen auf Email-Servern sehr gerne zum Einsatz kommt.

Die Hauptvorteile sind der kostenfreie Bezug da open source, die plattformübergreifende Verfügbarkeit, die einfache Integration in bestehende Systeme, kurzfristige Updates der Ekennungsmuster nach Bekanntwerden von neuen Bedrohungen sowie der geringe Ressourcenbedarf.

Mehrwerte für ClamAV

Open source birgt allerdings noch einen weiteren, sehr großen Vorteil in sich der oftmals übersehen wird: Wenn der Quellcode der eigentlichen Programmlogik frei verfügbar ist, dann gilt dies logischerweise ebenso für den Aufbau der AntiViren-Definitionen, also der Erkennungsmuster.

Und was wäre schon open source, wenn nicht pfiffige Menschen die Idee gehabt hätten, hier selbst Hand anzulegen und zusätzliche Patterns für ClamAV bereitzustellen. Und diese Patterns lassen sich wunderbar in ClamAV und OPNsense integrieren. Ein paar der wichtigsten sind sogar bereits in OPNsense integriert. Unter Services/ClamAV/Settings beim Reiter General ganz nach unten finden sich folgende Einträge, die sich lohnen aktivieren:

ClamAV General Settings Additional Patterns

In der obigen Abbildung sind es die unteren 4 Punkte. Zur besseren Deutlichmachung des Nutzens habe ich bei diesen den erklärenden Informationstext eingeblendet.

Damit aber noch nicht genug. Bei den Reitern eines weiter auf Signatures gewechselt kann man sogar eigene Patterns hinterlegen. Hier wird es jetzt richtig spannend! Einfach die Suchmaschine der Wahl bemüht und es sollten sich rasch zusätzliche Patterns finden lassen. Ein paar davon will ich im nun folgenden vorstellen.

 

URLhaus von Abuse.ch

Beginnen will ich mit URLhaus von abuse.ch. Abuse.ch könnte man kennen, die stellen einiges an Listen her. Dort auf Database geklickt, landet man auf folgender Seite: https://urlhaus.abuse.ch/browse/. Zur besseren Erklärung davon habe ich hier einen Screenshot eingefügt:

URLhaus
URLhaus

Das ist also eine Datenbank welche behauptet etwas über 2,6 Millionen Malwalre URLs zu beinhalten (Stand Juli 2023). Mit dabei sind bekannte Vertreter wie Mozi, mirai und weitere. Bei der Anzahl von Einträgen ist das mal wirklich spannend.

Oben auf der Seite, im ersten Absatz oder der Navigation, findet sich der Verweis auf die API. Diese beginnt damit, dass man wählen muss in welchem Format man die Datenbank haben möchte. Hier wählt man natürlich ClamAV aus und kopiert nun den Link vom roten Button "Download ClamAV signature database": https://urlhaus.abuse.ch/downloads/urlhaus.ndb. Wer will kann da natürlich rein schauen, die Daten sind im Klartext lesbar. Auch wenn die Zeichenkolonen im ersten Augenblick vermutlich eher unverständlich sind.

Zurück zu OPNsense und dem noch offenen Reiter Signatures: Hier einfach auf das +-Zeichen für einen neuen Eintrag klicken, enable wählen, einen beliebigen Titel wie zum Beispiel URLhaus eingeben und zuletzt noch den Link aus der Zwischenablage einfügen.

ClamAV Signaturen erweitern

Und schon findet ClamAV, obwohl er vom Wesen her ein Virenscanner ist, jetzt noch zusätzliche 2,6 Millionen URLs mit Schadsoftware. Spätestens jetzt sollte man sich im Klaren darüber sein, was für ein Potenzial ClamAV besitzt, wenn man ihn zum Beispiel E-Mails nach Bedrohungen oder schlichtweg unerwünschten Inhalten durchsuchen lässt. Es ist einfach nur schade, wenn man diese Möglichkeiten ungenutzt lassen würde.

Zusammengefasst: ClamAV in OPNsense um Patterns zu erweitern: Ein Kinderspiel. Die vordefinierten: Einfach nur ein Haken setzen. Frei wählbare? Aktivieren, einen kurzen Namen eintragen und die URL kopieren. Ebenfalls ein Kinderspiel und rasch erledigt.

Verfügbare Patterns für ClamAV

Natürlich gibt es noch viele mehr außer den bisher erwähnten. Unten angefügt ist eine Liste mit einigen der bekannteren Definitionen für ClamAV. Einige dieser Listen sind frei verfügbar, bei einigen bekommt man gegen Bezahlung zusätzliche Leistungen.

Diese Liste ist alles andere als vollständig. Sollte irgendetwas fehlen oder eine der Listen nicht mehr funktionieren würde ich mich freuen, wenn ihr eine Mail schreibt oder einen entsprechenden Kommentar hinterlasst.

Malware Patrol

Malware Patrol

Neben vielen anderen nützlichen Helfern bietet Malware Patrol Listen für ClamAV an.

SecuriteInfo.com

SecuriteInfo.com

4 Millionen Einträge zur Erkennung von Malware, vor allem auch 0-Day-Malware.

Sanesecurity

Sanesecurity

Seit 2006 erstellt Sanesecurity Addon Patterns für ClamAV für die Emailfilterung: Malware in Makros oder gängigen Zip Formaten, gefährlicher JavaScript Code, Phising und einiges mehr.

Hier fehlt etwas?

Dann hinterlasse einen Kommentar oder schicke eine Mail.

URLhaus

URLhaus

URLhaus von Abuse.ch wurde oben bereits ausführlich erklärt. Es handelt sich um eine Liste mit malicious URLs.

Quellen zu Bildern von Dritten