Limit Login Attempts: selbst ausgesperrt

Blogs, die auf dem wohl verbreitetsten Blogsystem WordPress laufen, sind natürlich äußerst beliebte Ziele von Crackern. Bots versuchen, durch wiederholtes Ausprobieren von Benutzernamen und Passwörtern in die Systeme einzudringen. Diese Brute-Force-Attacken sind weit verbreitet.

Es gibt verschiedene Möglichkeiten, sich zu schützen, die ich in diesem Rahmen nicht alle besprechen möchte. Sicherlich fängt der Schutz damit an, dass man keinen Benutzer admin im System hat und natürlich keine Passwörter wie password oder 1234 benutzt.

Ein bekanntes und beliebtes, wenn auch inzwischen veraltetes Plugin ist Limit Login Attempts, das eben diese Brute-Force-Attacken abzuwehren versucht. Wie es das macht, beschreibt Vladimir Simović in seinem Blog perun.net.

Dumm nur, wenn man sich selbst ausschließt. Es ist peinlich, aber ich muss zugeben: mir ist das gestern passiert. Irgendwie habe ich wohl drei- oder viermal ein altes, nicht mehr gültiges Passwort eingegeben, und schon kam ich nicht mehr ins Backend hinein. Vladimir empfiehlt, entweder die Zeitsperre abzuwarten oder eine andere IP-Adresse zu verwenden. Dazu müsste man im Falle eines DSL-Modems die Internet-Verbindung trennen und sich neu einloggen. Im Falle eines DSL-Routers müsste man vermutlich den Router neu starten, um eine andere IP zu erhalten, oder?

Ich schlage eine weitere Möglichkeit vor. Sie setzt allerdings voraus, dass man Zugriff auf die WordPress-Datenbank hat, und den hat man nur bei einem selbst gehosteten WordPress-Blog, nicht aber bei einem Blog auf wordpress.com. Außerdem eignet sich diese Methode auch nur für versierte Anwender. Und zwar löscht man einen Eintrag in der Datenbank (zum Beispiel über phpMyAdmin, falls der Webhoster es zur Verfügung stellt oder man es selbst installiert hat).

Im Detail: Tabelle wp_options, Feld option_name, Eintrag limit_login_lockouts, Feld option_value, und hier den Eintrag aus <MEMO> löschen.

Allerdings gibt es Plugins mit weiteren Möglichkeiten, sein WordPress-Blog sicher zu machen. Mehrere werden auf t3n.de vorgestellt. Welche man einsetzen will, mag jeder für sich entscheiden.

Die Syntax im WordPress-Title-Tag optimieren

Meta-Angaben, Seitentitel usw. für ein WordPress-Blog befinden sich ja im Head-Bereich der Theme-Datei header.php. Im Standardfall werden mittels WordPress-Funktionen der Blogname und der jeweilige Seitentitel im Browser ausgeben, was im Quelltext so aussieht:
<title><?php bloginfo('name'); ?> <?php wp_title(); ?></title>.

Wenn man jedoch nur den Titel, nicht aber den Blognamen ausgeben möchte und in den Quelltext
<title><?php wp_title(); ?></title>
schreibt, hat man immer im ausgegebenen Titel ganz links ein Leerzeichen. Vielleicht nicht tragisch, aber auch nicht wirklich sauber.

Gefunden habe ich eine Lösung im Blog des Webentwicklers Oliver Baty aus Chicago. Nein, eigentlich präsentiert er gleich mehrere Lösungen in einem einzigen Blogartikel, aber eine hat mir besonders zugesagt. Man muss nur wenige Zeilen Code in die functions.php im Theme-Ordner einfügen, um die Leerzeichen loszuwerden:

// Leerzeichen im Titel entfernen
function af_titledespacer($title) {
    return trim($title);
}
add_filter('wp_title', 'af_titledespacer');

Quelle: ardamis.com/[…]/optimizing-the-syntax-in-the-wordpress-title-tag/

