So schützen Sie WordPress mit Fail2Ban unter Ubuntu 14.04

Einführung

WordPress ist ein sehr robustes Content-Management-System (CMS), das kostenlos und Open Source ist. Da jeder auf WordPress kommentieren, ein Konto erstellen und Beiträge verfassen kann, haben viele böswillige Akteure Netzwerke aus Bots und Servern erstellt, die WordPress-Websites durch Brute-Force-Angriffe kompromittieren und als Spam versenden. Das Tool Fail2ban ist nützlich, um den unbefugten Zugriff sowohl auf Ihr Droplet als auch auf Ihre WordPress-Site zu verhindern. Es werden verdächtige oder wiederholte Anmeldefehler festgestellt und diese IP-Adressen proaktiv gesperrt, indem die Firewall-Regeln für Ihr Droplet geändert werden.

In diesem Handbuch verwenden wir Version 0.9.3 von Fail2ban auf einem Ubuntu 14.04 LAMP-Server und integrieren es mithilfe eines Spam-Protokoll-Plugins in WordPress.

Voraussetzungen

Um diesen Leitfaden zu vervollständigen, benötigen Sie

Schritt 1 - Installation des WordPress Fail2ban Plugins

Melden Sie sich zunächst bei Ihrer WordPress-Site an, indem Sie in Ihrem Browser "+ https: /// wp-admin +" aufrufen und die Administrator-Anmeldeinformationen verwenden, die Sie bei der Installation von WordPress erstellt haben. Sobald Sie angemeldet sind, sehen Sie den folgenden Bildschirm, der Ihr WordPress-Dashboard ist.

image: https://assets.digitalocean.com/articles/wordpress_1404/admin_interface.png [Dashboard-Bildschirm, title = "Dashboard-Bildschirm"]

Suchen Sie in der linken Seitenleiste nach dem Wort * Plugins *, das etwa in der Mitte der Seitenleiste angezeigt wird. Nachdem Sie auf * Plugins * geklickt haben, wird der folgende Bildschirm angezeigt:

image: http: //i.imgur.com/cJhyxi6.png? 1 [Plugin, title = "Plugin neu hinzufügen"]

Ganz oben im rechten Bereich können Sie auf Add New (Neu hinzufügen) klicken. Auf diese Weise können Sie Ihrer WordPress-Site neue Plugins hinzufügen, mit denen Sie Ihre Site anpassen, sichern oder erweitern können. In diesem Fall suchen wir nach dem Fail2ban-Plugin. Der nächste Bildschirm sieht folgendermaßen aus:

image: http: //i.imgur.com/m5Jecd6.png? 1 [Neue Suche hinzufügen, title = "Neue Suche hinzufügen"]

Geben Sie * Fail2ban * in das Suchfeld ein und drücken Sie auf Ihrer Tastatur die Eingabetaste. Die Ergebnisse sollten einen Bildschirm mit einigen Plugins anzeigen, wobei der zu installierende * WP fail2ban * ist.

image: http: //i.imgur.com/2nmPJ61.png? 1 [Fail2ban, title = "fail2ban plugin"]

Klicken Sie auf "Jetzt installieren", um die Installation zu starten. Es werden zwei Eingabeaufforderungen angezeigt: "Plugin aktivieren" und "Zurück zum Plugin-Installationsprogramm". Wählen Sie * Plugin aktivieren * und Ihr Browser kehrt zur Liste der installierten Plugins mit dem neuen * WP fail2ban * -Plugin in der Liste zurück. Zu diesem Zeitpunkt können Sie auf * Details anzeigen * klicken, um weitere Informationen zu Ihrem neuen Plugin anzuzeigen. Es gibt auch eine FAQ, die Ihnen hilft zu verstehen, wie Sie Funktionen aktivieren, wie z. B. das Blockieren bestimmter Benutzer, mit denen Sie Ihre WordPress-Site mit Inhalten oder Kommentaren spammen können.

Schritt 2 - Anwenden des WordPress-Filters auf Fail2Ban

Dieses WordPress-Plugin enthält einen neuen benutzerdefinierten Fail2Ban-Filter. In diesem Schritt installieren wir diesen Filter, damit Fail2ban die Authentifizierungsprotokolle, die an das Syslog gesendet werden, korrekt analysieren und verwenden kann.

Verschieben Sie zunächst den Filter aus dem WordPress-Plugin-Verzeichnis an den entsprechenden Speicherort für den Fail2Ban-Filter. Wir werden den "harten" WordPress-Filter zum besseren Schutz verwenden:

sudo cp /var/www/html/wp-content/plugins/wp-fail2ban/filters.d/wordpress-hard.conf /etc/fail2ban/filter.d/

Mit dem neuen Filter "+ wordpress-hard.conf " können Sie Fail2ban auf das entsprechende Authentifizierungsprotokoll verweisen, indem Sie die Datei " /etc/fail2ban/jail.local +" bearbeiten. Ein Gefängnis in Fail2ban bezieht sich auf eine Reihe von Regeln und Aktionen, die die Filter für IP-Adressen bereitstellen.

Öffnen Sie die Datei + jail.local + mit nano oder Ihrem bevorzugten Texteditor.

sudo nano /etc/fail2ban/jail.local

