FLUX RSS

  • YouTube
  • LinkedIn
  • Google

Protegendo seu WordPress de ataques

Ce site auquelle vous accédez est une installation de la WordPress. J’aime la facilité de celui-ci.

WordPress est vraiment bon à produire un blog rapidement dans un VPS ou Cloud, mais sa facilité est aussi son plus grand défaut.

Comme il est simple d’avoir un site web avec elle, la grande majorité des pages présentes sur internet sont réalisées à l’aide de celui-ci et, par conséquent, cela attire ceux qui recherchent des failles dans la programmation de son open source.

Une fois qu’un défaut est découvert, un hacker espiègle sera en mesure d’utiliser cette faille sur des millions de sites web à travers le monde, pour publier des fichiers, envoyer des e-mails et même créer de faux sites Web dans un domaine. Toutes ces choses sont que j’ai vu et je crois que même vous avez vu.

Une des choses qui me dérange le plus sur WordPress est son mécanisme d’authentification et d’exécution XML-RPC. Ils sont des sources constantes d’attaque par force brute.

Il suffit de jeter un oeil aux derniers 10 lignes dans ce fichier journal de la mienne (pris en temps réel à partir de ce serveur lors de la rédaction de cet article sans l’utilisation d’un mécanisme de protection).

Juin 8 21:09:39 host wordpress(xxxxxxx.com.br)[1010]: Échec de l’authentification pour gestao_click à partir de 196.41.127.26
Juin 8 21:09:40 host wordpress(xxxxxxx.com.br)[1791]: Échec de l’authentification pour guestposter à partir de 196.41.127.26
Juin 8 21:09:41 host wordpress(xxxxxxx.com.br)[9892]: Échec de l’authentification pour ricardo_pereira à partir de 196.41.127.26
Juin 8 21:10:15 host wordpress(zzzzzzzzz.com.br)[6490]: Tentative d’authentification XML-RPC pour l’administrateur d’utilisateur inconnu à partir de 86.167.111.66
Juin 8 21:11:38 host wordpress(www.zzzzzzzzz.com.br)[1011]: Échec d’authentification pour alexacolemanmkdef à partir de 5.135.164.126
Juin 8 21:11:38 host wordpress(www.zzzzzzzzz.com.br)[6490]: Échec de l’authentification pour alexia_dias à partir de 5.135.164.126
Juin 8 21:11:39 host wordpress(www.zzzzzzzzz.com.br)[5620]: Échec de l’authentification pour beatriz_seomarketing à partir de 5.135.164.126
Juin 8 21:11:40 host wordpress(www.zzzzzzzzz.com.br)[6489]: Échec de l’authentification pour bianca_oblige à partir de 5.135.164.126
Juin 8 21:11:41 host wordpress(www.zzzzzzzzz.com.br)[1010]: Échec de l’authentification pour celioedu à partir de 5.135.164.126
Juin 8 21:11:42 host wordpress(www.zzzzzzzzz.com.br)[9893]: Échec de l’authentification pour celeste_pinto à partir de 5.135.164.126

Ce n’est que par ces lignes que vous pouvez voir qu’il ya une activité intense d’essayer de s’authentifier dans les installations WordPress existantes, pratiquement un par seconde.

Pour atténuer ces tentatives constantes d’invasion, J’utilise il y a quelques années la formule d’inclure les IP de ces demandes dans les filtres pare-feu, blocage complet de l’accès au serveur qui provient de ces. Cela réduit considérablement ces tentatives. Au départ, je l’ai fait manuellement, manipulation des journaux et ajout des IP les plus insistants, mais alors j’ai découvert un script qui l’a fait automatiquement: O Fail2Ban.

Fail2Ban

Le Fail2Ban est un script pour un daemon qui surveille les journaux et interdit les IP. Avec elle, il est possible d’analyser les journaux de tout logiciel qui a l’authentification telle que WordPress et à partir des échecs actuels comprennent les IP source dans les filtres dans le pare-feu.

Il est très simple à utiliser et est disponible dans plusieurs référentiels pour différentes distributions Linux.

Ci-dessous, je vais vous montrer comment faire une installation et la configuration en utilisant Centos 8 avec le pare-feu

Instalando os recursos necessários

Les lignes ci-dessous installent tous les éléments nécessaires.

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

À partir de ce point devrait déjà avoir fail2ban installé et aussi le pare-feu.

REMARQUE: Si vous utilisez le shell à partir d’une connexion SSH, il est nécessaire d’ajouter le port de connexion à zone publique de sorte que vous ne finissez pas par activer le pare-feu et bloquer l’accès à distance.

Pour ce faire, utilisez la commande:

