Das eigene Blog absichern

Aus LinuxUser 01/2009

Das eigene Blog absichern

© Gernot Krautberger, Fotolia

Textsicher

WordPress-Blogs lassen sich kinderleicht aufsetzen. Das wissen auch Spammer und Cracker. Mit ein paar Tricks lassen Sie die unerwünschten Besucher im Regen stehen.

Die freie Blogging-Software WordPress (Abbildung 1) ist eine populäre und viel genutzte Anwendung. Damit gerät sie aber auch in das Visier von unangenehmen Zeitgenossen. Die versuchen mitunter, Spam-Links zu hinterlegen oder fremde Blogs zu zerstören, um ihr Können zu zeigen. Zum Glück gibt es vielschichtige Möglichkeiten, eine Webapplikation abzusichern. Der Artikel beleuchtet einige davon, die Sie recht einfach umsetzen. Eine Gewichtung fällt schwer, weil Sicherheit immer von verschiedenen Faktoren abhängt: Dürfen Sie etwa auf die Konfiguration des Servers zugreifen, können Sie im Vorfeld die Sicherheit deutlich erhöhen.

Abbildung 1: Im Dashboard von WordPress 2.7 verwaltet der Administrator eingehende Beiträge.

Abbildung 1: Im Dashboard von WordPress 2.7 verwaltet der Administrator eingehende Beiträge.

Schlüssel und Tabellenpräfixe

WordPress [0] ist für seine einfache und unkomplizierte Installation bekannt. Die sorgt aber auch dafür, dass sich die Installationen gleichen, was Angreifern den unbefugten Zutritt erleichtert. Weicht eine Installation hingegen vom Standard ab, kann das potenziellen Eindringlingen den Zugang erschweren.

Den Zugang zur Datenbank konfigurieren Sie in der Datei wp-config.php. Sie definiert auch den Tabellen-Präfix, mit dem WordPress bei der Installation alle erforderlichen MySQL-Tabellen anlegt. Gewöhnlich handelt es sich um den Präfix wp_. Vergeben Sie an dieser Stelle immer einen vom Standard abweichenden Präfix. Achten Sie aber darauf, dass Sie nur Zahlen, Buchstaben und Unterstriche verwenden, denn andere Zeichen unterstützt MySQL nicht.

Ebenfalls in der Datei wp-config.php haben Sie die Möglichkeit, drei Konstanten zu definieren, um die Sicherheit von WordPress zu erhöhen. Die Software verwendet die drei Schlüssel an unterschiedlichen Stellen, um Informationen in den Cookies der Anwender besser zu verschlüsseln. Um willkürliche Zeichenketten zu erzeugen und so den Standard zu verändern, bietet WordPress einen Online-Service [1], der es Ihnen erlaubt, die drei Konstanten neu zu definieren (Abbildung 2).

Abbildung 2: Bei jedem Reload generiert die hier gezeigte Webseite drei neue geheime Schlüssel, die Sie in die Datei     <code srcset=

wp-config.php einsetzen können.” width=”300″ height=”98″ /> Abbildung 2: Bei jedem Reload generiert die hier gezeigte Webseite drei neue geheime Schlüssel, die Sie in die Datei wp-config.php einsetzen können.

Datei- und Verzeichnisrechte

Unterscheiden Sie die Rechte der Dateien und Verzeichnisse angemessen. Egal, ob Sie Dateien über das WordPress-Backend bearbeiten oder ob Sie diese per FTP ablegen, sollten Sie die Rechte entsprechend restriktiv setzen. Durch eingeschränkte Rechte erschweren Sie es Angreifern, die Dateien und Verzeichnisse zu verändern.

In der Regel sammeln Suchmaschinen bis zu einer gewissen Hierarchie-Ebene auf einer Webseite alle Informationen, an die sie herankommen. Mit Hilfe der Datei robots.txt im Wurzelverzeichnis der WordPress-Installation verhindern Sie unerwünschte Onlinedurchsuchungen. Die internen Verzeichnisse von WordPress sollten in keinem Suchergebnis auftauchen. Ein einfaches Disallow: /wp-admin/ genügt, und die Suchmaschinen verschonen den Ordner wp-admin.

Bei diversen konfigurierten Servern besteht unter Umständen die Möglichkeit, dass der Browser des Besuchers die Inhalte sämtlicher Ordner und Dateien der WordPress-Installation auflistet, wenn ein Besucher die Adressen direkt aufruft, etwa über http://meine_domain.de/wp-content/. Das unterbinden Sie, indem Sie in den jeweiligen Verzeichnissen eine leere Datei namens index.html ablegen. Alternativ leistet dies ein Plugin namens Secure WordPress[2].

Schleiern und schlüsseln

