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 host wordpress(xxxxxxx.com.br)[1010]: Authentication failure for gestao_click from 196.41.127.26
Jun 8 21:09:40 host wordpress(xxxxxxx.com.br)[1791]: Authentication failure for guestposter from 196.41.127.26
Jun 8 21:09:41 host wordpress(xxxxxxx.com.br)[9892]: Authentication failure for ricardo_pereira from 196.41.127.26
Jun 8 21:10:15 host wordpress(zzzzzzzzz.com.br)[6490]: XML-RPC authentication attempt for unknown user admin from 86.167.111.66
Jun 8 21:11:38 host wordpress(www.zzzzzzzzz.com.br)[1011]: Authentication failure for alexacolemanmkdef from 5.135.164.126
Jun 8 21:11:38 host wordpress(www.zzzzzzzzz.com.br)[6490]: Authentication failure for alexia_dias from 5.135.164.126
Jun 8 21:11:39 host wordpress(www.zzzzzzzzz.com.br)[5620]: Authentication failure for beatriz_seomarketing from 5.135.164.126
Jun 8 21:11:40 host wordpress(www.zzzzzzzzz.com.br)[6489]: Authentication failure for bianca_oblige from 5.135.164.126
Jun 8 21:11:41 host wordpress(www.zzzzzzzzz.com.br)[1010]: Authentication failure for celioedu from 5.135.164.126
Jun 8 21:11:42 host wordpress(www.zzzzzzzzz.com.br)[9893]: Authentication failure for celeste_pinto from 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 start firewalld &;&; sudo firewall-cmd --zone=public --add-port=22/tcp --permanent &;&; sudo firewall-cmd --zone=public --add-service=HTTPS --permanent &;&; sudo firewall-cmd --zone=public --add-service=http --permanent &;&; sudo firewall-cmd --reload

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 for worpdpress authentication failures
#
[INCLUDES]
before = common.conf
[Definition]
_daemon = wordpress
failregex = ^%(__prefix_line)sAuthentication failure for .* from $
^%(__prefix_line)sBlocked authentication attempt for .* from $
^%(__prefix_line)sXML-RPC authentication attempt for unknown.* from $
^%(__prefix_line)sBlocked user enumeration attempt from $
^%(__prefix_line)sPingback requested from $
ignoreregex =
# DEV Notes:
#
# Author: 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.

O próximo passo é definir qual ação será tomada quando o fail2ban encontrar uma entrada que combine com qualquer um dos padrões definidos no arquivo de configuração.

Essas ações estão todas definidas em arquivos de configuração no diretório /Etc/fail2ban/action.d/ e para o que este artigo se propõe nos interessa os arquivos firewallcmd*. Em minha experiência, não havia uma configuração que incluía o IP na zona ;drop-zone do jeito que eu queria então eu criei um arquivo de ação. Abaixo o conteúdo de um arquivo firewallcmd-drop.conf.

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

O próximo passo é criar a entrada que ativará o filtro e a ação. Um dies zu tun,, Erstellen oder Bearbeiten der Datei /Etc/fail2ban/jail.local und fügen Sie die folgenden Zeilen hinzu:

# Filtro para tentativas de login no WordPress
[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 --list-all --zone-drop, Sie sehen einen Ausgang, der wie:

drop (aktiv)  
   target: DROP
   icmp-block-inversion: no
   interfaces: 
   sources: 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
   services: 
   ports: 
   protocols: 
   masquerade: no
   forward-ports: 
   source-ports: 
   icmp-blocks: 
   rich rules: 

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.