So schützen Sie WordPress vor XML-RPC-Angriffen auf Ubuntu 14.04

Einführung

WordPress ist eine beliebte und leistungsstarke CMS-Plattform (Content Management System). Seine Popularität kann unerwünschte Aufmerksamkeit in Form von böswilligem Datenverkehr erregen, der speziell auf eine WordPress-Site abzielt.

Es gibt viele Fälle, in denen auf einem Server, der nicht geschützt oder optimiert wurde, Probleme oder Fehler auftreten können, nachdem eine geringe Menge böswilligen Datenverkehrs empfangen wurde. Diese Angriffe führen zu einer Erschöpfung der Systemressourcen, wodurch Dienste wie MySQL nicht mehr reagieren. Der häufigste visuelle Hinweis hierfür wäre ein "+ Fehler beim Herstellen der Verbindung zur Datenbank in". Die Webkonsole zeigt möglicherweise auch "+ Nicht genügend Speicher" -Fehler an.

Diese Anleitung zeigt Ihnen, wie Sie WordPress vor XML-RPC-Angriffen auf ein Ubuntu 14.04-System schützen.

Voraussetzungen

Für diesen Leitfaden benötigen Sie Folgendes:

Wir gehen davon aus, dass Sie WordPress bereits auf einem Ubuntu 14.04 Droplet installiert haben. Es gibt viele Möglichkeiten, WordPress zu installieren, aber hier sind zwei gebräuchliche Methoden:

Alle Befehle in diesem Lernprogramm sollten als Benutzer ohne Rootberechtigung ausgeführt werden. Wenn für den Befehl root-Zugriff erforderlich ist, wird vor + sudo + angezeigt. Initial Server Setup mit Ubuntu 14.04 erläutert, wie Benutzer hinzugefügt und ihnen sudo-Zugriff gewährt werden.

Was ist XML-RPC?

WordPress verwendet XML-RPC, um functions remote auszuführen. Das beliebte Plugin JetPack und die mobile WordPress-Anwendung sind zwei großartige Beispiele dafür, wie WordPress XML-RPC verwendet. Dieselbe Funktionalität kann auch ausgenutzt werden, um in kurzer Zeit Tausende von Anfragen an WordPress zu senden. Dieses Szenario ist praktisch ein Brute-Force-Angriff.

Erkennen eines XML-RPC-Angriffs

Die beiden wichtigsten Methoden zum Erkennen eines XML-RPC-Angriffs sind folgende:

1) Anzeige der Meldung "Fehler beim Herstellen der Verbindung zur Datenbank", wenn Ihre WordPress-Site inaktiv ist + 2) Auffinden vieler Einträge, die "" POST /xmlrpc.php HTTP / 1.0 "" in Ihren Webserver-Protokollen ähneln

Der Speicherort Ihrer Webserver-Protokolldateien hängt davon ab, welche Linux-Distribution Sie ausführen und welchen Webserver Sie ausführen.

Verwenden Sie für Apache unter Ubuntu 14.04 diesen Befehl, um nach XML-RPC-Angriffen zu suchen:

grep xmlrpc /var/log/apache2/access.log

Verwenden Sie für Nginx unter Ubuntu 14.04 diesen Befehl, um nach XML-RPC-Angriffen zu suchen:

grep xmlrpc /var/log/nginx/access.log

Ihre WordPress-Site empfängt XML-RPC-Angriffe, wenn die obigen Befehle zu vielen Ausgabezeilen führen, ähnlich dem folgenden Beispiel:

access.log

111.222.333.444:80 555.666.777.888 - - [01/Jan/2016:16:33:50 -0500] "POST /xmlrpc.php HTTP/1.0" 200 674 "-" "Mozilla/4.0 (compatible: MSIE 7.0; Windows NT 6.0)"

Der Rest dieses Artikels konzentriert sich auf drei verschiedene Methoden zur Verhinderung weiterer XML-RPC-Angriffe.

Methode 1: Installieren des Jetpack-Plugins

Idealerweise möchten Sie XML-RPC-Angriffe verhindern, bevor sie auftreten. Das Plugin Jetpack für WordPress kann die XML-RPC-Multicall-Methodenanforderungen mit seiner Funktion Protect blockieren. Sie werden weiterhin XML-RPC-Einträge in Ihren Webserver-Protokollen sehen, wenn Jetpack aktiviert ist. Jetpack reduziert jedoch die Belastung der Datenbank durch diese böswilligen Anmeldeversuche um fast 90%.

Jetpack lässt sich einfach über das WordPress-Backend installieren. Melden Sie sich zunächst in Ihrem WordPress-Kontrollfeld an und wählen Sie im linken Menü * Plugins→ Add New *.

Jetpack sollte automatisch im Abschnitt mit den vorgestellten Plugins auf der Seite * Add New * aufgeführt werden. Wenn Sie es nicht sehen, können Sie über das Suchfeld nach * Jetpack * suchen.

Klicken Sie auf die Schaltfläche * Jetzt installieren *, um Jetpack herunterzuladen, zu entpacken und zu installieren. Nach erfolgreicher Installation wird auf der Seite ein Link * Plugin aktivieren * angezeigt. Klicken Sie auf den Link * Plugin aktivieren *. Sie kehren zur Seite * Plugins * zurück und oben befindet sich eine grüne Überschrift, die besagt, dass * Ihr Jetpack fast fertig ist! *. Klicken Sie auf die Schaltfläche * Connect to Wordpress.com *, um die Aktivierung von Jetpack abzuschließen.

