RSS

  • YouTube
  • LinkedIn
  • Google

Protegendo seu WordPress de ataques

Diese Seite, auf die Sie zugreifen, ist eine Installation der WordPress. Ich mag die Leichtigkeit davon.

WordPress ist wirklich gut in der Erstellung eines Blogs schnell in einem VPS oder Cloud, aber seine Leichtigkeit ist auch sein größter Defekt.

Wie einfach ist es, eine Website mit ihm zu haben, die überwiegende Mehrheit der Im Internet vorhandenen Seiten werden mit ihm gemacht, und folglich zieht dies diejenigen an, die nach Fehlern in der Programmierung ihrer Open Source suchen.

Sobald ein Fehler entdeckt wird, ein schelmischer Hacker wird in der Lage sein, diesen Fehler auf Millionen von Websites auf der ganzen Welt zu verwenden, So veröffentlichen Sie Dateien, Senden Sie E-Mails und erstellen Sie sogar gefälschte Websites innerhalb einer Domäne. All dies sind Dinge, die ich gesehen habe, und ich glaube, sogar Sie haben gesehen.

Eines der Dinge, die mich am meisten über WordPress stört, ist seine Authentifizierung und Ausführung Mechanismus XML-RPC. Sie sind ständige Quellen für Brute-Force-Angriffe.

Werfen Sie einfach einen Blick auf die letzten 10 Zeilen in dieser Protokolldatei von mir (in Echtzeit von diesem Server genommen, während Sie diesen Artikel ohne den Einsatz eines Schutzmechanismus schreiben).

Jun 8 21:09:39 WordPress hosten(xxxxxxx.com.br)[1010]: Authentifizierungsfehler für gestao_click von 196.41.127.26
Jun 8 21:09:40 WordPress hosten(xxxxxxx.com.br)[1791]: Authentifizierungsfehler für guestposter von 196.41.127.26
Jun 8 21:09:41 WordPress hosten(xxxxxxx.com.br)[9892]: Authentifizierungsfehler für ricardo_pereira von 196.41.127.26
Jun 8 21:10:15 WordPress hosten(zzzzzzzzz.com.br)[6490]: XML-RPC-Authentifizierungsversuch für unbekannten Benutzer admin von 86.167.111.66
Jun 8 21:11:38 WordPress hosten(www.zzzzzzzzz.com.br)[1011]: Authentifizierungsfehler für alexacolemanmkdef von 5.135.164.126
Jun 8 21:11:38 WordPress hosten(www.zzzzzzzzz.com.br)[6490]: Authentifizierungsfehler für alexia_dias von 5.135.164.126
Jun 8 21:11:39 WordPress hosten(www.zzzzzzzzz.com.br)[5620]: Authentifizierungsfehler für beatriz_seomarketing von 5.135.164.126
Jun 8 21:11:40 WordPress hosten(www.zzzzzzzzz.com.br)[6489]: Authentifizierungsfehler für bianca_oblige von 5.135.164.126
Jun 8 21:11:41 WordPress hosten(www.zzzzzzzzz.com.br)[1010]: Authentifizierungsfehler für celioedu von 5.135.164.126
Jun 8 21:11:42 WordPress hosten(www.zzzzzzzzz.com.br)[9893]: Authentifizierungsfehler für celeste_pinto von 5.135.164.126

Nur durch diese Zeilen können Sie sehen, dass es eine intensive Aktivität des Versuchs, in bestehenden WordPress-Installationen zu authentifizieren, praktisch eine pro Sekunde.

Um diese ständigen Invasionsversuche zu mildern, Ich benutze vor ein paar Jahren die Formel, die IPs dieser Anforderungen in die Firewallfilter einzuschließen, den Zugriff auf den Server, der von diesen. Dadurch werden diese Versuche drastisch reduziert.. Anfangs habe ich dies manuell gemacht, Behandeln von Protokollen und Hinzufügen der nachdrücklichsten IPs, aber dann entdeckte ich ein Skript, das es automatisch tat: O Fail2Ban.

Fail2Ban

das Fail2Ban ist ein Skript für einen Daemon, der Protokolle überwacht und IPs verbietet. Mit ihm ist es möglich, Protokolle von jeder Software zu analysieren, die Authentifizierung wie WordPress hat und von den gegenwärtigen Fehlern enthalten die Quell-IPs in Filter in der Firewall.

Es ist sehr einfach zu bedienen und ist in mehreren Repositorys für verschiedene Linux-Distributionen verfügbar.

Im Folgenden zeige ich Ihnen, wie Sie eine Installation und Konfiguration mit Centos 8 zusammen mit der firewalld

Instalando os recursos necessários

Die folgenden Zeilen installieren alle notwendigen Elemente.

$ sudo dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm 
$ sudo rpm -ql epel-release 
$ sudo dnf install firewalld fail2ban -y

Ab diesem Zeitpunkt sollte bereits fail2ban installiert und auch die Firewalld.

HINWEIS: Wenn Sie die Shell von einer SSH-Verbindung verwenden, Es ist notwendig, den Verbindungsport öffentliche Zone Damit Sie die Firewall nicht aktivieren und den Remotezugriff blockieren.

Verwenden Sie dazu den Befehl:

$ sudo systemctl anfangen firewalld &;&; sudo Firewall-cmd --Zone=Öffentlich --hinzufügen-Hafen=22/tcp --permanent sind &;&; sudo Firewall-cmd --Zone=Öffentlich --hinzufügen-Dienst=HTTPS --permanent sind &;&; sudo Firewall-cmd --Zone=Öffentlich --hinzufügen-Dienst=http (englisch) --permanent sind &;&; sudo Firewall-cmd --nachladen

