WordPress Sicherheit – Teil 1

WordPress Sicherheit Teil 1

Das ist der erste Beitrag einer Artikel-Serie zum Thema Sicherheit beim Betrieb einer WordPress-Webseite. Darüber wurde und wird viel im Internet geschrieben, und ich habe in der Vergangenheit immer versucht, daraus den für mich wesentlichen Extrakt zu ziehen – den ich nun gerne hier mit dir teilen möchte.

Warum muss ich mich um WordPress Sicherheit kümmern?

Denn … ist doch alles so einfach: Domainnamen ausdenken, Provider suchen, Webspace-Paket kaufen, Domain registrieren und los geht’s… Schnell noch per „one-Click“ das WordPress-Paket installiert und schon kann ich doch mit dem Bloggen starten, oder?

So denken wohl viele, so dass da draußen problemlos für die Angreifer ein Haufen der WordPress-Installationen gehackt, verunstaltet, zerstört oder gar durch Installation von Schadsoftware missbraucht wird. Ist der Schaden erstmal da, fällt dem geplagten Blogger vermutlich schnell auf, dass er nicht nur das Thema Sicherheit sträflich vernachlässig hat – er hat nicht einmal ein BackUp seiner Webseite oder WordPress-Installation gemacht – und muss jetzt alles wieder von Null an aufsetzen… 🙁

Damit dir und mir das nicht passiert, setzen wir uns hier und jetzt mit dem Thema Sicherheit mal ein wenig ausführlicher auseinander. Es sollte dir aber schon jetzt klar sein, dass eine 100%ige Sicherheit eine reine Illusion ist. Du kannst es den diversen, bösen Angreifern nur erheblich schwerer machen, als wenn du gar nichts unternimmst, á la „mir wird schon nichts passieren“ oder „wer sollte schon was von mir wollen?“…

BackUp der WordPress Installation ist Pflicht

Wie schon in der Liste meiner bevorzugten PlugIns kurz – aber eindringlich bemerkt –, ist ein BackUp-PlugIn ein „Muss“ – und zwar schon direkt nach der WordPress Installation auf deinem neuen Webspace. Ein funktionierendes BackUp, das im Schadensfall deine Webseite wieder online bringt, ist nicht nur nach einem erfolgreichem Hack gegen deine Webseite von Nutzen, sondern auch dann, wenn du dir durch die Installation eines problembehafteten PlugIns oder durch ein schiefgelaufenes Update dein WordPress mal wieder zerschossen hast: Die Ursachen zum Ausfall deiner WordPress-Webseite sind vielfältig – ein BackUp lässt dich deshalb besser und ruhiger schlafen, glaube mir.

Sicherheit vor der Installation

„Was meine ich damit?“ denkst du jetzt vielleicht… Ja, selbst wenn du dein WordPress absolut wasserdicht und penibel abgesichert hast, nützt dir das gar nichts… wenn der Angriff auf die Infrastruktur deines Webspace-Providers abzielt und dort z.B. beim verwendeten Webserver eine Schwachstelle ausgenutzt wird und dadurch z. B. veraltete Komponenten (PHP, Datenbanken, etc.) gezielt ausgehebelt werden: Dann haben die bösen Buben Zugriff auf alle deine Daten, ohne über dein sorgfältig konfiguriertes und abgesichertes WordPress kommen zu müssen. Das Szenario sollte dir verdeutlichen, dass deine Providerwahl ebenso wichtig ist, wie der Rest der ganzen Maßnahmen. Vielleicht kaufst du dir doch ein Premium-Hostingpaket für ein paar Euros mehr im Monat bei einem WordPress-affinen Hoster, als zum Billigheimer zu gehen, der dir ein Webpaket mit 10 Inklusivdomains für nur 2,49 €/Monat anbietet: Sichere Infrastruktur und deren Pflege hat ihren Preis – das alles bekommst du eben nicht für geschenkt.

Sicherheit außerhalb von WordPress