Apropos wp-content: Alle Erweiterungen, Dateiablagen und Themes legt WordPress gewöhnlich im Ordner wp-content ab. Oft schleusen aber Themes und Plugins eine Sicherheitslücke in das System. Seit Version 2.6 dürfen Sie diesem Ordner daher einen willkürlichen Namen geben und ihn an einer anderen Stelle ablegen. Eine Neuinstallation erledigt das einfach und schnell. Allerdings kann dieser Schritt zu Problemen mit Plugins oder Themes führen, da nicht alle Autoren den Pfad mit Hilfe der von WordPress bereitgestellten Konstanten und Funktionen abfragen. Um den Ordner neu zu definieren, ändern Sie einfach ein paar Konstanten in der Datei wp-config.php, wie es Listing 1 zeigt.

Listing 1
define('WP_CONTENT_DIR', ABSPATH . 'test'); // wp-content Verzeichnis
define('WP_CONTENT_URL', 'http://example.com/test'); // wp-content URL
define('WP_PLUGIN_DIR', WP_CONTENT_DIR . '/plugins'); // Plugin-Verzeichnis

Seit Version 2.6 von WordPress gibt es eine neue Möglichkeit, das Backend abzusichern: über den Zugriff via SSL. Die Abkürzung steht für Secure Sockets Layer, dabei handelt es sich um ein Verschlüsselungsprotokoll zur Übertragung von Daten. Unterstützt Ihr Webspace diese Möglichkeit, bedarf es nur einer kleinen Aktivierung in der wp-config.php, um SSL zu aktivieren. Setzen Sie die Konstante FORCE_SSL_LOGIN auf true, überträgt WordPress von nun an alle Daten im Backend verschlüsselt.

Bestehende Installationen

Bisher haben Sie erfahren, wie Sie eine neue Installation schützen, indem Sie Angreifern den Zugriff auf die Standards erschweren. Aber auch bestehende Blogs sichern Sie mit einigen Handgriffen ab – ganz ohne den Einsatz von Sicherheitsplugins.

Der Benutzername der Standardinstallation lautet wenig einfallsreich admin – wie jedermann weiß. Nach einer Installation sollten Sie diesen Nutzer löschen und einen neuen Administrator anlegen. Das erledigen Sie einfach im Administrationsbereich, tunlichst bereits nach dem ersten Login. Damit ändern Sie nicht nur den Nutzernamen, sondern auch die zugehörige ID, die WordPress automatisch vergibt – zwei Komponenten, die Angreifern andernfalls das Leben erleichtern.

Möchten Sie sehr große Werte für die ID verwenden, erweisen sich händische Änderungen im Backend als sehr aufwändig. WordPress zählt bei jedem neuen Nutzer schlicht um Eins hoch. Besser ändern Sie diesen Wert mit einem SQL-Statement wie in Listing 2. Alternativ setzen Sie das Plugin Suchen & Ersetzen[3] ein.

Listing 2
UPDATE `wp_usermeta` SET `user_id` = '815' WHERE `wp_usermeta`.`user_id` = 1;
UPDATE `wp_posts` SET `post_author` = '815' WHERE `wp_posts`.`post_author` = 1;
UPDATE `wp_links` SET `link_owner` = '815' WHERE `wp_links`.`link_owner` = 1;

Seine Versionsnummer gibt WordPress an vielen Stellen aus – im Backend, in den Feeds und im Theme. Jede Version hat spezifische Eigenarten und Fehler, daher sollten Sie Fremden keine Informationen über Ihre WordPress-Installation geben. Die einfachste Form, die Version aus allen Bereichen zu entfernen, stellt die Nutzung des Plugins Secure WordPress[2] dar. Lediglich das Backend muss die Versionsnummer kennen, weil neben WordPress selbst auch einige Plugins diese Information benötigen.

No Access mit .htaccess

Die Möglichkeit, eine Webpräsenz mit Hilfe der Datei .htaccess abzusichern, besteht auch für WordPress. Prinzipiell können Sie so jedes Verzeichnis schützen. Sie sollten die Anforderungen dabei allerdings genau prüfen, denn nicht selten leidet die Benutzbarkeit unter den Sicherheitseinstellungen. Betrachten Sie die Sicherheit von WordPress daher auch aus Sicht der Nutzer, nicht nur aus der des Administrators – zu restriktive Einstellungen machen eine WordPress-Installation mitunter praktisch unbenutzbar.

Dabei kommt dem Ordner wp-admin eine erhöhte Bedeutung zu, denn dort lagern die Dateien für den Zugriff auf das Backend. Wie erwähnt, verwaltet die Datei wp-config.php die Zugänge zur Datenbank (Abbildung 3), was sie besonders schützenswert macht. Legen Sie die Datei .htaccess im Verzeichnis wp-admin der WordPress-Installation ab und fügen Sie folgende Zeilen ein:

<files wp-config.php>
Order deny,allow
deny from all
</files>
Abbildung 3: Über die Datei     <code srcset=

wp-config.php verwalten Sie einige der wichtigsten Einstellungen von WordPress, unter anderem die Secret Keys.” width=”300″ height=”254″ /> Abbildung 3: Über die Datei wp-config.php verwalten Sie einige der wichtigsten Einstellungen von WordPress, unter anderem die Secret Keys.