Melden Sie sich jetzt mit einem WordPress.com-Konto an. Sie können bei Bedarf auch ein Konto erstellen.

image: https://assets.digitalocean.com/articles/wordpress_xmlrpc/log_in.png [In Wordpress.com-Formular anmelden]

Nachdem Sie sich in Ihrem WordPress.com-Konto angemeldet haben, wird Jetpack aktiviert. Sie erhalten die Option, * Jump Start * auszuführen, wodurch die allgemeinen Funktionen von Jetpack automatisch aktiviert werden. Klicken Sie in diesem Schritt auf den Link * Überspringen *.

Die Schutzfunktion wird automatisch aktiviert, auch wenn Sie den Starthilfe-Vorgang überspringen. Sie können jetzt ein Jetpack-Dashboard sehen, das auch die Schutzfunktion als aktiv anzeigt. Die IP-Adressen der weißen Liste können möglicherweise von Protect blockiert werden, indem Sie auf das Zahnrad neben dem Namen * Protect * klicken.

Geben Sie die IPv4- oder IPv6-Adressen ein, für die Sie eine Whitelist erstellen möchten, und klicken Sie auf die Schaltfläche * Speichern *, um die Whitelist Protect zu aktualisieren.

Methode 2: Aktivieren von block-xmlrpc mit a2enconf

Die Funktion + a2enconf block-xmlrpc + wurde im Dezember 2015 zum Ein-Klick-Bild von DigitalOcean WordPress hinzugefügt. Damit können Sie alle XML-RPC-Anforderungen auf Webserverebene blockieren.

Führen Sie zum Aktivieren des XML-RPC-Block-Skripts den folgenden Befehl auf Ihrem Droplet mit dem installierten DO WordPress-Ein-Klick-Image aus:

sudo a2enconf block-xmlrpc

Starten Sie Apache neu, um die Änderung zu aktivieren:

sudo service apache2 restart

Methode 3: Manuelles Blockieren des gesamten XML-RPC-Datenverkehrs

Alternativ kann der XML-RPC-Block manuell auf Ihre Apache- oder Nginx-Konfiguration angewendet werden.

Bearbeiten Sie für Apache unter Ubuntu 14.04 die Konfigurationsdatei mit dem folgenden Befehl:

sudo nano /etc/apache2/sites-available/000-default.conf

Fügen Sie die markierten Zeilen zwischen den Tags + <VirtualHost> + hinzu.

Apache VirtualHost Config

<VirtualHost>
…




</VirtualHost>

Speichern und schließen Sie diese Datei, wenn Sie fertig sind.

Starten Sie den Webserver neu, um die Änderungen zu aktivieren:

sudo service apache2 restart

Bearbeiten Sie für Nginx unter Ubuntu 14.04 die Konfigurationsdatei mit dem folgenden Befehl (ändern Sie den Pfad entsprechend Ihrer Konfigurationsdatei):

sudo nano /etc/nginx/sites-available/

Fügen Sie die markierten Zeilen unterhalb des Serverblocks hinzu:

Nginx Server-Blockdatei

server {
…



}

Speichern und schließen Sie diese Datei, wenn Sie fertig sind.

Starten Sie den Webserver neu, um die Änderungen zu aktivieren:

sudo service nginx restart

Überprüfen der Angriffsabwehrschritte

Unabhängig davon, welche Methode Sie zur Verhinderung von Angriffen gewählt haben, sollten Sie sicherstellen, dass sie funktioniert.

Wenn Sie die Jetpack Protect-Funktion aktivieren, werden weiterhin XML-RPC-Anforderungen in Ihren Webserver-Protokollen angezeigt. Die Häufigkeit sollte niedriger sein, und Jetpack verringert die Last, die ein Angriff auf den Datenbankserverprozess ausüben kann. Jetpack blockiert auch nach und nach die angreifenden IP-Adressen.

Wenn Sie den gesamten XML-RPC-Datenverkehr manuell blockieren, werden in Ihren Protokollen weiterhin Versuche angezeigt, der resultierende Fehlercode ist jedoch nicht 200. Einträge in der Apache-Datei + access.log + können beispielsweise so aussehen:

access.log

111.222.333.444:80 555.666.777.888 - - [01/Jan/2016:16:33:50 -0500] "POST /xmlrpc.php HTTP/1.0"  674 "-" "Mozilla/4.0 (compatible: MSIE 7.0; Windows NT 6.0)"

Fazit

Indem Sie Maßnahmen ergreifen, um böswilligen XML-RPC-Verkehr zu verringern, wird Ihre WordPress-Site weniger Systemressourcen verbrauchen. Erschöpfung der Systemressourcen ist der häufigste Grund, warum eine WordPress-Site auf einem VPS offline geschaltet wird. Die in diesem Artikel erwähnten Methoden zur Verhinderung von XML-RPC-Angriffen stellen sicher, dass Ihre WordPress-Site online bleibt.

Weitere Informationen zu Brute-Force-Angriffen auf WordPress XML-RPC finden Sie unter Sucuri.net - Brute Force Verstärkungsangriffe gegen WordPress XMLRPC.