Flattr

Social

Plugins

Apps

Lab

Kategorien

26. Februar 2012 / WordPress

Initiative: Mehr Sicherheit für WordPress durch den “Admin”-Schutz

WordPress: In der Vergangenheit hat sich ein Zugriffsschutz des Admin-Bereichs via .htaccess als Wächter erwiesen. Ein Tutorial verdeutlicht die Technik.
Sicherheit in WordPress

Man spricht vom schwächsten Glied der Kette im Sicherheitskonzept der WordPress-Blogs und meint automatisch den Administrationsbereich. Als Entwickler von Sicherheitslösungen darf man bei der Wiederholung des folgenden Satzes nicht müde werden: Schützt eure Backend-Systeme! Dieser Artikel geht nicht erneut die 10 Punkte für die Sicherheit in WordPress, sondern legt den Fokus auf eine bestimmte Abwehrmethode, die rasch eingebunden und äußert effektiv ist: Der Zugriffsschutz via .htaccess.

Anmeldeformular erzwungen in .htaccess
Anmeldeformular erzwungen in .htaccess

Sinnvoll: Kritische Trennung der Bereiche
Fakt ist: Das Backend eines Blogs darf nicht öffentlich zugänglich sein! Punkt. Der – durch WordPress generierte Zugangsdaten – bereits geschützte Raum hat nicht umsonst den Namen Administrationsbereich. Einen Zugriff auf die dahinter liegenden Seiten haben nur Administratoren und diejenigen, die vom Administrator explizit eingeladen wurden – meist Autoren mit beschränkten Rechten. Der Rest der Menschheit darf den Adminbereich einer WordPress-Instanz nie zu Gesicht bekommen, geschweige das mächtige, dennoch empfindliche Segment von innen zu sehen. Nicht mal die Login-Seite.

Gemeinsame Zugangsdaten für die “Eingangstür”
Die praktikable Lösung der vorgeschlagenen Trennung zwischen Back- und Frontend: Admin-Area durch ein zusätzliches Passwort abgrenzen, um dadurch einen weiteren Passierpunkt auf dem Weg zur Login-Maske zu schaffen. “Doppelt hält besser” ist hier die zutreffende Devise. Zugegeben, auf den ersten Blick ein wenig umständlich wirkender Schritt. Doch ab diesem Punkt übernimmt der Server bzw. Apache die unbürokratische Konfrontation mit Angreifern, die wiederholt versuchen ans Blog-Backend heranzukommen.

Es existieren zwar WordPress-Plugins, die solche Angriffe protokollieren und nach X gescheiterten Loginversuchen den Roboter aussperren. Doch warum Ruhestörer erst auf WordPress (das System und die Datenbank) lassen, wenn fehlerhafte Anmeldungen bereits auf Server-Ebene abgefangen werden können?

Appell: Lieber eine Passwortabfrage zu viel als zu wenig
Daher der dringende Aufruf an die Blogger: Sichert eure Adminbereiche ab! Die Angelegenheit ist schneller und unkomplizierter erledigt als vermutet. Die in den meisten Fällen bereits vorhandene Server-Datei .htaccess (wird meist von WordPress für die Steuerung der Permalinks angelegt) wird um 2 Code-Blöcke mit minimaler Pfadanpassung erweitert. Plus Erstellung einer Datei mit den Zugangsdaten im gleichen Ordner. Mehr ist da nicht zu machen. Investiert jetzt Minuten anstatt nach einem möglichen Angriff Stunden oder gar Tage für das Suchen nach injizierter Malware und für die Wiederherstellung der Daten hineinzustecken.

Anleitung für einen Zugriffsschutz via .htaccess

  1. Leere Datei mit dem Namen .htpasswd (PUNKThtpasswd) im Hauptverzeichnis des Blogs anlegen. (Unsichtbar?)
  2. Erstellte Datei im Texteditor öffnen (Microsoft Word ist keiner), den generierten Inhalt aus dem Htpasswd Generator übernehmen und speichern.
  3. Datei .htaccess (PUNKThtaccess) analog öffnen und um den nachfolgenden Code erweitern. Der Server-Pfad zu .htpasswd gehört angepasst.
  4. Änderungen speichern und das Ergebnis kontrollieren.

Zugriffsschutz + Interner Schutz für Systemdateien

<Files wp-login.php>
  AuthName "Admin-Bereich"
  AuthType Basic
  AuthUserFile /pfad/zu/.htpasswd
  require valid-user
</Files>

<FilesMatch "(.htaccess|.htpasswd|wp-config.php|liesmich.html|readme.html)">
  order deny,allow
  deny from all
</FilesMatch>

Zusammenfassung
Natürlich schließt die oben aufgeführte Technik einen eventuellen Einbruch nicht hundertprozentig aus – ein auf dem heimischen Rechner installierter Trojaner würde die Übertragung auch dieser Anmeldewerte heimlich ins Netz übertragen. Dafür ist die Vielfalt und die Hartnäckigkeit der Einbruchsmethoden zu überdimensional und zu brutal. Doch als weiterer Stolperstein auf dem Weg zur Plünderung eignet sich der Ansatz mehr als perfekt und konnte sich in der Vergangenheit mehrmals als zuverlässiger Wächter beweisen und vor Ausnutzung von bekannt gewordenen WordPress-Lücken auf Backend-Seiten schützen.

Wichtig zu beachten ist die Tatsache, dass nicht der komplette Ordner wp-admin mit einem Zugriffsschutz versehen wird (da sind Webhoster schnell dabei, meinen es aber gut), da WordPress auch im Frontend auf diverse Dateien im Backend zugreift.

Implementierung in Nginx
Die Absicherung des Administrationsbereichs auf einem Nginx Webserver wird im Beitrag WordPress auf Nginx: Performance und Sicherheit optimieren ausführlich dokumentiert.

Sergej Müller

[Der Autor]Sergej Müller ist enthusiastischer Software Engineer mit Schwerpunkten Webentwicklung, Apps und WordPress. Seit 2007 programmiert und vertreibt er wpSEO, das zugkräftige SEO-Plugin für WordPress-Blogs.