Angriffe auf WordPress-Blogs minimieren

Seit etwa Februar 2013 finden im diesmal extrem großen Stil Angriffe per Botnetz auf WordPress-Blogs statt. Darüber ist viel geschrieben worden, aber ein paar eigene Erkenntnisse möchte ich noch beisteuern.

IP-Adressen der Angreifer per .htaccess-Datei (im Falle eines Apache-HTTP-Servers) zu sperren hat keinen Sinn, es wurden schon über 90.000 verschiedene mit weltweiter Herkunft gezählt. Oft wird das Plugin »Limit Login Attempts« empfohlen. Diese Erweiterung verhindert Brute-Force-Attacken. Sie ist leicht zu konfigurieren und gehört für mich inzwischen als Muss zu jeder WordPress-Installation.

An vielen anderen Schwachstellen setzt »Better WP Security« an. Was mir besonders gut gefällt, ist eine Verschleierung des Login-Bereiches: über die gewohnten Dateinamen ist das Login nach entsprechender Einstellung nicht mehr erreichbar. Ferner kann man zum Beispiel die Anmelde-Möglichkeit auf bestimmte Tageszeiten begrenzen, das Tabellenpräfix ändern, die Benutzer-ID »1« (= standardmäßige ID des Administrator-Accounts) in eine andere Zahl umschreiben, die wichtigsten Dateien und Verzeichnisse per .htaccess-Einträge gegen Zugriff abriegeln und so weiter. Die Optionen sind wirklich beachtlich, aber man sollte auf jeden Fall vor irgendwelchen Änderungen ein Datenbank-Backup machen. Außerdem kann man sich im schlimmsten Fall selbst vom Blog aussperren. Man muss dann die .htaccess-Datei bearbeiten. Also bitte ein wenig Vorsicht walten lassen!

Es wird von den Angreifern übrigens nicht nur der Benutzername »admin« verwendet, wie man in manchen Blogartikeln lesen kann, sondern auch »Admin«, »administrator«, »Administrator«, »adminadmin« und womöglich noch weitere Variationen. Das Wichtigste ist also, keinen Benutzernamen zu verwenden, in welchem »admin« in irgendeiner Form vorkommt.

Um aber Angreifer gar nicht bis zum Anmeldebereich kommen zu lassen, habe ich mich entschieden, die Datei wp-login.php in Hauptverzeichnis des Blogs nur für meine eigene IP-Adresse freizugeben – genauer gesagt: für den IP-Bereich meines Internet-Service-Providers. Dazu sind nur ein paar Zeilen in die .htacess-Datei einzutragen:

# Adminbereich absichern
<Files wp-login.php>
Order Deny,Allow
Deny from all
Allow from xx.xxx.
</Files>

Anstelle von »xx.xxx.« trägt man natürlich die ersten zwei Bytes des IP-Bereiches seines Providers ein. Hier kann man seine IP-Adresse ermitteln:
www.torstenkelsch.de/deine-ip.php

Weitere Informationen:
t3n.de/news/massive-angriffswelle-[…]
www.heise.de/security/meldung/Botnet-attackiert-Wordpress-[…]
www.golem.de/news/security-angriff-gegen-admin-konten-[…]

Colophon in WordPress-Themes

In manchen WordPress-Themes, zum Beispiel im Standard-Theme Twenty Eleven, findet man die ID colophon in style.css bzw. in footer.php. Es geht offensichtlich um die Angaben im Fußbereich, aber ich hatte das Wort Colophon, oder in deutsch Kolophon, noch nie gehört und recherchierte im Netz und in Wörterbüchern.