$ sudo systemctl commencer pare-feu &;&; sudo Pare-feu-cmd --zone=public --ajouter-Port=22/Tcp --permanent &;&; sudo Pare-feu-cmd --zone=public --ajouter-service=https --permanent &;&; sudo Pare-feu-cmd --zone=public --ajouter-service=http (en anglais) --permanent &;&; sudo Pare-feu-cmd --recharger

Si tout va bien, vous serez avec le pare-feu actif en ce moment et avec les ports 80, 443 et 22 libéré dans la zone publique.

Maintenant, nous allons activer les services afin qu’ils commencent toujours avec le système.

$ sudo systemctl activer fail2ban
$ sudo systemctl activer firewalld

WPFail2Ban

Comme nous parlons de WordPress, je ne vais pas montrer comment configurer fail2ban pour lire les journaux du serveur Web et d’interdire les IP d’eux. Il ya une façon beaucoup plus simple de le faire en utilisant un plugin approprié. Le WPFail2Ban. Il suffit de l’installer et prêt.

Avec WPFail2Ban installé et sans modifier aucun réglage, il ajoutera toutes les défaillances de tentative de connexion au fichier syslog système par défaut qui, dans le cas de CentOS est le /var/log/messages.

Dans mon installation, Je n’ai pas utilisé les paramètres indiqués dans le manuel WPFail2Ban, même parce qu’il n’y avait pas Filtres Indiqué.

La première chose à faire est de créer un filtre pour Fail2Ban. Créons un fichier de filtre dans /etc/fail2ban/filter.d/wordpress.conf.

Les lignes suivantes supposent qu’il n’y a pas d’autre fichier de configuration à utiliser avec WordPress. Je suis un dévot de vim, mais utilisez l’éditeur que vous préférez.

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

Ajouter les lignes suivantes:

Filtre Fail2Ban pour les échecs d’authentification worpdpress
#
[COMPREND]
avant = common.conf
[Définition]
_daemon = wordpress failregex = ^%(__prefix_line)Échec de l’authentification pour .* De $
^%(__prefix_line)sDévaluation bloquée pour .* De $
^%(__prefix_line)Tentative d’authentification sXML-RPC pour inconnu.* à partir de $
^%(__prefix_line)sDéplacement d’énumération d’utilisateurs bloqués à partir de $
^%(__prefix_line)sPingback demandé à $
ignoreregex =
# DEV Notes:
#
# Auteur: Marcos Regis

Je ne vais pas entrer dans les détails des lignes, juste qu’ils sont prêts à capturer la plupart des défaillances d’authentification que le moteur WPFail2Ban enverra au fichier journal.

L’étape suivante consiste à définir l’action qui sera entreprise lorsque fail2ban trouve une entrée qui correspond à l’une des valeurs par défaut définies dans le fichier de configuration..

Ces actions sont toutes définies dans les fichiers de configuration du répertoire /Etc/fail2ban/action.d/ et pour ce que propose cet article nous intéresse les fichiers firewallcmd*. D’après mon expérience, aucune configuration n’incluait l’adresse IP dans la zone ;zone de dépôt comme je le voulais, alors j’ai créé un fichier d’action. Sous le contenu d’un fichier firewallcmd-drop.conf.

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

L’étape suivante consiste à créer l’entrée qui activera le filtre et le. Pour ce faire,, créer ou modifier le fichier /Etc/fail2ban/Prison.local et ajouter les lignes suivantes:

# Filtre pour les tentatives de connexion wordpress
[WordPress]
activé = true logpath = /var/log/messages action = firewallcmd-drop

A partir de là, tout est prêt pour démarrer le service. Dès que Fail2Ban démarre et s’il y a déjà des entrées dans les journaux qui correspondent au modèle à rechercher, Vous verrez les adresses IP ajoutées à la liste de blocage dans le pare-feu.

$ sudo systemctl start fail2ban

Pour afficher les IP bloqués dans le type de pare-feu Pare-feu-cmd --liste-tout --zone-goutte, vous verrez une sortie qui ressemble:

goutte (Active)  
   cible: DROP icmp-block-inversion: pas d’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: 
   protocole: 
   mascarade: pas de ports de transfert: 
   ports-sources: 
   icmp-blocs: 
   règles riches: 

Et c’est tout. Si vous avez des commentaires sur le contenu, se sentir à l’aise. J’espère que ça t’aidera autant que tu m’as aidé..

Câlins.

Laisser une réponse

Votre adresse email ne sera pas publié. Les champs obligatoires sont marqués *

Ce site utilise Akismet pour réduire le spam. Apprenez comment vos données de commentaire sont transformées.