Wordpress absichern (inkl. Apache & Nginx)

Weltweit werden mittlerweile über 28% aller Websiten mit Wordpress betrieben. Für Angreifer ist dies mittlerweile ein sehr lohnenswertes Ziel.
Aus diesem Grund möchte ich im folgenden aufzeigen, wie ich Webseiten mittels Wordpress absichere. Dies geschieht zum einen über die Konfiguration des Webservers selbst - ich setze auf nginx -, zum anderen durch Nutzung von diversen Plugins. Auch wenn ich selbst nur auf nginx setze, werde ich aber auch Tipps für Apache geben.

Anders als viele immer wieder gerne behaupten, kann man Wordpress selbst mittlerweile als relativ sicher bezeichnen. Mithilfe der Auto-Update-Funktion werden bekannt gemachte Sicherheitslücken in der Regel zeitnah gefixt, vorausgesetzt ihr habt diese nicht deaktiviert!

Die große Stärke von Wordpress ist auch gleichzeitig mittlerweile das größte Einfallstor für Angreifer und Schadcode.
Wordpress lässt sich mittels unzähliger Plugins erweitern und durch Themes auch optisch dem eigenen Geschmack nach anpassen.
Das Problem ist gerade hier, dass oftmals diverse Plugins einfach nicht mehr gepflegt und somit aktualisiert werden. Bei Themes ist es das gleiche. Diese nutzten oft weitere Komponenten, um beispielsweise Bilder zu verarbeiten.

Es ist daher unerlässlich immer wachsam zu sein. Die folgenden weiteren Punkte können keine hundertprotzentige Garantie auf Sicherheit geben. Achtet daher immer darauf, dass sowohl Themes als auch Plugins die ihr einsetzt, regelmäßig Updates erhalten und mit eurerer eingesetzten Wordpress-Version kompatibel sind (das könnt ihr im Wordpress-Plugin-Verzeichnis sehen).

Und ganz allgemein gilt, was sich auch in der Geschwindigkeit eurer Seite bemerkbar machen wird: Weniger ist mehr.
Je weniger Plugins ihr installiert habt, desto weniger zusätzliche Angriffsfläche existiert.

Webserver absichern

Apache-User

Wer Wordpress in der Regel auf einem normalen Webhosting-Paket nutzt, nutzt in der Regel Apache als Webserver. Dieser kann im Gegensatz zu nginx mit .htacess Dateien umgehen, welche wir im folgenden auch benutzen werden, um Wordpress abzusichern.

Als erstes öffnen wir die .htaccess-Datei, die sich im Haupt-Verzeichnis von Wordpress befindet. In dieser befindet sich in der Regek bereits ein #Wordpress-Block, den wir unberührt lassen. Ansonsten würden unsere folgenden Änderungen beim nächsten speichern seitens Wordpress überschrieben.
Unterhalb des Wordpress-Blocks ergänzen wir folgende Zeilen:

<files wp-config.php>
order allow,deny
deny from all
</files>
<files xmlrpc.php>
order allow,deny
deny from all
</files>

Diese Zeilen verbieten zum einen den Zugang zur wp-config.php und zur xmlrpc.php, die gerade zuletzt für Angriffe missbraucht wurde. Letzere bitte nur ergänzen, sofern ihr nicht auf die mobilen Wordpress-Apps zurückgreift.

Als nächstes sichern wir das Uploads-Verzeichnis. Dazu muss eine .htaccess-Datei im uploads-Verzeichnis angelegt werden.

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

Damit wird die Ausführung von PHP-Code im uploads-Verzeichnis unterbunden.

nginx

Wie auch schon unter Apache werden wir auch unter nginx die Ausführung von PHP im uploads-Ordner verbieten. Dazu wird in eurer nginx-Konfiguration folgendes ergänzt:

location ~* /(?:uploads|files)/.*.php$ {
    deny all;
}

Anschließend untersagen wir den Zugang zu weiteren Dateien, die Angreifern mögliche Angriffsziele für Wordpress bieten:

location ~ /(.|wp-config.php|wp-comments-post.php|readme.html|license.txt) {
    deny all;
}

Auch hier lässt sich noch die xmlrpc.php ergänzen, sofern ihr die mobile Wordpress-App nicht nutzt.

Wordpress absichern

An nächster Stelle steht Wordpress auf dem Plan. Wie schon zu Beginn erwähnt ist Wordpress an sich bedingt durch die automatische Update-Funktion relativ sicher. Problematisch sind mittlerweile die unzähligen Themes und Plugins.

Man mag es unterschätzen, aber regelmäßige Updates von Wordpress UND Themes und Plugins sind wichtig! Daher, prüft regelmäßig ob Updates zur Verfügung stehen und installiert diese! Bei Theme-Updates empfiehlt sich die Nutzung von Child-Themes, um selbst vorgenommene Änderungen zu sichern.

Sollte dennoch einmal ein Angreifer in eurem Adminbereich eingedrungen sein, könnt ihr diesem die Arbeit etwas schwerer machen.
Als erstes öffnet ihr die wp-config.php und ergänzt die folgende Zeile, um das Bearbeiten von Dateien innerhalb des Wordpress-Adminbereiches zu deaktivieren:

define('DISALLOW_FILE_EDIT', true);

Ein hilfreiches Plugin, welches euch bei der Administration unterstützen kann ist Wordfence Security. Die kostenlose Variante reicht dafür vollkommen aus.

wordfence_wordpress

Aber auch hier gilt, nicht bloß dumpf installieren und aktivieren! Als wichtigste Punkte solltet ihr euch auf jeden Fall einmal den Punkt Web Application Firewall vornehmen! Je nachdem, wie PHP auf dem Server ausgeführt wird, kann die Einstellung unterschiedlich ausführen, Wordfence zeigt euch allerdings sehr gut, was genau von euerer Seite durchgeführt werden muss. Im besten Fall müsst ihr gar nichts machen, außer mittels eines Klicks eure .htaccess-Datei abzusichern.

Einen weiterern Blick wert ist der Reiter Brute Force Protection, der dafür sorgt, dass nach einer definierten Anzahl an fehlerhaften Logins der Zugang für den Angreifer gesperrt wird.

Ebenfalls solltet ihr in den Optionen die E-Mail-Benachrichtigungen aktivieren. Dadurch werdet ihr zum einen über Plugin-/Theme-Aktualisierungen informiert und erhaltet wöchentlich eine Zusammenfassung sämtlicher Aktivitäten. Die restlichen verfügbaren Optionen könnt ihr nach belieben aktivieren.

Weiterführende Gedanken

Die oben genannte Punkte sind natürlich weiter ausbaufähig. Neben vernünftig gesetzten Verzeichnis-Rechten - wovon ich jetzt einfach ausgangen bin - sollte man auch über die Nutzung einer TwoFactor-Authentifizierung nachdenken. Weitere Punkte könnt ihr auch bei Wordpress direkt finden.
Eine weitere gute Anlauf-Stelle sind Security-Blogs, wie beispeislweise der von Sucuri. Diese bieten auch diverse Security-Plugins an, welche ggf. ebenfalls einen Blick wert sind.

Kommentare anzeigen

Get the latest posts delivered right to your inbox.