Wie kann ich WordPress sicher machen?
Mir wird immer mal wieder gesagt, dass WordPress nicht sicher ist und das WordPress Webseiten leicht gehackt werden können. Der Meinung bin ich ganz und gar nicht. In diesem Beitrag will ich zeigen, wie du WordPress sicher machen kannst.
Worauf muss ich achten damit WordPress sicher wird?
Die Sicherheit von WordPress fängt bei der Installation an
Sobald du aufgefordert wirst die Zugangsdaten für die Datenbank einzutragen, sollte der Präfix geändert werden, denn der Standard Präfix „wp_“ ist bekannt und die wenigsten ändern diesen. Taucht beispielsweise in einem Plugin eine Schwachstelle auf und bietet die Möglichkeit SQL-Injections (SQL Befehle in Eingabefeldern von Formularen) auszuführen, hat der Angreifer leichtes Spiel, da der Präfix bekannt ist und somit Zugriff auf die Tabellen möglich ist.
Für den Präfix können Zahlen und Buchstaben verwendet werden. Wie du den Präfix nachträglich ändern kannst, erkläre ich später.
Der nächste Punkt ist der Name des Administrator. Verwendet dort nicht den vorgefertigten Namen admin, sondern tragt einen eigenen Benutzernamen ein. Auch bei der Auswahl des Passwortes achte darauf, dass es mindestens 8 Zeichen lang ist und aus Zahlen, Buchstaben und Sonderzeichen besteht. Was heute natürlich Standard sein sollte.
Sobald WordPress installiert und eingerichtet ist, solltest du einen neuen Benutzer anlegen, denn der Name des Bentuzers der Beiträge oder Seiten anlegt, kann im Quellcode gefunden werden. Somit könnte ein Angreifer den Namen des Administrators auslesen. Lege also am besten einen Redakteur an und erstellen mit diesem Profil Seiten und Beiträge.
Wie kann die Login-Seite geschützt werden?
Die URL zum Backend ändern
Die URL für das Backend von WordPress ist ebenso bekannt, wie der Präfix. Über wp-admin kommst du bei WordPress in das Backend, ebenso über wp-login.php. Um diese URLs zu ändern, gibt es Plugins.
Da wäre z.B. Rename wp-login.php. Mit diesem Plugin kann wp-admin und wp-login.php in ein beliebiges Wort geändert werden. Somit ist das Verzeichnis wp-admin und die Seite wp-login.php unerreichbar. Allerdings kann es sein, dass es Plugins gibt, die nicht kompatibel mit Rename wp-login.php sind. Für solche Fälle gibt es weitere Möglichkeiten.
Den Login mit Hilfe von htaccess schützen
Eine weitere Möglichkeit ist es, die Login-Seite über die .htaccess Datei zu schützen und eine .htpasswd Datei anzulegen. Wenn du auf diese Weise die Login-Seite schützen möchtest, benötigst du ein FTP-Programm, wie z.B. FileZilla, einen Texteditor (da reicht der Standard Editor des genutzten Betriebssystems) und einen htpasswd Generator.
Im ersten Schritt erstellst du eine Datei namens .htpasswd und kopierst dort den Text hinein, den du mit Hilfe des htpasswd Generator erstellt hast. Achte darauf einen Benutzernamen ohne Leerzeichen zu nehmen, denn in der .htaccess Datei können mehrere Benutzernamen eingetragen werden, die du Leerzeichen getrennt werden. Diese Datei kopierst du nun mit dem FTP-Programm (viele Hoster bieten auch eine Web-FTP Oberfläche an) in das wp-admin Verzeichnis deiner WordPress Installation. Jetzt musst du noch eine .htaccess Datei erstellen. In diese .htaccess Datei muss folgender Code eingefügt werden:
AuthType Basic
AuthName "Passwortgeschützter Bereich"
AuthUserFile /httpdocs/[Ordner]/wp-admin/.htpasswd
require user Username
Der Pfad in der Zeile AuthUserFile steht als Beispiel für das Document Root, welches der absoluten Pfad zu deiner Website ist. Bei ALL-INKL, die ich sehr empfehle, ist dies zum Beispiel /www/htdocs/wxxxxxxx/Domain/. Den Username ersetzt du mit dem Namen, den du im .htpasswd Generator eingetragen hast. Zu guter Letzt kopierst du die soeben erstellte .htaccess Datei auch in das wp-admin Verzeichnis.
Nun hast du einen zusätzlichen Schutz über die .htaccess Datei:
Login Versuche verhindern
Darüber hinaus kannst du mit dem Plugin WP Limit Login Attempts die Login-Versuche reduzieren. Das hat den Vorteil, dass mit Hilfe eines Brute-Force Angriffs (eine Software, die alle möglichen Zeichenkombinationen testet), dass Passwort nicht herausgefunden werden kann, weil der Login für eine bestimmte Zeit gesperrt wird, wenn zu oft die falschen Eingaben gemacht worden sind.
Tabellen Präfix im nachhinein umbenennen
Wie ich schon zu Anfang geschrieben habe, ist es wichtig nicht den Standard Präfix „wp_“ zu verwenden. Wenn du aber schon eine fertige WordPress Installation hast, gibt es trotzdem einen Weg den Präfix im nachhinein zu ändern. Öffnet mit dem FTP-Programm die wp-config.php Datei im Hauptverzeichnis und ändert dort den Eintrag für Präfix um:
$table_prefix = 'wp_';
in zum Beispiel
$table_prefix = 'dR2c_';
und speichert die Änderungen ab.
Als nächstes musst du die Tabellen in der Datenbank umbenennen. Dafür kannst du zum Beispiel phpMyAdmin verwenden.
Am besten machst du vorher ein Backup der Datenbank. Diese lässt sich über Exportieren lokal auf deinem Rechner speichern und über Importieren wieder aufspielen. Jetzt benutzt du entweder die Editierfunktion von phpMyAdmin und benennst alle Tabellen manuell um oder du gibst einen SQL Befehl für jede Tabelle ein:
RENAME table 'wp_Tabellenname' TO 'dR2c_Tabellenname';
Im darauf folgenden Schritt musst du die User Meta Felder umbenennen. Dafür verwendest du am besten wieder einen SQL Befehl:
UPDATE 'dR2c_usermeta' SET 'meta_key' = REPLACE('meta_key', 'wp_', 'dR2c_')
Nun musst du die Options Tabelle anpassen:
UPDATE 'dR2c_options' SET 'option_name' = 'dR2c_user_roles' WHERE 'option_name' = 'wp_user_roles'
Mit dem letzten Befehl ist das Umbenennen des Präfix abgeschlossen.
Welche Möglichkeiten habe ich noch, damit WordPress sicherer wird?
Anpassung der Dateiberechtigungen
Über ein FTP-Programm kannst du die Datei- und Verzeichnisrechte anpassen. WordPress empfiehlt folgende Rechte für Ordner und Dateien zu vergeben:
- 644 für Dateien
- 755 für Ordner
- 660 für die wp-config.php Datei
Anpassung der htaccess Datei im Root Verzeichnis
Die vorhandene .htaccess Datei kann mit wenig neuen Einträgen einen zusätzlichen Schutz bieten.
Da wären unter anderem folgende Codezeilen, die deine WordPress Seite oder Blog sicherer machen:
# Verbietet allen den Zugang zur wp-config.php
<files wp-config.php>
order allow,deny
deny from all
</files>
# Zugriff auf die .htaccess Datei verhindern
<files ~ "^.*\.([Hh][Tt][Aa])">
order allow,deny
deny from all
satisfy all
</files>
# Das auslesen von Benutzernamen verhinden
RewriteEngine On
RewriteBase /blog/
RewriteCond %{QUERY_STRING} .*author=(.+.?) [NC]
RewriteRule (.*) /blog/?author= [NC,L,R=301]
Warum sollte ich Updates installieren?
Ein wichtiger Bestandteil WordPress sicher zu machen und zu gewährleisten, dass WordPress auch sicher bleibt, sind regelmäßige Updates. Updates schließen Sicherheitslücken und sind deswegen enorm wichtig. Achte also darauf immer die neuste WordPress Version zu verwenden und die Plugins auf dem neusten Stand zu halten.
Vor dem Update unbedingt ein Backup erstellen
Mach nicht den Fehler und installiere sofort ein Update, wenn es zur Verfügung steht. Es kann im schlimmsten Fall dazu führen, dass deine Website oder dein Blog nicht mehr erreichbar ist. Erstelle vor dem Updaten also ein Backup deiner WordPress Seite. Ich zum Beispiel, installiere Updates nie sofort auf einem Live-System. Dafür erstelle ich eine Kopie der kompletten Website und spiele diese auf einem Test-Server auf. Auf dem Test-Server kann ich dann ohne Probleme die Updates installieren und prüfen, ob das System weiterhin fehlerfrei läuft. Erst dann installiere ich die Updates auf dem Live-System. Somit verhindere ich größere Ausfälle der Website. Auch solltest du erst die Plugins updaten und danach WordPress. Es kann nämlich dazu führen, dass dein Plugin mit der neusten WordPress Version nicht mehr kompatibel ist. Die Entwickler der „hochwertigen“ Plugins achten auf so etwas und stellen dementsprechend Updates bereit.
Ich hoffe, dass ich euch ein wenig mit diesem Beitrag helfen konnte. Solltet ihr Fragen haben oder möchtet, dass wir von die codedesigner deine WordPress Seite sicher machen sollen, dann kontaktiert uns einfach.