WordPress und WooCommerce

WordPress und WooCommerce

Wer von euch nutzt WordPress? Oder hat sogar ein WooCommerce Webshop auf WordPress am Laufen? Unterschiedlichen Quellen nach laufen momentan etwas über 40 % aller Webseiten auf WordPress. Bei den Webshops sind die Zahlen etwas schwankender: Hier sind es wohl 24 - 39 % aller Webshops, welche mit WooCommerce auf WordPress betrieben werden. Die Zahl schwankt, je nachdem ob man die Anzahl aller Shops oder nur die aktiven, verkaufenden Shops zählt.

Egal, die Aussage ist ziemlich eindeutig: Bei Webseiten sind wir bei irgendwo zwischen einem Drittel und der Hälfte, bei Webshops dürften es mindestens ein Viertel sein, welche auf WordPress laufen. Wer also gerade eine neue Webseite erstellt oder seine vorhandene Seite auf eine neue Plattform migrieren will, wird, sofern er nicht bereits pro WordPress entschieden hat, zumindest darüber nachdenken auf WordPress zu setzen bzw. zu wechseln.

Bei der Menge sollte klar sein, dass das Admin-Panel ein Lieblingsziel von Angreifern ist. Dabei passieren die meisten Hacks nicht wegen irgendwelcher komplexer Zero-Days, sondern durch einfache Versäumnisse: schwache Passwörter, veraltete Plugins und eine Login-Seite, welche jeder Bot kennt.

✅ Natürlich sind wir alle pflichtbewusst und verwenden nur Plugins aus verlässlichen Quellen und spielen sämtliche Updates regelmäßig ein.

Das hilft aber nicht, bei schwachen Passwörtern oder, wenn die Admin-Zugänge auf Passwortlisten im Internet verfügbar sind.

✅ Schon einmal über MFA nachgedacht? Dass, was dein VPN, dein Bankkonto usw. absichert, kann auch WordPress sichern.

🎯 Ein Punkt wird aber häufig übersehen: Eine Login-Seite, welche jeder Bot kennt. Viele Angriffe auf WordPress laufen im ersten Schritt automatisch via Bot ab. Du hast Zugriff auf deinen Webserver? Dann ändere doch die Login-Seite auf eine andere URL. Dir fehlt der Zugriff oder das ist zu kompliziert? Es gibt WordPress-Plugins, welche die Login-Seite auf jede andere beliebige URL umziehen lassen.

💡 Ich selbst gehe oftmals noch einen Schritt weiter - egal ob per Reverse Proxy auf zum Beispiel einer OPNsense Firewall oder via dem Webserver selbst: Man kann den Zugriff beschränken, in dem man eine zusätzliche Authentifizierung vorschaltet. Selbst wenn ein Bot die Login-Seite finden würde, so scheitert er an dieser zusätzlich eingefügten Hürde.

👉 Für einen geübten Admin sind das keine 10 Minuten Einrichtungsaufwand, mit welcher ihr das Risiko um über 90 % reduzieren könnt. Und das war nur ein einfaches Beispiel - OPNsense kann noch viel mehr bieten als das hier gezeigte.

PS: WordPress war nur ein Beispiel. Das funktioniert sinngemäß bei vielen anderen Webplattformen genauso.

#WordPress #WooCommerce #CyberSecurty #WebSecurity #OPNsense

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

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

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