Wenn alles in Ordnung ist, werden Sie mit dem Firewalld aktiv zu diesem Zeitpunkt und mit den Ports sein 80, 443 und 22 in die öffentliche Zone freigegeben.

Aktivieren wir nun die Dienste, damit sie immer zusammen mit dem System beginnen.

$ sudo systemctl enable fail2ban
$ sudo systemctl enable firewalld

WPFail2Ban

Da wir über WordPress sprechen, werde ich nicht zeigen, wie man fail2ban konfiguriert, um die Webserverprotokolle zu lesen und IPs von ihnen zu verbieten. Es gibt eine viel einfachere Möglichkeit, dies mit einem geeigneten Plugin zu tun. das WPFail2Ban. Installieren Sie es einfach und bereit.

Mit WPFail2Ban installiert und ohne Einstellungen zu ändern, Es fügt alle Login-Fehler zur Standardsystem-Syslog-Datei hinzu, die im Fall von CentOS /var/log/messages.

In meiner Installation, Ich habe die im WPFail2Ban-Handbuch angegebenen Einstellungen nicht verwendet, auch weil es keine Filter Angegeben.

Das erste, was zu tun ist, einen Filter für Fail2Ban zu erstellen. Erstellen wir eine Filterdatei in /etc/fail2ban/filter.d/wordpress.conf.

Die folgenden Zeilen gehen davon aus, dass es keine andere Konfigurationsdatei für die Verwendung mit WordPress gibt.. Ich bin ein Anhänger von vim, verwenden Sie jedoch den von Ihnen bevorzugten Editor.

$ sudo vim /etc/fail2ban/filter.d/wordpress.conf

Hinzufügen der folgenden Zeilen:

Fail2Ban-Filter für worpdpress-Authentifizierungsfehler
#
[ENTHÄLT]
vorher = common.conf
[Definition]
_daemon=WordPress failregex=^%(__prefix_line)sAuthentication-Fehler für .* Von $
^%(__prefix_line)sBlockierter Authentifizierungsversuch für .* Von $
^%(__prefix_line)sXML-RPC-Authentifizierungsversuch für unbekannt.* von $
^%(__prefix_line)sBlockierter Benutzeraufzählungsversuch von $
^%(__prefix_line)sPingback angefordert von $
ignoreregex =
# DEV-Hinweise:
#
# Verfasser: Marcos Regis

Ich werde nicht in die Details der Zeilen gehen, Nur dass sie bereit sind, die meisten Authentifizierungsfehler zu erfassen, die das WPFail2Ban-Modul an die Protokolldatei sendet.

Der nächste Schritt besteht darin, zu definieren, welche Aktion ausgeführt wird, wenn fail2ban auf einen Eintrag stößt, der mit einem der in der Konfigurationsdatei definierten Standardwerte übereinstimmt.

Diese Aktionen sind alle in Konfigurationsdateien in der Datei /Etc/fail2ban/Aktion.d/ Und für das, was dieser Artikel vorschlägt, interessieren uns die Archive firewallcmd*. Meiner Erfahrung nach, Es gab keine Konfiguration, die die IP-Adresse in der Zone enthielt ;Drop-Zone so wie ich es wollte, also habe ich eine Aktionsdatei erstellt. Nachfolgend finden Sie den Inhalt einer Datei firewallcmd-drop.conf.

# /etc/fail2ban/action.d/firewallcmd-drop.conf 
[ENTHÄLT] 
vorher = firewallcmd-common.conf 
[Definition] 
actionstart = 
actionstop = 
actioncheck = 
actionban = firewall-cmd --zone=drop --add-source=<;ip>; 
actionunban = firewall-cmd --zone=drop --remove-source=<;ip>;

Der nächste Schritt besteht darin, den Eintrag zu erstellen, der den Filter und die Aktion aktiviert. Um dies zu tun,, Erstellen oder Bearbeiten der Datei /Etc/fail2ban/Gefängnis.lokal und fügen Sie die folgenden Zeilen hinzu:

# Filter für WordPress-Login-Versuche
[WordPress]
enabled = true logpath = /var/log/messages action = firewallcmd-drop

Von diesem Punkt an ist alles bereit, den Dienst zu starten. Sobald Fail2Ban gestartet wird und in den Protokollen bereits Einträge vorhanden sind, die dem zu suchenden Muster entsprechen, Sie sehen, dass die IPs der Sperrliste in der Firewall hinzugefügt werden.

$ sudo systemctl start fail2ban

So sehen Sie blockierte IP-Informationen im Firewalltyp Firewall-cmd --Liste-alle --Zone-Tropfen, Sie sehen einen Ausgang, der wie:

Tropfen (aktiv)  
   Ziel: DROP icmp-block-inversion: Keine Schnittstellen: 
   Quellen: 223.225.107.45 111.231.227.35 139.99.156.158 149.202.70.189 162.241.200.235 167.71.111.16 178.254.11.154 18.228.33.11 223.225.10.190 45.119.212.93 62.210.178.229 68.183.134.134 69.163.163.220 80.211.174.81 103.57.84.227 159.65.128.55 91.134.248.230 165.22.107.13 208.97.188.13 188.240.208.26
   Dienste: 
   Häfen: 
   Protokolle: 
   Maskerade: keine Forward-Ports: 
   Quell-Ports: 
   ICMP-Bausteine: 
   Rich-Regeln: 

E isso é tudo. Wenn Sie Kommentare zum Inhalt haben, sich wohl fühlen. Ich hoffe, das hilft dir so sehr, wie du mir geholfen hast..

Umarmungen.

Hinterlasse eine Antwort

Ihre e-Mail-Adresse wird nicht veröffentlicht. Pflichtfelder sind markiert *

Diese Seite benutzt Akismet, Spam zu reduzieren. Erfahren Sie, wie Ihre Kommentardaten verarbeitet wird.