WordPress – und eine gewisse Basis-Sicherheit

Die Open Source Plattform WordPress  ist heutzutage ein sehr beliebtes System, um vor allem Blogs im Internet zu erstellen. Es besticht durch eine einfach Installation, intuitive Bedienung, Robustheit und einfache Erweiterbarkeit. Nicht zu vergessen ist die enorme Community , die rund um die Basis-Plattform einen bunten Blumenstrauß von Erweiterungen etc. bietet.

Aber wie steht es um die Sicherheit des Systems? Standard-Mechanismen wie, Schutz vor XSS, SQL-Injection usw. sind von Haus aus dabei. Aber was kann man selber tun, um den Sicherheitsstandard noch weiter zu erhöhen? Drei einfache Handgriffe genügen, um hier einen großen Schritt in die richtige Richtung zu tun.

1. SSL Zertifikat installieren

Dies ist wohl der unkomplizierteste Schritt. Einfach beim Anbieter seiner Wahl, oder beim aktuellen Hoster selbst, ein SSL Zertifikat beantragen, einspielen lassen und dies im WordPress Admin Panel im Bereich „Einstellungen“ konfigurieren.

Hintergrund ist hier, dass Eure Login Daten im WordPress Admin Panel nicht im Klartext übertragen werden. Aber wir wollen natürlich auch nicht unsere Blog-Besucher vergessen. Deren Eingaben, z.B. bei Kommentaren, werden dann auch verschlüsselt an den Webserver gesendet.

Wichtig ist nicht zu vergessen, eine passende Rewrite Condition in der .htaccess Datei im Webserver Hauptverzeichnis zu hinterlegen. Diese sorgt dafür, dass alle zukünftigen Anfragen über das ungesichert http:// Protokoll automatisch auf das gesicherte https:// umgeleitet werden.

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{SERVER_PORT}   !^443$
RewriteRule  (.*)  https://%{HTTP_HOST}/$1   [L]
</IfModule>

2. Generator Meta Tag entfernen

Im Standard wird im HTML Quellcode ein Meta Tag gerendert, welches die aktuell installierte WordPress Version ausgibt, Bsp.:

<meta name="generator" content="WordPress 4.1" />;

Dies dient dem Hersteller u.a. dazu eine Statistik zu erstellen, wie viele WordPress Installationen es insgesamt gibt, aufgeschlüsselt nach der verwendeten Version.
Nun vergeht aber kaum ein Quartal, in dem nicht mind. eine Schwachstelle in der aktuellsten WordPress Version aufgedeckt wird. Verwendet man nun diesen Generator Meta Tag, so weiß jeder Besucher der Seite welche Version zur Zeit in Betrieb ist, was einen Rückschluss auf die Sicherheitslücken zulässt. Unbefugte Dritte könnten diese nun einfach ausnutzen.
Um die Ausgabe des Generator Meta Tags zu unterbinden ist nichts weiter nötig, als die Datei „functions.php“ im Verzeichnis des aktuell verwendeten Themes wie folgt zu erweitern:

remove_action('wp_head', 'wp_generator');

3. Admin Panel Login schützen

Das Admin Panel jeder WordPress Installation ist im Standard unter /wp-admin/index.php erreichbar. Es zeigt sich eine Login Maske, die zur Eingabe von Benutzernamen und Kennwort auffordert. Somit steht dieser Login Personen mit kriminellen Energien offen, um ihre Kräfte daran zu üben. Im schlimmsten Fall schaffen sie es eventuell via Brute-Force-Attacke Zugang zu erhalten und unschöne Dinge anzustellen.

Mit relative einfachen Mitteln ist es jedoch möglich den Zugang zum Wordpress Admin Panel Login  zu schützen.

Der erste Schritt ist das Anlegen ein Datei mit Namen „.htaccess“ mit folgendem Inhalt (wobei [username] als Synonym für einen beliebigen Nutzernamen steht und [path_to_wp-admin] für den reellen Pfad zum wp-admin Verzeichnis).

AuthType Basic
AuthName "Passwortgeschuetzter Bereich"
AuthUserFile [path_to_wp-admin]/wp-admin/.htpasswd
require user [username]

Den reelen Pfad der WordPress Installation bringt man am besten im Admin Panel des Hosting Dienstleisters in Erfahrung.
Nun wird diese Datei im Verzeichnis „wp-admin“ auf dem Webserver abgelegt.

Jetzt muss man lediglich die referenzierte Datei „.htpasswd“ erstellen. Deren Inhalt sieht beispielhaft so aus:

[username]:[password_hash]

Als [username] wird der Wert eingetragen, welcher bereits in der Datei „.htaccess“ gewählt wurde. Für den Wert [password_hash] wird ein verschlüsseltes Passwort der eigenen Wahl eingetragen. Es gibt im Netz unzählige Dienste, die dies erledigen. Ein häufig verwendeter ist hier zu finden.

Ist nun Nutzername und Passwortschlüssel eingetragen ist nichts weiter zu tun, als die Datei „.htpasswd“ ebenfalls im Verzeichnis „wp-admin“ auf dem Webserver abzulegen.

Versucht man nun Zugang zum Admin Panel Login zu erlangen, wird noch vor Laden des WordPress Portals Nutzername und Kennwort vom Webserver abgefragt. Somit ist das Login Panel grundlegend geschützt und eine direkte Attacke darauf ist verhindert bzw. stark erschwert.

Das sich Benutzername und Kennwort für den Schutz via Webserver (.htaccess/.htpasswd) von den Zugangsdaten zum WordPress Admin Panel unterscheiden und eine hohe Passwortstärke gewählt werden sollte, ist selbstredend.

Ronny Hartmann-Schmidt

Über Ronny Hartmann-Schmidt

Ronny ist Autor bei Hartmann-schmidt.de, Projektmanager für Software-Projekte und begeisterter Web-Entwickler.

13. Januar 2015 von Ronny Hartmann-Schmidt
Kategorien: Technisches | Schlagwörter: , , | Schreibe einen Kommentar

Schreibe einen Kommentar

Pflichtfelder sind mit * markiert