WordPress Absicherung Quick and Dirty

WordPress ist zwar nicht von Haus aus unsicher, aber es sind noch ein paar Dinge zu tun, um es richtig sicher zu machen.
Wichtig ist es kein Snake Oil zu installieren, also Tools/Plugins im WordPress, die es vermeintlich sicher machen. Diese Tools sind ALLE Schrott. Wirklich sicher wird WordPress nur durch manuellen Eingriff in die Serverkonfiguration. Wenn Dies bei Ihrem Hoster nicht möglich ist, rate ich dazu den Hoster zu wechseln. Gerne kommen Sie zu uns! https://www.taro.de

Ich gehe davon aus, dass auf dem Webserver aktuelle Software läuft: Apache 2.4 Daher sind alle Konfigurationen hier bezogen auf die Version 2.4.

  1. Updates: Immer regelmäßig einmal die Woche nach Updates für die WordPress-Installation schauen. Ohne Updates greifen auch die Tipps unter nur bedingt.
  2. Wichtig ist, das Login zu unterbinden und den Zugriff auf die xmlrpc.php. Dazu eine .htaccess Datei im Root Ordner erstellen
# Authentifizierungsverhinderung wp-login.php
<Files wp-login.php>
   AuthType Basic
   AuthName "Restricted Admin-Area"
   AuthUserFile /home/wordpress/.htpasswd
   Require valid-user
</Files>
<Files xmlrpc.php> 
   AuthType Basic
   AuthName "Restricted Admin-Area"
   AuthUserFile /home/wordpress/.htpasswd
Require valid-user </Files>
# Zugriff auf .htaccess und .htpasswd unterbinden 
<FilesMatch "(\.htaccess|\.htpasswd)">
   Require all denied 
</FilesMatch>

Jetzt mit htpasswd eine Benutzername / Kennwort Kombination hinterlegen, um WordPress sicher zu machen:

htpasswd -cb /home/wordpress/.htpasswd Benutzername Kennwort

Jetzt werden Sie nach einer Benutzername / Kennwort Kombination befragt, BEVOR Sie Sich regulär auf der WordPress-Installation einloggen können. Dies ist ein „Türsteher“, der über Skripte schwer zu überwinden ist.

2. In der Apache Konfiguration sollte das Listen von nicht direkt adressierten Inhalten in Ordnern unterbunden werden:

Options -Indexes

3. Den Zugriff auf wichtige WordPressdateien unterbinden. Dazu erweitern Sie die .htaccess um weitere Zeilen:

<FilesMatch "(^\.|wp-config\.php|xmlrpc\.php|(?<!robots)\.txt|(liesmich|readme)\.*)">
   Require all denied
</FilesMatch>

4. Gerne werden durch Sicherheitslücken PHP Dateien in die Uploads hochgeladen. Diese Ausführung müssen wir unterbinden. Dazu erstellen Sie in /wp-content und /wp-content/uploads wiederum eine .htaccess Datei mit folgendem Inhalt

<FilesMatch \.php$>
   Require all denied
</FilesMatch>

5. TinyMCE muss gegen die nicht Autorisierte Ausführung geschützt werden. Dafür erstellen wir (Richtig geraten) eine .htaccess Datei in dem Ordner /wp-includes

<FilesMatch (?<!wp-tinymce)\.php$>
   Require all denied
</FilesMatch>

Sollte jetzt irgendwas nicht mehr funktionieren (Abhängig von den Plugins) Bitte diese .htaccess datei wieder löschen.

6. Sollte man die Spammer sich vom Hals halten. Hier kann man sehr gut mod_spamhaus einsetzen. ALLERDINGS existiert keine Variante auf dem Markt, die ohne Modifikation des Quellcodes funktioniert. Wer also den Code braucht, darf sich gerne an mich wenden, ich leite ihm diesen weiter. Für alle anderen: remote_ip ist durch client_ip in den die Fehlermeldungen markierten Stellen zu ersetzen.

Ab Hier ist das WordPress gut gesichert. Die Versionsnummer zu unterdrücken bringt NICHTS. das sind alles Ratschläge, die man gerne vergessen sollte. Zum Beispiel kann das Tool plecost ohne weiteres trotzdem alle Plugins und Versionen auflisten.

Zu guter Letzt ist der Einsatz von fail2ban Pflicht!

admin has written 94 articles