Das Absichern von WordPress mit Plugins ist immer wieder ein gern gesehener Artikel in den meisten Blogs. Einen anderen Weg der zusätzlichen Sicherheit kann mit Hilfe von dynamischen DNS, dem Webserver und einem Eintrag in einer Datei erreicht werden.
Von Wegelagerern und Loginversuchen
Einem Autor mit WordPress als Basissystem für seine Artikel muss ich nicht erklären wie zeitraubend und nervend die Loginversuche an der eigenen WordPressinstallation sind. Es vergeht eigentlich kein Tag, an welchem ich nicht eine Mail mit dem Inhalt erhalte, dass eine IP X versucht hat sich mit dem Namen admin, esmeralda oder kaesetoast anzumelden und diese IP nun gesperrt ist für bestimmte Sternzeiten in den unendliche Weiten.
Plugins wie z.B. iThemes Security (formerly Better WP Security), BulletProof Security und All In One WP Security & Firewall haben eine große Fangemeinde und auch Ihren reellen Nutzen. Auch ich habe natürlich eines dieser Werkzeuge installiert.
Ich wäre verrückt dies nicht zu tun und es wäre vermessen diesen Konfigurations- und Überwachungsteil zu Fuß unter WordPress zu stemmen.
Leider beginnen jene Plugins auf der Ebene der Webanwendung, verständlich, da ein Zugriff auf Werkzeuge wie mod_security, fail2ban usw bei einem shared Hosting nicht gegeben ist.
Ich von meiner Seite aus finde, dass man auf der Ebene des Servers selbst schon etwas machen kann, auch bei einem shared Hosting. Diese Aussage gilt vor allem, wenn man nur von seinem Heimnetz aus die Artikel in das Blog einfliessen lässt.
tl;dr
Es wird mir Hilfe von dynamischen DNS nur noch bestimmten Clients der Zugang erlaubt und für alle anderen Nutzer der Zugang zu der Anmelde- und den Administrationsseiten gesperrt.
Es ist nicht nur möglich eine Zugangsberechtigung zu setzen, sondern anhand einer Wildcard ist es möglich, dass alle Autorengeräte Zugriff auf die Anmeldemaske und Administrationsseiten haben.
Dies ist ein Teil eines Sicherheitskonzeptes und ermöglicht schon einmal das erste aussieben der Spreu, da der Angreifer nicht über die Sicherheitsfunktion und den aufzulösenden Domainnamen informiert ist.
Dynamisches DNS
Dynamisches DNS oder DDNS ist eine Technik, um Domains im Domain Name System dynamisch zu aktualisieren. Der Zweck ist, dass ein Rechner nach dem Wechsel seiner IP-Adresse automatisch und schnell den dazugehörigen Domaineintrag ändert. So ist der Rechner immer unter demselben Domainnamen erreichbar, auch wenn die aktuelle IP-Adresse für den Nutzer unbekannt ist.
Wikipedia.de : Dynamisches DNS
Wer nicht wie ich bei einem Webhoster ist, welcher eine Möglichkeit für einen eigenen dynamischen DNSeintrag verfügt, muss sich bei einem freien Anbieter, wie z.B. no-ip.com anmelden. Es bieten eigentlich alle „neumodischen“ Router einen Client an, welcher es ermöglicht einen Anbieter für dynamisches DNS zu benutzen. Auf der Firewallseite ist dies eigentlich der Normalfall, wenn nicht gar die Regel, pfSense DDNS mit All-inkl.
Mit der im Artikel erwähnten Firewallkonfiguration kann man sich über ein VPN zuhause an seiner WordPressinstallation anmelden. Ist dies nicht der Fall, nutzt man unterwegs für ein Smartphone oder Tablet eine App. Die Suche nach dyn dns im Playstore, sowie im Applestore geben einige Clients aus, wenn nicht gar selbst der Anbieter des dynamischen DNS.
WordPress Sicherheit durch Dynamisches DNS
Nachdem man sich nun für einen dynamischen Namen entschieden hat, warum denke ich nur gerade an Batman, wird dieser dann wie folgt in die Datei .htaccess im Hauptverzeichnis der WordPressinstallation eingetragen.
!! Vor der Bearbeitung der Datei ein Backup erstellen !!
RewriteEngine on RewriteCond %{REQUEST_METHOD} POST RewriteCond %{HTTP_REFERER} !^http://(.*)?DEINEDYNDNSDOMAIN.ORG [NC] RewriteCond %{REQUEST_URI} ^(.*)?wp-login.php(.*)$ [OR] RewriteCond %{REQUEST_URI} ^(.*)?wp-admin$ RewriteRule ^(.*)$ - [F]
Hier können natürlich auch mehrere Domains oder IP-Adressen eingetragen werden, falls man eine feste zugewiesene Adresse durch den ISP besitzt.
( In dem Fall kann man auch gleich eine Domain auf die IP registrieren ツ )
Fazit
Kleiner Eintrag große Wirkung.
Schlecht wird es erst, wenn es keine Erneuerung der IP-Adresse zu dem Eintrag für das dynamisches DNS gab.
Dies hat aber keine Auswirkung für die Leser des Blogs, da nur der Administratorenbereich, sowie die Anmeldemaske gesperrt wäre.
Aber, man hat ja Zugriff auf die Datei .htaccess und könnte zur Not den Eintrag manuell löschen.
Es gibt noch mehr bekannte Möglichkeiten, wie Einmalpasswörter, Absicherung des Anmeldemaske durch den Verzeichnisschutz des Webservers, etc usw
Dies sind alles Puzzleteile eines Sicherheitskonzeptes, wie jenes hier vorgestellte und je mehr Puzzleteil zum tragen kommen, desto besser.
Eine Teil eines Sicherheitskonzeptes ersetzt nicht das Andere, sondern erweitert nur das Konzept um einen weiteren Teil.
Der Entwurf lag schon sehr lange bei mir herum, somit ist er nun auch verbloggt.