Passer au contenu principal

Lutte contre la force brutale wordpress



Pendant assez longtemps, sur divers sites Web et forums, il y avait des articles et des sujets qui parlaient de nombreuses attaques par force brute sur des sites wordpress. Récemment dû faire face à cette infection. :)

Dans cet article, je voudrais vous parler de mon expérience en matière de sélection d'un mot de passe sur des sites qui fonctionnent sur WordPress. Je constate immédiatement que tous mes sites fonctionnent sur nginx + php-fpm .



À titre d’instruction, un article a été pris comme base. Cependant, la recette décrite a dû être légèrement modifiée pour les spécificités de ses attaquants. :)

Personnalisation



La première étape consiste à installer fail2ban. Cela ne devrait pas causer de difficultés.

  aptitude install fail2ban 

Après cela, nous ajoutons ce qui suit à la fin du fichier de configuration /etc/fail2ban/jail.conf :

  [nginx-wp-auth]
 enabled = true
 filtre = nginx-wp-auth
 action = iptables-multiport [nom = wp-auth, port = "http, https"]
 logpath = /var/log/nginx/*.access.log
 maxretry = 3
 bantime = 3600 

Dans ce cas, l’ action bloquera l’accès des violeurs uniquement sur les protocoles spécifiés et les marquera comme wp-auth. Dans le chemin de journalisation, spécifiez le chemin d'accès aux journaux.



Tous les journaux seront analysés, tels que example.com.access.log. Pour les journaux de site Web, vous pouvez définir des noms spéciaux, tels que wordpress-example.com.access.log, afin que seuls ces fichiers journaux soient analysés.

Le nombre maximal de tentatives d'autorisation pour une adresse IP est de trois. Le temps de blocage est une heure. Ces deux paramètres peuvent être sélectionnés individuellement.

L'étape suivante consiste à créer un filtre.

  touchez /etc/fail2ban/filter.d/nginx-wp-auth.conf 

Au cours de cette action, j'ai eu des difficultés: l'exemple de l'article original n'a pas fonctionné. Et il devait changer. :)

  [Définition]
 failregex = <HOST>. * / wp-login.php HTTP / 1.1 "200
      <HOST>. * / Wp-login.php / HTTP / 1.1 "302
      <HOST>. * / Wp-login.php HTTP / 1.0 "200
 ignoreregex =

Le premier paramètre contient toutes les correspondances qui doivent être trouvées dans les fichiers journaux. Ici, vous devez analyser les requêtes des attaquants dans les journaux de votre serveur et en ajouter tous les suspects liés à wp-login.php.

Le second paramètre est destiné aux exceptions de la première ligne. Ce n'est pas obligatoire et reste vide.

Tests

Après avoir créé le filtre, vérifiez son fonctionnement avec la commande:

  fail2ban-regex / var / log / nginx / example.com .access.log /etc/fail2ban/filter.d/nginx-wp-auth.conf 

Les résultats trouvés seront affichés dans les résultats du test. Par exemple:

  Lancer des tests
 =============

 Utilisez le fichier regex: /etc/fail2ban/filter.d/nginx-wp-auth.conf
 Utilisez le fichier journal: /var/log/nginx/***.ru..access.log


 Les résultats
 =======

 Failregex
 | - Expressions régulières:
 |  [1]. * / Wp-login.php HTTP / 1.1 "200
 |  [2]. * / Wp-login.php / HTTP / 1.1 "302
 |  [3]. * / Wp-login.php HTTP / 1.0 "200
 |
 `- Nombre de matches:
    [1] 1 résultat (s)
    [2] 0 correspondance (s)
    [3] 0 correspondance (s)

 Ignoreregex
 | - Expressions régulières:
 |
 `- Nombre de matches:

 Résumé
 =======

 Adresses trouvées:
 [1]
     192.99.186.30 (ven. Juil. 04 07:29:20 2014)
 [2]
 [3]

 Date de frappe du modèle:
 0 hit (s): MOIS Jour Heure: Minute: Seconde
 0 hit (s): WEEKDAY MOIS Jour Heure: Minute: Deuxième Année
 0 résultat (s): MOIS DE SEMAINE Jour Heure: Minute: Seconde
 0 résultat (s): Année / Mois / Jour Heure: Minute: Seconde
 0 résultat (s): Jour / Mois / Année Heure: Minute: Seconde
 0 résultat (s): Jour / Mois / Année Heure: Minute: Seconde
 58 hit (s): jour / mois / année: heure: minute: seconde
 0 hit (s): Mois / Jour / Année: Heure: Minute: Seconde
 0 résultat (s): Année-Mois-Jour Heure: Minute: Seconde
 0 résultat (s): Année, Mois, Jour Heure: Minute: Seconde
 0 résultat (s): Jour-MOIS-Année Heure: Minute: Seconde [.Milliseconde]
 0 résultat (s): Jour-Mois-Année Heure: Minute: Seconde
 0 résultat (s): TAI64N
 0 résultat (s): Epoque
 0 résultat (s): ISO 8601
 0 résultat (s): heure: minute: seconde
 0 résultat (s): <Mois / Jour / Année @ Heure: Minute: Seconde>

 Succès, le nombre total de matchs est 1 

Vérification du journal de verrouillage

Fail2ban enregistrera tous les verrous produits. Si nécessaire, vous pouvez vérifier la présence du fichier journal /var/log/fail2ban.log.

  grep AVERTISSEMENT /var/log/fail2ban.log 


Comment évaluez-vous l'article?
Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 (Pas encore de notes)
Chargement ...

Ajouter un commentaire

Votre email ne sera pas publié.