Fail2ban für WordPress einrichten

Beim Betrieb eines Servers wird der Nutzer schnell feststellen, dass er nicht der einzige ist, der gerne Zugriff auf den Ser­ver hätte. Um zu häu­fige Log­in­ver­su­che abzu­blo­cken, gibt es Fail2ban. Die­ses Pro­gramm­pa­ket durch­sucht die ent­spre­chen­den Logs und blockiert bös­wil­lige Ver­su­che, in das Sys­tem ein­zu­bre­chen. Damit gehört Fail2ban zu den Intru­sion Preven­tion-Sys­te­men. Damit kann es auch zur Auswertung von Login-Versuchen auf die eigenen WordPress-Installationen genutzt werden. Wer in die Logs schaut, wird dort ähnliche Zeilen finden:

18.217.216.181 – – [23/Nov/2021:19:32:40 +0100] „POST /wp-login.php HTTP/1.1“ 200 8408 „https://seeseekey.net/wp-login.php“ „Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:94.0) Gecko/20100101 Firefox/94.0“

Um WordPress mit Fail2ban zu verheiraten muss ein einsprechender Jail und ein Filter angelegt werden. Was mich im Vorfeld in Bezug auf WordPress irritierte war der Statuscode 200, wenn ein Login in WordPress fehlschlägt. Hintergrund ist hier das WordPress bei einem erfolgreichen Login stattdessen den Statuscode 302 (Found) nutzt. Damit kann im ersten Schritt der Jail für Fail2ban erstellt werden:

nano /etc/fail2ban/jail.d/wordpress.conf

Diese Datei wird nun wie folgt befüllt:

[wordpress]
enabled = true
port = http,https
filter = wordpress
logpath = /var/log/nginx/access.log
maxretry = 3

Anschließend muss der genutzte Filter ebenfalls angelegt werden:

nano /etc/fail2ban/filter.d/wordpress.conf

Der entsprechende Filter sieht wie folgt aus:

# Filter for WordPress login

[INCLUDES]

before = common.conf
 
[Definition]

failregex = <HOST>.*POST.*(wp-login\.php|xmlrpc\.php).* 200

datepattern = %%d/%%b/%%Y:%%H:%%M:%%S %%z

Nach einem Neustart von Fail2ban mittels:

service fail2ban restart

ist der neue Jail aktiv. Über das Log kann die Arbeit desselben betrachtet werden:

tail -f /var/log/fail2ban.log

Damit sind die WordPress-Installationen gegen den Versuch unbefugter Logins besser abgesichert. Nach drei Fehlversuchen, wird die entsprechende IP-Adresse gesperrt, sodass weitere Verbindungsversuche von dieser IP-Adresse vom Server nicht mehr beantwortet werden.

Probleme mit dem Upload von SVG-Dateien unter WordPress

Medien können über die Medienverwaltung unter WordPress hochgeladen werden. Dabei findet eine Überprüfung statt, ob ein bestimmter Dateityp erlaubt ist. Schlägt diese Überprüfung fehl, so wird dies mit einer entsprechenden Fehlermeldung quittiert.

Der Upload ist fehlgeschlagen

Die entsprechende Meldung:

Dieser Dateityp ist aus Sicherheitsgründen leider nicht erlaubt.

bzw. das Verhalten, welches zu dieser Meldung führt, kann dabei über einen Parameter in der Datei wp-config.php deaktiviert werden:

define( 'ALLOW_UNFILTERED_UPLOADS', true );

In der Theorie werden hiermit alle Uploads in WordPress zugelassen. Dies sollte natürlich nur getan werden, wenn dies explizit gewünscht ist. Daneben existieren Plugins, um nur bestimmte Dateien zum Upload zuzulassen.

In meinem Fall konnte ich eine spezielle SVG-Datei, trotz aktivierter ALLOW_UNFILTERED_UPLOADS-Option, allerdings immer noch nicht hochladen. Das Problem ist hier, das bei SVG-Dateien Sicherheitsbedenken bestehen, da es sich um XML-Dateien handelt; genaueres kann im entsprechenden Ticket nachgelesen werden.

In meinem Fall half in es der SVG-Datei folgenden Header:

<?xml version="1.0" encoding="utf-8"?>

an den Anfang der Datei zu setzen; anschließend konnte die entsprechende SVG-Datei hochgeladen und verarbeitet werden.

Powered by WordPress Footer entfernen

Wer das WordPress-Standardtheme Twenty Twenty-One nutzt, wird im Footer sicherlich schon die Zeile Powered by WordPress bemerkt haben. Wer diese Zeile im Footer störend findet, kann sie auf einfache Weise mit den WordPress-Bordmitteln beseitigen.

Der Footer im Theme Twenty Twenty-One

Dafür wird ein kleiner CSS-Schnipsel benötigt:

.site-info { display: none; }

Im WordPress-Backend findet sich im Menü unter Design -> Customizer die Möglichkeit einige Einstellungen des Themes vorzunehmen. Hier findet sich unter anderem der Punkt Zusätzliches CSS. Dort wird der CSS-Schnipsel eingefügt und das ganze abgespeichert. Damit ist die Powered by WordPress-Zeile im Footer Geschichte.

Erlaubte Dateitypen für den Upload unter WordPress

Wer Medien in einer WordPress-Installation hochladen möchte, kann dies im Normalfall ohne Probleme bewerkstelligen. Werden allerdings Dateitypen abseits der gewöhnlichen Dateitypen versucht hochzuladen, so erscheint eine entsprechende Meldung:

Dieser Dateityp ist aus Sicherheitsgründen leider nicht erlaubt

Hintergrund ist, das WordPress nur einige definierte Dateitypen im Upload zulässt. Plugins können diese Liste erweitern, daneben gibt es entsprechende Plugins, mit welchen die erlaubten Dateitypen verwaltet werden können.

File Upload Types by WPForms
Preis: Kostenlos

Eine andere Möglichkeit besteht darin die Konfiguration, welche in der Datei wp-config.php zu finden ist, um eine Zeile zu erweitern:

define( 'ALLOW_UNFILTERED_UPLOADS', true );

Damit wird der entsprechende Upload-Filter abgeschaltet und alle Dateitypen können hochgeladen werden. Allerdings sollte diese Lösung mit Bedacht gewählt werden, da nun jegliche Dateitypen hochgeladen werden können.

Beschriftung der Galerie unter WordPress ausblenden

Unter WordPress ist es möglich aus mehreren Bildern eine Galerie zu erstellen. Zusätzlich werden die hinterlegten Beschriftungen der Bilder ebenfalls angezeigt. Dies kann unter Umständen das Erscheinungsbild der Galerie stören.

Werden die Beschriftungen angezeigt, so leidet unter Umständen das Erscheinungsbild der Galerie

Um einem solchen Fall vorzubeugen, kann die Beschriftung in der Galerie ausgeblendet werden. Dafür muss die Datei style.css, welche zum aktiven Theme gehört, angepasst werden und folgender Block hinzugefügt werden:

.gallery-caption {
	display:none;
}

Nach der Anpassung werden Beschriftungen in der Galerie nicht mehr angezeigt.