In diesem Blog-Post beschreibe ich, wie du deinen WordPress Blog absichern kannst. Ich werde jedoch nicht weiter darauf eingehen, dass man sich nicht jedes Plugin installieren sollte, sein Passwort nicht weitergeben und nicht überall das selbe Passwort verwenden sollte. Wobei dies natürlich auch Sicherheitsrelevante Dinge sind!!!
1.) WordPress auf dem aktuellen Stand
Um ein Mindestmaß an Sicherheit zu gewährleisten, solltest du folgende Dinge regelmäßig Updaten:
– 1.1.) WordPress
– 1.2.) Theme
– 1.3.) Plugins
Seit “WordPress 3” kannst du die genannten Punkte automatisch aktualisieren, mit einem klick auf “Dashboard” -> “Aktualisierungen” kommst du auf folgende Seite…
2.) Sicherheits-Plugin installieren
2.1.) Secure WordPress:
http://wordpress.org/extend/plugins/secure-wordpress/
Ein Passwort sollte aus mindestens 8 Zeichen (je mehr desto besser) bestehen. Dabei sollten Ziffern und Buchstaben (Groß und Kleinschreibung) und Sonderzeichen verwendet werden und es sollte wenn möglich einmalig sein.
z.B.: zwei+acht=zehn (Bitte nicht verwenden)
2.2.) WP Security Scan:
http://wordpress.org/extend/plugins/wp-security-scan/
Untere dem neuen Menü-Punkt “Security” kannst du nun den “Security“-Check durchführen. Dabei solltest du darauf achten, dass du die “table_prefix” änderst. Danach solltest du auch noch den “Security” -> “Scanner” ausprobieren…
… und ggf. die Dateiberechtigungen anpassen.
3.) regelmäßig Backups durchführen
3.1.) Serverseitig
Unter Ubuntu / Debian kannst du dafür folgendes Programm verwenden…
aptitude install automysqlbackup
Einstellungen für das Programm:
/etc/default/automysqlbackup
Standard Backup-Verzeichnis:
ls /var/lib/automysqlbackup
daily/ monthly/ weekly/
3.2.) Backup per WordPress-Plugin
WP-DBManager:
http://wordpress.org/extend/plugins/wp-dbmanager/
4.) Suchmaschinen nicht alles zeigen
Durch die Datei “robots.txt” kann man theoretisch regeln, was von Suchmaschiennen indiziert wird. (Wenn du bestimmte Verzeichnisse wirklich schützen möchtest, musst du dies über eine .htaccess regeln.)
Hier mein Beispiel: http://suckup.de/robots.txt
5.) Secret-Key hinzufügen
Mit folgendem Link kannst du dir einige Zufalls-Schlüssel für WordPress erstellen lassen, diese Schlüssel musst du dir nicht merken, die neue Schlüssel sind vorrangig für die Multiuser-Funktionalität und werden klassisch wenig genutzt, haben jedoch auch keinen Nachteil.
https://api.wordpress.org/secret-key/1.1/salt/
Die Keys musst du anschließend in folgende Datei speichern…
/var/www/wordpress/wp-config.php
6.) “wp-config.php”-Datei schützen
Zudem sollte der erwähnten Datei, folgende Rechte vergeben werden, da dort auch das MySQL Passwort abgespeichert ist.:
chmod 640 wp-config.php
7.) SSL-Verschlüsselung für den Admin-Bereich
Folgendes kannst du auch wieder in die “wp-config.php“-Datei kopieren, so dass der Admin-Bereich auf “https” umgeleitet wird…
define('FORCE_SSL_ADMIN', true);
PS: Wer https-Anfragen auf http per Nginx umleiten möchte, außer “wp-*” kann folgendes in der Nginx-Konfiguration eintragen. Dies dürfe die wenigsten betreffen, wollte es jedoch notiert haben. ;-)
## https nur fuer wp-*
if ($request_uri !~* "/wp-") {
rewrite ^/(.*)$ http://$host/$1 permanent;
}
8.) “wp-admin”-Verzeichnis schützen
8.1.) .htaccess-Datei selber anlegen
Wie du dies realisieren kannst, habe ich bereits in einen anderen Blog-Post beschrieben.
-> http://suckup.de/blog/2010/02/09/htaccess-mod-rewrite/
8.2.) .htaccess per WordPress-Plugin
AskApache Password Protect:
http://wordpress.org/extend/plugins/askapache-password-protect/
9.) Login Versuche limitieren
Nachdem wir bereits abgestellt haben, dass angezeigt wird, wenn wir unser Passwort oder Benutzernamen falsch eingegeben haben… können wir mit diesem Plugin limitieren wie viele Login-Versuche von einer IP-Adresse zugelassen sind.
Limit Login Attempts:
http://wordpress.org/extend/plugins/limit-login-attempts/
Hier gibt es noch mehr Infos: