Skip to main content

Барацьба з брутфорсу на wordpress



Даволі даўно на розных сайтах і форумах артыкула і тэмы, у якіх гаварылася пра шматлікія брутфорсу-нападах на wordpress-сайты. Нядаўна давялося сутыкнуцца з гэтай заразай. :)

У дадзеным пасце хацелася б расказаць аб сваім вопыце барацьбы з падборам пароля на сайтах, якія працуюць на WordPress. Адразу адзначу, што ўсе мае сайты працуюць на nginx + php-fpm .



У якасці інструкцыі ў аснову была ўзятая адзін артыкул. Аднак, апісаны рэцэпт давялося крыху мадыфікаваць пад спецыфіку сваіх атакавалых. :)

Настройка



Перш за ўсё неабходна ўсталяваць fail2ban. Гэта не павінна выклікаць цяжкасцяў.

  aptitude install fail2ban 

Пасля чаго ў канец канфігурацыйнага файла /etc/fail2ban/jail.conf дадаем наступнае:

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

У дадзеным выпадку action будзе блакаваць доступ для парушальнікаў толькі па ўказаных пратаколах і пазначаць іх як wp-auth. У logpath паказваем шлях да логам.



Будуць аналізавацца ўсе логі, тыпу example.com.access.log. Для логаваў сайтаў на вордпресс можна задаць асаблівыя імёны, напрыклад, wordpress-example.com.access.log, каб аналізаваліся толькі гэтыя лог-файлы.

Максімальную колькасць спробаў аўтарызацыі для аднаго АйПі - тры. Час блакавання - гадзіну. Абодва гэтыя параметру можна падбіраць ў індывідуальным парадку.

Наступным крокам будзе стварэнне фільтра.

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

Падчас гэтага дзеяння ў мяне паўсталі складанасці: прыклад з арыгінальнай артыкула не працаваў. І яго прыйшлося змяніць. :)

  [Definition]
 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 =

У першым параметры запісаныя ўсе супадзення, якія варта шукаць у лог-файлах. Тут трэба прааналізаваць запыты атакавалых ў логах вашага сервера і дадаць усе падазроныя, звязаныя з wp-login.php.

Другі параметр прызначаны для выключэнняў з першага радка. Ён не спатрэбіцца і застаецца пустым.

тэставанне

Пасля стварэння фільтра праверце яго працу камандай:

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

Выяўленыя супадзення будуць адлюстраваныя ў выніках тэсту. Напрыклад, так:

  Running tests
 =============

 Use regex file: /etc/fail2ban/filter.d/nginx-wp-auth.conf
 Use log file: /var/log/nginx/***.ru.access.log


 Results
 =======

 Failregex
 | - Regular expressions:
 |  [1]. * / Wp-login.php HTTP / 1.1 "200
 |  [2]. * / Wp-login.php / HTTP / 1.1 "302
 |  [3]. * / Wp-login.php HTTP / 1.0 "200
 |
 `- Number of matches:
    [1] 1 match (es)
    [2] 0 match (es)
    [3] 0 match (es)

 Ignoreregex
 | - Regular expressions:
 |
 `- Number of matches:

 Summary
 =======

 Addresses found:
 [1]
     192.99.186.30 (Fri Jul 04 07:29:20 2014)
 [2]
 [3]

 Date template hits:
 0 hit (s): MONTH Day Hour: Minute: Second
 0 hit (s): WEEKDAY MONTH Day Hour: Minute: Second Year
 0 hit (s): WEEKDAY MONTH Day Hour: Minute: Second
 0 hit (s): Year / Month / Day Hour: Minute: Second
 0 hit (s): Day / Month / Year Hour: Minute: Second
 0 hit (s): Day / Month / Year Hour: Minute: Second
 58 hit (s): Day / MONTH / Year: Hour: Minute: Second
 0 hit (s): Month / Day / Year: Hour: Minute: Second
 0 hit (s): Year-Month-Day Hour: Minute: Second
 0 hit (s): Year.Month.Day Hour: Minute: Second
 0 hit (s): Day-MONTH-Year Hour: Minute: Second [.Millisecond]
 0 hit (s): Day-Month-Year Hour: Minute: Second
 0 hit (s): TAI64N
 0 hit (s): Epoch
 0 hit (s): ISO 8601
 0 hit (s): Hour: Minute: Second
 0 hit (s): <Month / Day / Year @ Hour: Minute: Second>

 Success, the total number of match is 1 

Праверка часопіса блакаванняў

Fail2ban будзе запісваць ўсе вырабляныя блакавання. Пры неабходнасці можна правяраць лог-файл /var/log/fail2ban.log на іх наяўнасць.

  grep WARNING /var/log/fail2ban.log 


Як вы ацэніце артыкул?
Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 (Пакуль адзнак няма)
Загрузка ...

Дадаць каментар

Ваш e-mail не будзе апублікаваны.