In dem Verzeichnis, auf das deine Domain zugreift (bzw. wenn du mehrere hast, in jedes der Rootverzeichnisse) solltest du die .htaccess-Datei anpassen. Hierüber steuerst du, auf welche Datei von außerhalb deiner WordPress Installation zugegriffen werden kann, d.h. was der Webserver zulassen soll und was nicht. Und diese Möglichkeiten nagelst du am besten mit dem folgenden Eintrag zu – sofern dein Webhoster als Webserver den Apache einsetzt, denn dann sind die folgenden Tipps für dich bestimmt (wenn er etwas anderes einsetzt, hilft dir dabei Google weiter):

RedirectMatch 403 \.(htaccess|htpasswd|errordocs|logs)$

Damit verhinderst du, dass jemand von außerhalb auf die oben genannten Dateien, die jeweils mit einem Punkt beginnen, Zugriff erlangt – allen voran die .htaccess.

<FilesMatch „^(wp-config\.php|php\.ini|php5\.ini|readme\.html|xmlrpc\.php)“>
Order Allow,Deny
Deny from all
</FilesMatch>

Hiermit unterbindest du den Zugriff u.a. auf die wp-config.php, in der das Zugriffspasswort und diverse Sicherheitsschlüssel für deine Datenbank abgelegt sind. Außerdem wird hiermit auch gleich der Zugriff auf die xmlrpc.php unterbunden, die eigentlich den Remotezugriff auf die WordPress-Installation zulässt sowie die Pingbacks ermöglicht. Sie ist aber auch ein beliebtes Einfallstor für Hacks, da darüber beliebig viele Login-Versuche – quasi am Backend-Login vorbei – möglich sind. Wenn du diese Features unbedingt brauchst, dann musst du den letzten Eintrag (xmlrpc\.php) zusammen mit dem „oder“ („|“) rauslöschen.

Falls du nicht möchtest, dass ein Angreifer einfach die Version deines Webservers ermitteln kann, schreibst du noch die folgende Zeile mit dazu:

ServerSignature Off

Wenn du mehr zur .htaccess und den damit möglichen Optionen sowie der richtigen Syntax der Eintragungen wissen willst, hilft dir die Apache-Dokumentation zur .htaccess sicher noch viel weiter. Wenn nicht… – auch gut, ich versuche es ja hier für dich zu komprimieren… 😉

Wo liegt denn die .htaccess-Datei?

„Und – wie komme ich an die .htaccess-Datei?“ fragst du jetzt vielleicht… Na, ganz einfach über einen FTP‑Client, der den FTP‑Zugang zu deinem Webspace nutzt und mit dem du Dateien in deinen Webspace raus und rein kopieren kannst – wie bei jedem anderen „Filemanager“ auch. Den FTP‑Zugang musst du dir zuerst im Backend deines Webhosters konfigurieren (d.h. Nutzer anlegen bzw. ermitteln, Passwort hinterlegen oder ermitteln). Danach installierst du dir einen FTP-Client (Google hilft dir auch hier dabei, einen zu finden), unter Windows z.B. FileZilla und trägst die FTP-Adresse deines Webspaces (die musst du ggf. auch im Backend deines Webhosters ermitteln) sowie den FTP-Nutzer im Client ein. Das Passwort gibst du beim Aufbau der Verbindung ein und … schwupps, schon kannst du auf die Dateien deiner WordPress-Installation remote zugreifen. Falls du nicht schon darauf landest, wechsele per Click nun in das Verzeichnis deiner WordPress-Installation und suche nach der .htaccess-Datei. Die lädst du dir dann (per drag & drop) herunter und benennst sie auf deinem lokalen Rechner erstmal um, da er vermutlich mit Dateien mit einem führendem Punkt („.“) nicht umgehen kann.
Jetzt lädst du die Datei in einen Editor (z.B. Notepad++) und fügst die oben aufgeführten Zeilen en Block ein und speicherst die so angepasste Datei wieder ab. Per drag & drop schiebst du die Datei mit dem FTP-Client wieder in das Verzeichnis mit der ursprünglichen .htaccess-Datei zurück. Die alte Datei benennst du nun in z. B. „.htaccess-old“ um und die neue, gerade hochgeladene benennst du danach in .htaccess um. Fertig.

Fortsetzung folgt … 😉

Schreibe einen Kommentar