Lässt die von Ihnen genutzte Serverumgebung eine offene Verzeichnisumgebung zu, empfiehlt es sich, die oben angesprochenen leeren index.html-Dateien im jeweiligen Verzeichnis abzulegen. Alternativ sperren Sie den Zugriff über den Eintrag Options -Indexes in der Datei .htaccess.

Auch die Ordner wp-content und wp-includes sind schützenswert. Das erschwert aber unter Umständen einigen Anwendern das Leben, da das eine oder andere Plugin Daten aus diesen Ordnern benötigt. Listing 3 zeigt eine einfache Variante, mit der Sie den jeweiligen Ordner schützen. Dadurch dürfen externe Anwender nur Bilder, Stylesheets und Javascript-Dateien aus den betroffenen Ordnern holen. Gegebenenfalls müssen Sie diese Liste erweitern und testen.

Listing 3
Order Allow,Deny
Deny from all
<Files ~ "js/tinymce/*.$">
Allow from all
</Files>
<Files ~ "\.(css|jpe?g|png|gif|js)$">
Allow from all
</Files>

Wie sicher ist mein WordPress?

Über Sicherheit und WordPress gibt es viel zu sagen und zu lesen. Wie aber überprüfen Sie die Sicherheit Ihrer Installation?

Das Team von Blogsecurity bietet die Online-Version des WP-Scanners [4] (Abbildung 4) schon eine geraume Weile an und aktualisiert diesen auch immer wieder. Nutzen Sie diese Möglichkeit und prüfen Sie Ihr Blog. Nicht selten steigen Hacker über Lücken in Themes ein, was viele Nutzer nicht wissen. Überprüfen Sie freie Themes oder den Autor: Wie seriös ist sein Blog, wie sehen die Kommentare zum Theme aus? Alternativ prüfen Sie die Sicherheit auch direkt im Backend von WordPress, indem Sie die Aufgabe an die Plugins WP Security Scan[5] oder WordPress Exploit Scanner[6] übergeben.

Abbildung 4: Die Sicherheit Ihres Blogs lässt sich auch ganz bequem mit Hilfe der Online-Version des WP-Scanners überprüfen.

Abbildung 4: Die Sicherheit Ihres Blogs lässt sich auch ganz bequem mit Hilfe der Online-Version des WP-Scanners überprüfen.

Sicherheit und Plugins

Das Stichwort Plugin ist ja bereits öfter gefallen: Da das Thema aber immer wieder aktuell ist, haben einige Autoren sehr nützliche Plugins für mehr Sicherheit entwickelt. Unter [7] finden Sie Hinweise und effektive Lösungen zu diesem Thema.

Fazit

Dieser kleine Ausflug zeigt bereits die Vielschichtigkeit des Themas WordPress-Sicherheit. Es fällt schwer, eine Lösung für alle Probleme zu geben. Für jeden Fall gibt es entsprechende Empfehlungen und Unterschiede in den Ansätzen. Denken Sie im Rahmen der Sicherheit aber immer an den Nutzer: Die Sicherheit muss im Einklang mit der Benutzung stehen, sperren Sie Ihre Leser und Autoren nicht aus!

Der Autor

Frank Bültge [10] arbeitet als Software-Entwickler im Bereich SAP, beschäftigt sich leidenschaftlich mit WordPress und entwickelt Lösungen in diesem Umfeld. Er ist Autor des Buches “Wordpress – Weblogs einrichten und administrieren” [11], gehört zum Team von WordPress Deutschland und organisiert im Team die Veranstaltung “Wordcamp meets Barcamp Mitteldeutschland 2009”.

Glossar

.htaccess

Die serverseitige Konfigurationsdatei legt Zugriffsregeln im Textformat für das Verzeichnis fest, in dem sie sich befindet inklusive der zugehörigen Unterverzeichnisse.

Infos

[0] WordPress Deutschland: http://wordpress-deutschland.org

[1] Authentication Unique Keys Generator: http://api.wordpress.org/secret-key/1.1/

[2] Secure WordPress (Plugin): http://bueltge.de/wordpress-login-sicherheit-plugin/652/

[3] Suchen & Ersetzen (Plugin): http://bueltge.de/wp-suchen-und-ersetzen-de-plugin/114

[4] WP-Scanner für mehr Sicherheit: http://blogsecurity.net/cgi-bin/wp-scanner.cgi

[5] WP Security Scan (Plugin): http://wordpress.org/extend/plugins/wp-security-scan/

[6] WordPress Exploit Scanner (Plugin): http://ocaoimh.ie/exploit-scanner/

[7] Plugins für mehr Sicherheit: http://bueltge.de/wordpress-plugin-mehr-sicherheit/637/

[8] WordPress sicher machen: http://wordpressbuch.de/wordpress-sicherer-machen/30/

[9] WordPress absichern: http://www.cywhale.de/sicherheit-wordpress-absichern/#content

[10] Homepage von Frank Bültge: http://bueltge.de

[11] Buch zu WordPress: Frank Bültge, “Wordpress – Weblogs einrichten und administrieren”, Open Source Press 2007, ISBN 978-3-937514-33-8, http://www.wordpressbuch.de

LinuxUser 01/2009 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben