Schwups und nun sind alle Bilder auf einmal weg – Teil 3!

Schwups und nun sind alle Bilder auf einmal weg – Teil 3!

Um die Security in WordPress stetig aufrecht zu erhalten, muss man permanent dabei bleiben und schauen wo Lücken sind. In Teil 1 und Teil 2 habe ich ja schon die ersten Schritte zur Aufrechterhaltung einer sicheren Internetseite angesprochen.
Hier in Teil 3 gehe ich einmal explizit auf die wichtigsten Ordner, Dateien und Informationen, die man unter WordPress absichern sollte, ein. Außerdem zeige ich, wie man einen IP-Bereich sperrt und wie ihr verhindert, dass eure Apacheversion ersichtlich wird.

  • Adminverzeichnis sperren
  • Zugang für xmlrpc sperren
  • Komplette IP-Bereiche sperren
  • Apache Version unkenntlich machen

Wie sperre ich Verzeichnisse?

WordPress hat einige offene Lücken, so kann man zum Beispiel bei jeder Website, hinter der man das CMS WordPress vermutet, einfach einmal versuchen den Login-Bereich zum Content-Management-System selbst aufzurufen.
Das kann man für gewöhnlich bei einer Standard-Wordpressinstallation mit

http://www.deinewebsite.net/wp-admin

machen. Die bessere Alternative wäre den Ordner umzubennen. Was aber einiges an Arbeit erfordert und schon ganz am Anfang der Installation notwendig ist.

Meiner Meinung nach sollten Unbefugte erst gar nicht so weit kommen. Eine Lösung, um die Security in Wordpres zu erhöhen, wäre einfach diesen Bereich zu sperren. Passwortschutz durch .htaccess und .htpasswd. Also gleich seitens des Servers.
Um eine htaccess-Datei zu erstellen öffnet man einen Texteditor und speichert die Datei als .htaccess. Diese Datei muss dann in das Root-Verzeichnis seiner Website hochgeladen werden.
In die .htaccess kommt folgender Beispielcode

Beispiel:

# Auth protect wp-login.php
 <Files wp-login.php>
 AuthName "Dieser Bereich ist Passwortgeschützt"
 AuthType Basic
 AuthUserFile /root/www/.htpasswd
 Require valid-user
 </Files>

<Files xxx> benennt die Datei, die gesperrt werden soll.
AuthName „“Nachricht, die angezeigt werden soll.
AuthType Basic Typ der Authentifizierung.
AuthUserFile Hier kommt die URL zur .htpasswd rein.
Require valid-user Die in der .htpasswd angegebenen Benutzer dürfen passieren.

Damit registrierte Benutzer sich einloggen können, muss eine .htpasswd erstellt werden. Die Prozedur ist die selbe wie bei der .htaccess-Datei.

In ihr wird für jeden Benutzer eine neue Zeile angelegt.

Beispiel:

user1:9fluR/1n73p4c
user2:xxxxxxxxxxx

user1 entspricht dem Benutzernamen gefolgt von einem Doppelpunkt, der Benutzername und Passwort trennt. Das Passwort muss verschlüsselt angegeben werden.
Hier findet ihr ein nützliches Tool, das euch euer Wunschpasswort verschlüsselt.

Somit hätten wir den ersten Teil zur Absicherung erreicht.
Um das dann noch eine Stufe sicherer zu machen, kann man mit einem Plug-In seinen WP-Login um ein Captcha und nur einer begrenzten Anzahl an Log-In-Versuchen bereichern.

Hierfür empfehle ich CaptchaByBestWestSoft. Damit ist einmal sicher gestellt, dass die Authentifizierung durch einen Menschen geschieht und dass man nur eine begrenzte Anzahl an Versuchen hat sich einzuloggen.

Wordpress - Captcha - PlugIn


Als nächstes sollte man den Zugriff auf die xmlrpc.php sperren. Diese Schnittstelle dient dazu, WordPress extern zu steuern.
Und da haben wir schon das Problem. EXTERN!
Sprich, jeder könnte einen Zugriff über diese Datei zu meinem Blog machen.
Betrachtet man den Serverlog seines Anbieters, wird man festellen, dass tagtäglich unbekannte Programme, Nutzer oder Tools versuchen sich Zugang zu dieser Datei zu verschaffen. Da läuft halt auf irgendeinem Server ein Skript und das probiert in unterschiedlichen Intervallen Zutritt zu bekommen.
Damit niemand von außerhalb auf die xmlrpc zugreifen kann, muss man einfach folgendes in seine .htaccess einbinden.

# close access to xmlrpc
 <Files xmlrpc.php>
 Order Deny,Allow
 Deny from all
 </Files>

Jetzt hat niemand mehr Zugriff auf diese Datei von außerhalb.


Zu guter Letzt kann man aber auch komplette Bereiche einer IP-Adresse oder sogar Besucher aus anderen Ländern sperren.
Ich hatte eine Zeit lang tagtäglich hunderte Zugriffe auf unterschiedliche Verzeichnisse für unterschiedliche Content-Management-Systeme auf meiner Website. Also ein Skript, das nach dem „Trial-And-Error Prinzip“ einfach mal nach einer Lücke gesucht hat.
Ursprungsland war China und die der IPBereich war von einem bestimmten Provider. Um alles, was über diesen Provider läuft, zu sperren habe ich folgendes in meine .htaccess eingebaut.

# BEGIN Brute Force Login Protection
 #<Files "*">
 #order deny,allow
 #deny from 125.86.
 #</Files>
 # END Brute Force Login Protection

Somit wurde allen Nutzern, die den IP-Bereich 125.86.0.0. – 125.86.255.255 benutzen, der Serverstatus 403 / Verboten / angezeigt.
Der Zutritt zur Website ist nicht möglich.



Zum Abschluss für alle Paranoiden, wozu ich mich natürlich zähle, ist es die Serverversion zu verstecken. Das geht mit folgender Zeile, die natürlich wieder in die .htacces-Datei gehört.
# Disable server signature
ServerSignature Off

 

 

 

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*