Der Begriff stammt aus dem Verlagswesen. Schon im Mittelalter wurde die Druckermarke, also das Signet des Druckers, auf der letzten Buchseite eingedruckt – in der Frühzeit des Buchdrucks war der Drucker oft gleichzeitig der Verleger und auch Buchhändler. Später wurden die Druckermarken durch die Verlagssignete ersetzt. Der Kolophon kann entweder auf der Rückseite des Titelblattes oder ganz am Ende des Druckwerkes stehen. Er enthält heute üblicherweise Informationen über Inhalt, Verfasser, Ort, Zeit, Hersteller, Auftraggeber und Produktionsdetails. Oft sind die Angaben auch aufgeteilt, sodass zum Beispiel Angaben zum Druck vorne platziert sind und hinten Kurzlebensläufe der Autoren oder Dankesworte zu finden sind.

Insofern kann ein Kolophon auch auf einer Website auftauchen. Es ist zu unterscheiden vom Impressum, das Pflichtangaben über den Herausgeber der Website, Kontaktdaten und oft auch weitere gesetzlich vorgeschriebene Angaben enthalten muss. Bei manchen Geschäftsbetrieben oder Freiberufen muss zum Beispiel die zuständige Aufsichtsbehörde genannt werden.

Im Kolophon hingegen findet man manchmal Informationen zu (X)HTML und CSS, Angaben zur Benutzerfreundlichkeit, verschiedene Qualitätssiegel oder einen Hinweis auf das eingesetzte Content-Management-System. Sehr gut eignet sich für all dies der Fußbereich. Der Betreiber der Website oder die Autoren des Blogs stellen sich aber oft auf einer ganzen Seite vor, die etwa Über uns oder About us genannt wird.

WordPress liegt somit nach meinem Verständnis nur teilweise richtig damit, Colophon zu dem Fußbereich zu sagen. Andere Inhaltsverwaltungs-Systeme nennen es allgemeiner Footer.

Quellen:
http://blog.templaterie.de/about/
Duden-Wörterbuch
Langenscheidt-Wörterbuch
http://de.wikipedia.org/wiki/Kolophon_(Schriftstück)
http://de.wikipedia.org/wiki/Geschichte_des_Buchdrucks

Einfache Datensicherung in WordPress

Ich habe lange nach einem Datensicherungs-Plugin für WordPress gesucht. Vor einiger Zeit fand ich DBC Backup, mit dessen Hilfe man Datenbank-Backups auf dem Webserver in regelmäßigen Zeitabständen speichern kann. Man kann auch zwischen verschiedenen Kompressions-Methoden wählen, je nachdem, was vom Server unterstützt wird. Und ein Backup lässt sich auch von Hand anstoßen.

Der Nachteil ist allerdings, dass keine direkte Download-Möglichkeit angeboten wird, denn manchmal möchte man ja direkt aus WordPress heraus die Datenbank auf den PC speichern.

Doch kürzlich habe ich ein Datenbank-Backup-Plugin gefunden, das mich rundum zufriedenstellt. Es nennt sich PressBackup und kann auf den Webserver speichern, aber auch nach Dropbox oder Amazon S3. Oder für 10 USD pro Monat nach PressBackup.com. Dies bietet sich an, wenn man sehr große Datenmengen sichern und viele Backup-Versionen gespeichert lassen will (bis zu 50 möglich).

Gefunden habe ich den Tipp zu PressBackup im Blog von Matthias Pabst. Vielen Dank!

Nachtrag:
Einen weiteren heißen Tipp gab Trickser (siehe Kommentarbereich). Danke dafür!

Schriftgröße im HTML-Editor von WordPress 3.x

Mir persönlich – und vielleicht nicht nur mir – ist die Schriftgröße des HTML-Editors im Dashboard von WordPress 3.x zu klein. Mit ein paar Zeilen PHP-Code kann man die Schrift aber vergrößern. Wie das geht, habe ich hier gefunden: webdesign-passau.com. Danke, klappt wunderbärchen!

Nachtrag 12. Mai 2015: Die Website bzw. deren ursprünglichen Inhalte existieren nicht mehr.

Von Serendipity nach WordPress

WordPress bietet von Hause aus keine Möglichkeit zum Import der Daten aus dem Blogsystem Serendipity. Eigentlich seltsam, da Serendipity (S9Y) ja nicht gerade unbekannt und ein sehr gutes System ist. Nun ja, vielleicht so gut, dass selten jemand nach WordPress wechselt. Meine eigenen Gründe habe ich ja im letzten Artikel erklärt.

