Die Sicherheit von WordPress wird von seinem Entwicklungsteam sehr ernst genommen. Patches und Upgrades werden häufig veröffentlicht, damit WordPress mit einer immer anspruchsvolleren Online Umgebung Schritt halten kann. Auch hat WordPress ein verantwortungsbewusstes Offenlegungsprogramm für Schwachstellen entwickelt.
Über die Bemühungen des WordPress-Entwicklungsteams hinaus sollten Anwender eigene Maßnahmen ergreifen, um ihre Sicherheitsrisiken zu minimieren - dies wird oft als "Hardening WordPress" bezeichnet. Mit mehreren einfachen Schritten lässt sich Ihre WordPress-Website absichern, wir haben diese in einem kürzlich erschienenen Beitrag mit dem Titel So machen Sie WordPress sicher: Die Grundlagen behandelt.
Über die grundlegenden Schritte hinaus gibt es auch fortgeschrittenere Techniken, die zur weiteren Absicherung Ihrer WordPress-Website eingesetzt werden können, sowie wichtige "Dos and Don'ts" für die Verwaltung einer WordPress-Website.
Tauchen wir ein und werfen wir einen Blick auf einige von ihnen.
Verbindung mit Ihrem Server per SFTP
Zunächst ist es wichtig, dass die Verbindung zu Ihrem Webserver unbedingt mit SFTP aufgebaut wird, was ähnlich wie FTP ist, außer dass Ihr Passwort und andere Daten verschlüsselt werden. FileZilla ist eine ausgezeichnete File Transfer Application, die mehrere Dateiübertragungsprotokolle einschließlich SFTP unterstützt. Sie können hier herausfinden, wie Sie Dateien mit FileZilla installieren und auf Ihr Linode übertragen können.
Verhinderung einer Brute Force Attacke
Bei Brute Force Attacken gibt ein Angreifer wiederholt und systematisch verschiedene Benutzernamen und Passwörter ein. Allerdings sind solche Angriffe nicht endemisch für WordPress, jede Webanwendung ist anfällig für Brute Force Attacken.
Die erste Verteidigung gegen diese Art von Angriffen besteht darin, Ihr Passwort sicher zu machen. Die Wahl eines schwer zu knackenden Passworts wurde bereits in unserem vorherigen Artikel über die Sicherung von WordPress besprochen, daher werden wir darauf nicht näher eingehen. Zusätzlich lohnt sich der Einbau einer zweistufigen Authentifizierung innerhalb Ihrer WordPress Instanz.
Als nächstes verwenden Sie ein Plugin, um die Anzahl der Anmeldeversuche auf Ihrer Website zu begrenzen. Ein beliebtes Plugin ist Limit Login Attempts Reloaded mit mehr als 1 Million Downloads. Es begrenzt die Anzahl der möglichen Anmeldeversuche sowohl über die normale Anmeldung als auch über XMLRPC, WooCommerce oder benutzerdefinierte Anmeldeseiten.
Eine weitere Möglichkeit besteht darin, die wp-admin-Location zu ändern. Standardmäßig haben alle WordPress-Websites ihre Anmeldeseiten unter /wp-admin (z.B. www.examplesite.com/wp-admin.) Bots, die Brute-Force-Angriffe durchführen, zielen oft sofort auf diese Seite. Verwenden Sie lieber WPS Hide Login.
Wie immer lohnt es sich, vor der Installation neuer und ungetesteter Plugins immer ein Backup Ihrer Website anzufertigen. Die meisten populären Plugins schaden Ihrer Website nicht, es besteht aber immer die Möglichkeit einer Inkompatibilität. Eine Sicherheitskopie gibt Ihnen die Gewissheit, dass ein durch ein fehlerhaftes Plugin verursachter Schaden schnell und einfach rückgängig gemacht werden kann.
WordPress Admin HTTP Authentifizierung
Darüber hinaus können Sie Ihren WP Admin mit einer einfachen HTTP Authentifizierung sperren. Dabei muss der Anwender einen Namen und ein Passwort eingeben, bevor er überhaupt die WP-Anmeldeseite erreicht. Das kann Brute Force Bots durchaus stoppen.
Dafür müssen Sie einen .htpasswd File erstellen. Wir raten zu einer tollen und kostenlosen Ressource von Hosting Canada. Sie müssen den gewünschten Benutzernamen zusammen mit einem Passwort eingeben, eine Verschlüsselungsmethode aus der Dropdown-Liste wählen und auf "Generate Password" klicken. Eine lange Textzeichenfolge wird erzeugt. Kopieren Sie diese und fügen Sie sie in eine neue Textdatei ein. Speichern Sie diese Datei einfach als '.htpasswd'.
Loggen Sie sich dann auf Ihrem Server ein und gehen Sie zu Ihrem WordPress wp-admin Ordner. Öffnen Sie diesen und erstellen Sie darin einen neuen Ordner namens 'htpasswd'. Laden Sie Ihre zuvor erstellte .htpasswd-Datei in diesen Ordner hoch. Sie dürfen Ihre Dateien nur im 'ASCII'- und nicht im 'BINARY'-Modus übertragen.
Der letzte Schritt besteht darin, eine neue Datei zu erstellen, die Folgendes enthält:
AuthName "Admins Only"
AuthUserFile /home/public_html/wp-admin/htpasswd/.htpasswd
AuthType basic
Require user yourusername
<Files admin-ajax.php>
Order allow,deny
Allow from all
Satisfy any
</Files>
Sie müssen den Speicherort der AuthUserFile Datei mit der vollständigen Verzeichnis URL Ihrer .htpasswd Datei und yourusername mit dem Benutzernamen befüllen, den Sie für die .htpasswd Datei verwendet haben. Speichern Sie diese Datei als .htaccess und laden Sie diese in Ihren wp-admin Ordner auf Ihrem Server hoch. Das war's. Wenn Sie sich das nächste Mal auf Ihrer Website unter www.examplesite.com/wp-admin einloggen, werden Sie aufgefordert, Ihren Benutzernamen und Ihr Passwort einzugeben, noch bevor der WordPress Admin Login Bildschirm angezeigt wird.
Nützlicher Tipp: Wenn Sie die vollständige Verzeichnis URL Ihrer .htpasswd Datei nicht kennen, hat es sich als praktisch erwiesen, ein kleines PHP Skript zu verwenden:
<?php
echo "Absolute path: ", getcwd();
?>
Erstellen Sie eine Datei, die dieses Skript namens testpath.php enthält, laden Sie diese in die Datei htpasswd hoch und besuchen Sie dann diese URL (z.B. www.example.com/wp-admin/htpasswd/testpath.php), um den vollständigen Dateipfad zu Ihrer .passwd Datei zu erhalten.
Sichern von wp-includes
Es gibt Skripte, die in Ihrer WordPress Installation enthalten sind und auf die nicht zugegriffen werden soll. Sie bieten jedoch einen möglichen Weg für Hacker auf Ihre Website. Daher kann es klug sein, sie zu sperren. Sie können den Zugriff mit einem mod_rewrite in der .htaccess Datei blockieren. Fügen Sie dazu den folgenden Code in Ihre .htaccess Datei (die sich normalerweise im Document Root Ihrer WordPress-Site befindet) außerhalb der Tags # BEGIN WordPress und # END WordPress ein. Andernfalls kann WordPress sie überschreiben:
# Block the include-only files.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^wp-admin/includes/ - [F,L]
RewriteRule !^wp-includes/ - [S=3]
RewriteRule ^wp-includes/[^/]+\.php$ - [F,L]
RewriteRule ^wp-includes/js/tinymce/langs/.+\.php - [F,L]
RewriteRule ^wp-includes/theme-compat/ - [F,L]
</IfModule>
# BEGIN WordPress
Deaktivieren der Dateibearbeitung
Bei vielen Ansätzen für die Sicherung einer WordPress-Website geht es darum, einem potenziellen Hacker das Leben schwer zu machen. Genauso wie ein Einbrecher nach einem Haus in einer unbeleuchteten Straße ohne Alarmanlage oder Sicherheitsbeleuchtung suchen wird, zieht es auch ein Hacker vor, eine Website ohne grundlegende Sicherheitsfunktionen ins Visier zu nehmen. Das ist ein leichteres Opfer als eine Website, bei der - metaphorisch gesprochen - Fenster und Türen fest verriegelt sind.
Standardmäßig erlaubt WordPress Administratoren die Bearbeitung von PHP Dateien wie Themes und Plugins über das Dashboard. Da diese Funktion die Ausführung von Code ermöglicht, ist sie ein offensichtliches Ziel für einen Hacker. Die meisten Webentwickler ändern Code nicht vom Dashboard aus sondern mit einem Texteditor wie Sublime. Es ist sinnvoll, dieses spezielle WordPress-Fenster zu "verriegeln" und damit einen weiteren potenziellen Zugriffspunkt für einen Hacker zu entfernen.
Platzieren Sie dazu diese Codezeile in die Datei wp-config.php. Sie blockiert für alle Anwender die Möglichkeit für 'edit_themes', 'edit_plugins' und 'edit_files':
define(‘DISALLOW_FILE_EDIT’, true);
Dies wird zwar einen Hacker nicht daran hindern, bösartige Dateien auf Ihre Website hochzuladen, aber doch einige Angriffe stoppen.
Verwenden einer Firewall
Eine Firewall ist eine ausgezeichnete Möglichkeit, um Angriffe auf Ihre WordPress-Website zu verhindern. Es gibt mehrere Möglichkeiten:
Ein Firewall Plugin
Mehrere gute Firewall Plugins schränken den Zugriff auf der Ebene des Apache Servers ein, noch bevor WordPress erreicht wird. Gute Beispiele dafür sind All In One WP Security & Firewall oder WordFence. Beide versuchen, eingehende Anfragen zu filtern, um böswilligen Datenverkehr von Ihrem WordPress fernzuhalten
Zwischengeschaltete Firewalls
Plugins wie WordFence filtern den Datenverkehr auf Serverebene. Ein alternativer Ansatz besteht darin, den Verkehr auf dem Weg zu Ihrem Server abzufangen noch bevor er gescreent wird, und die Anfrage dann mit einem Produkt wie Cloudflare an Ihren Server zu senden. Dieser Ansatz ist beliebt, da Sie lediglich Ihre DNS Einträge ändern müssen. Änderungen an Ihrem Server sind nicht erforderlich.
Nächste Schritte
Die Sicherheit von WordPress bleibt schwierig. Wenn Ihnen das nach zu viel harter Arbeit aussieht, dann sollten Sie einen Managed WordPress Host wie Pressidium in Betracht ziehen, er kann einen Großteil für Sie übernehmen. Und nehmen Sieregelmäßige Backups Ihrer Website vor, damit Sie nachts gut schlafen können, weil Sie wissen, dass Sie Ihre Website jederzeit wiederherstellen können.
Kommentare (2)
Excellent tips. Strong password and using limit login attempts are the quick fix for any WP blog. Being in the same industry I would like to add one more tip – use only trusted and highly rated themes and plugins.
A good password is great. Also, hiding or changing the wp-admin slug is really helps.