Scrollen Sie nach dem Öffnen der Datei nach unten und hängen Sie die folgenden Zeilen an das Ende an. Diese Zeilen aktivieren das Plugin, setzen den Filter auf den Filter "+ wordpress-hard.conf ", den wir zuvor in das Verzeichnis " filters.d " kopiert haben, setzen das entsprechende Protokollierungsziel für die Zugriffsversuche und geben an, dass dieser Datenverkehr erfolgt Treten Sie an den Ports " http " und " https +" ein.

[wordpress-hard]

enabled = true
filter = wordpress-hard
logpath = /var/log/auth.log
maxretry = 3
port = http,https

Speichern und schließen Sie die Datei.

Als nächstes können Sie Fail2ban neu starten, um sicherzustellen, dass der neue Filter jetzt vorhanden ist, indem Sie diesen Befehl in Ihrem Terminal ausführen:

sudo service fail2ban restart

Schritt 3 - Anmeldeversuche von Ihrem Computer aus ignorieren

Um zu verhindern, dass Sie oder andere bekannte Benutzer durch versehentliche Authentifizierungsfehler gesperrt werden, empfehlen wir, die öffentliche IP-Adresse Ihres eigenen lokalen Computers zu ignorieren.

Wenn Sie ein Linux-basiertes Betriebssystem verwenden, verwenden Sie diesen Befehl:

curl ipecho.net/plain ; echo

Besuchen Sie andernfalls "+ http: // checkip.dyndns.org +", um die öffentliche IP-Adresse Ihres Computers zu ermitteln. Wenn sich andere Benutzer Ihrer WordPress-Site an anderen Orten befinden, möchten Sie möglicherweise auch deren Adressen ermitteln.

Öffne + jail.local + zum erneuten Bearbeiten:

sudo nano /etc/fail2ban/jail.local

Die folgende Zeile listet alle ignorierten IP-Adressen auf, beginnend mit der lokalen Server-IP (localhost), mit einem Leerzeichen zwischen den Werten für bekannte Hosts, auf die Sie Zugriff auf WordPress wünschen. Fügen Sie dies dem Abschnitt DEFAULT unter der Anweisung ignoreip hinzu, die Sie während der Schritte zur Einrichtung des WordPress-Plugins hinzugefügt haben.

ignoreip = 127.0.0.1/8

Speichern und beenden Sie Ihren Editor.

Schritt 4 - Testen des Filters

Um zu testen, ob der Filter funktioniert, können Sie sich von der * wp-admin * -Site Ihrer WordPress-Site abmelden und erneut anmelden.

Sie können diesen Fail2ban-Gefängnisstatus verwenden, um sicherzustellen, dass Ihre erfolgreiche Anmeldung nicht vom Filter vermerkt wurde.

sudo fail2ban-client status wordpress-hard

Sie sollten ähnliche Ergebnisse sehen:

Status for the jail: wordpress-hard
|- filter
|  |- File list:    /var/log/auth.log
|  |- Currently failed: 0
|  `- Total failed: 0
`- action
  |- Currently banned: 0
  |  `- IP list:
  `- Total banned: 0

Wenn Sie die Datei "+ auth.log " anzeigen, sehen Sie Ihre erfolgreiche Anmeldung am Ende der Datei, indem Sie " tail +" verwenden, wodurch die letzten 10 Ausgabezeilen angezeigt werden:

sudo tail /var/log/auth.log

Die erfolgreiche Authentifizierung sieht folgendermaßen aus:

+ Monat Tag Stunde: Minute: Sekunde wordpress () []: Akzeptiertes Passwort für Admin von +

Wenn ein nicht autorisierter Benutzer oder eine fehlgeschlagene Authentifizierung in den Protokollen angezeigt wird, stellt Ihr neues Plugin sicher, dass diese IP-Adresse nicht auf Ihre Site zugreifen kann, indem Sie Ihre Firewall-Regeln entsprechend ändern.

Schritt 5 - Drehen Sie Ihre Protokolldateien

Wenn Sie feststellen, dass Ihre WordPress-Site sehr viele nicht autorisierte Anmeldeversuche erhält und Ihre Protokolldatei schnell wächst, können Sie die Protokolldatei durch Bearbeiten der Datei "+ / etc / logrotate.conf +" gegen eine neue austauschen.

sudo nano /etc/logrotate.conf

Fügen Sie diese Zeilen hinzu, in denen die maximale Größe der Datei, die Berechtigungen für das Protokoll und die Anzahl der Wochen festgelegt werden. Beispielsweise können Sie 4 als Anzahl der Wochen festlegen, für die die Datei vorhanden sein wird, bevor sie aktualisiert wird:

/var/log/auth.log {
   size 30k
   create 0600 root root
   rotate 4
}

Speichern und beenden Sie die Datei entsprechend.

Fazit

Mit den in diesem Handbuch beschriebenen Schritten haben Sie das Fail2ban-Plugin installiert und konfiguriert, Ihre lokale IP-Adresse ausgeschlossen und Ihre Arbeit getestet. Sie richten auch die Protokollrotation ein, um zu verhindern, dass Ihre Protokolldateien auf unbestimmte Zeit wachsen. Jetzt ist Ihre WordPress-Instanz viel robuster und sicherer gegen unbefugte Anmeldeversuche, Kommentar-Spam und Eindringen in Ihre Site.

Related