Ich muss jetzt mein Blog nur wieder besser gegen Spam absichern. Antispam Bee von Sergej Müller leistet zwar super Dienste, weil es äußerst zuverlässig ausfiltert. Aber gegen Spambots werde ich ein zusätzliches Plugin einsetzen, nämlich GrowMap Anti-Spambot Plugin, das ein Kästchen einfügt, welches ein menschlicher Kommentator anklicken muss und welches aber für Bots unsichtbar ist. So landen die Spamkommentare gar nicht erst im System.

Doch zurück zum Blog-Import. Ich hatte nach längerer Suche per Suchmaschine doch noch ein Plugin einschließlich Anleitung in englischer Sprache gefunden, mit dem der Import für die 3er-Versionen von WordPress einwandfrei geklappt hat und leicht durchzuführen war, und zwar bei Abdussamad.com.

WordPress 3.3

WordPress 3.3 ist erschienen, und es bringt einige Verbesserungen. Das Dashboard kommt wesentlich aufgeräumter daher; das einzige Medien-Symbol startet jetzt den Uploader für alle Dateitypen und das neue Drag-and-Drop-Interface macht Hochladen zum Kinderspiel; und wenn ich das richtig sehe, können Plugin-Entwickler Symbole in der dunkelgrauen Menüleiste am oberen Rand platzieren – ob das vorher nicht auch schon möglich war, weiß ich allerdings nicht.

Das Plugin Cachify (smarter Cache für WordPress) von Sergej Müller zeigt jedenfalls jetzt ein Icon für Cache leeren an. Das ist wirklich praktisch, denn vorher musste man immer erst umständlich zur Plugins-Kategorie gehen.

Hier sind informative Artikel über WordPress 3.3, die ich im Netz gefunden habe:
Pro-Linux.de
Golem.de
WordPress Deutschland

Schnelle Bereinigung für rel=”category tag” in WordPress

Neulich traf mich ja fast der Schlag, als sich mein privates WordPress-Blog (Version 3.2.1) als nicht mehr valide gegen den W3C-Markup-Validator herausstellte. Schuld war eine Mikroformat-Annotation: rel=”category tag”. Über die functions.php im Theme-Ordner kann man das bereinigen.

Bei Whitney Krape fand ich die Anleitung und den Code, den man einfügen muss:

add_filter( 'the_category', 'add_nofollow_cat' );
function add_nofollow_cat( $text ) {
$text = str_replace('rel="category tag"', "", $text); return $text;
}

Sergej Müller: neues WP-Plugin für datenschutzkonforme Statistiken

Sergej Müller stellte heute Morgen in seinem Blog sein neues Plugin »Statify« für das Blogsystem WordPress vor. Google Analytics steht ja in Deutschland unter starkem Beschuss von Datenschützern, weil es IP-Adressen speichert und Daten von Deutschland in die USA sendet. »Statify« hingegen steht im Einklang mit den deutschen Daten­schutz­bestim­mungen.

Von WordPress-Kenner Sergej Müller stammen ja schon mehrere äußerst professionelle und brauchbare Plugins, zum Beispiel das bekannte und beliebte Anti-Kommentarspam-Tool »Antispam Bee«. Und auch »Statify« ist wie gewohnt kostenlos, aber natürlich ist es immer nett und auch fair, wenn zufriedene Benutzer als Dankeschön eine Spende per PayPal oder Flattr geben.

Was ich gut finde, ist, dass die Datenbank-Tabelle, in der die statistischen Daten gespeichert werden, sich in bestimmten Abständen selbsttätig reinigt. Es muss ja schließllich nicht sein, dass sie durch uralte Statistiken unnötig aufgebläht wird.

Statify: Plugin für Datenschutz-konforme Statistik in WordPress


Torsten Kelsch