WordPress 2FA XMLRPC

WordPress Hardening – 2FA und xmlrpc

In den letzten Jahren haben die Angriffe auf WordPress-Installationen weiter zugenommen, was mich dazu gebracht, sowohl die 2-Faktor-Authentifizierung zu aktivieren als auch das Deaktivieren der xmlprc-Schnittstelle umzusetzen.

  1. 2FA – 2-Faktor-Authentifizierung
  2. xmlrpc-Schnittstelle deaktivieren
2-Faktor-Authentifizierung

Leider hat es die 2FA auch nicht in WordPress 6.3 geschafft, aber dafür gibt es ein von der WordPress-Community entwickeltes PlugIn, dass genau diese Funktionalität bereitstellt und damit WordPress schonmal grundsätzlich absichert.
Das PlugIn bietet verschiedene Optionen um die Anmeldung an WordPress abzusichern:

E-Mail-Codes
Zeitbasierte Einmal-Passwörter (TOTP)
FIDO Universal 2. Faktor (U2F)
Backup-Codes

Es empfiehlt sich mehr als nur eine Möglichkeit zu aktivieren, um sicherzustellen, dass man sich auch anmelden kann, wenn man nicht am eigenen PC sitzt, bzw. nicht die Möglichkeit hat, z.B. den Authenticator am Handy zu verwenden.

Die einfachste Möglichkeit ist die Code-Generierung via Google oder Microsoft Authenticator. Hier wird jede Minute ein neuer Code generiert, der bei der Anmeldung dann abgefragt wird.

Zusätzlich kann man noch einstellen, dass man Codes per eMail bekommen möchte, man kann Backup-Codes generieren oder man richtet sich ein FIDO 2FA-USB-Stick ein.

Zur Einrichtung der Authenticator-App wird ein QR-Code eingeblendet, der eingescannt werden muss und mit dem generierten Code bestätigt werden muss.

Das passende PlugIn kann über das Dashboard in WordPress installiert werden, oder über den untenstehenden Link herzunter geladen und manuell installiert werden. Kleiner Hinweis: Auf der PlugIn-Seite wird darauf hingewiesen, dass das PlugIn seit längerem nicht mehr mit der einer aktuellen WordPress-Version getestet wurde – das PlugIn funktioniert auch mit Version 6.3 problemlos.

Hier klicken, um den Inhalt von WordPress.org anzuzeigen.
Erfahre mehr in der Datenschutzerklärung von WordPress.org.

XMLRPC deaktivieren

Die meisten Angriffe auf WordPress erfolgen über die XMLRPC-Schnittstelle. Diese Schnittstelle ist noch ein Relikt aus alten Zeiten und heute eigentlich nicht mehr zeitgemäß, da WordPress die REST API ins Leben gerufen hat um, Ping- und Trackbacks zu ermöglichen. Daher macht es durch aus Sinn dieses Schnittstelle zu deaktivieren, um WordPress sicherer zu machen.

Hier gibt es verschiedene Möglichkeiten dies umzusetzen. Zum einen kann die “functions.php” angepasst werden, was aber evtl. bei einem Update zu Problemen führt bzw. die Datei überschrieben wird, zum anderen tief in die WordPress-Installation eingreift.
Ich habe mich für eine Möglichkeit entschieden, die den Zugriff auf die Datei “xmlrpc.php” komplett unterbindet. Dazu wird eine .htaccess-Datei erstellt und im WordPress-Stammverzeichnis abgelegt. Diese Datei beinhaltet die Info, was passieren sollen, wenn man direkt auf die xmlrpc.php zugreift.

Inhalt der .htaccess:

# XML-RPC Schnittstelle komplett abschalten 
<Files xmlrpc.php>
Order Deny,Allow
Deny from all
</Files>

Zusätzlich kann man auch noch den Upload-Ordner auf fast die gleiche Weise absichern, um das Hochladen und Ausführen von .php-Dateien oder das Hochladen von .png/.jpg-Dateien und anschließende umbenennen und ausführen zu unterbinden.

Inhalt der .htaccess

<Files *.php> 
deny from all
</Files>

Diese Datei wird in das Verzeichnis wp-content/uploads kopiert. Das schöne an dieser Methode ist, dass die Einstellungen in der .htaccess-Datei vererbt werden, bis eine neue .htaccess-Datei gefunden wird und diese Einstellungen evtl. überschreibt – sprich, es werden auch alle Unterverzeichnisse mit abgesichert.

Über die Seite https://xmlrpc-check.hostpress.me/ kann dann abschließend geprüft werden, ob alles geklappt hat.
Wenn die Seite einen 403-Fehler ausgibt, funktioniert alles wie gewünscht.

 Letztes Update: Do, 07. Sep. 2023
Ursprünglich veröffentlicht:  Fr, 11. Aug. 2023

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert