Двухфакторная аутентифікація для WordPress

В кінці минулого року на мій сайт   ZLONOV

В кінці минулого року на мій сайт ZLONOV.ru , Реалізований на базі популярного CMS-движка WordPress, була здійснена атака з перебором паролів і тоді ж в якості однієї з захисних був встановлений плагін для обмеження спроб авторизації - Limit Login Attempts .

Плагін рекомендую: налаштовується просто, працює чітко - блокує доступ з IP адреси при перевищенні встановленого числа помилкових спроб. При цьому про спроби підбору пароля може повідомляти листом поштою, ніж я і користувався.

Limit Login Attempts

Так ось, за останні пару місяців число таких листів стало неприємно рости - спроби підібрати пароль наполегливо тривають. До слова, основний пік атак цілком очікувано доводиться на вихідні дні і нічний час.

Явно прийшов час підвищити безпеку ще раз. Як відомо , Одним із способів посилення аутентифікації є використання двох факторів - тобто застосування ще чогось крім всюдисущого пароля. Власне, впровадженням рішення для двофакторної аутентифікації в WordPress я і вирішив потурбуватися.

Движок для сайту WordPress славиться тим, що для нього створено величезну кількість плагінів як платних, так і безкоштовних, істотно розширюють базову функціональність. Шукати і скачувати плагіни краще на офіційному сайті , Так все ж ризик скачати щось з вбудованим шкідливим кодом мінімальні. Рівне з цієї ж причини бажано не користуватися плагінами, у яких низький рейтинг або мала кількість завантажень (в бібліотеці плагінів на WordPress.org цю інформацію видно).

Двухфакторная аутентифікація в англомовних джерелах найчастіше позначається як 2FA (two-factor authentication), плагінів з таким тегом рівно 20 штук: https://ru.wordpress.org/plugins/tags/2fa

Більш-менш реальних кандидатів на установку виявилося три:

  1. Clef Two-Factor Authentication : 800 000+ установок, рейтинг 4,5 з 5 (89 оцінок), автори: Dave Ross, Jesse Pollak, Andrew Russell і Laurence. Оновлення: 2 тижні тому.
  2. Google Authenticator for WordPress : 4 000+ установок, рейтинг 5 з 5 (16 оцінок), автор: Julien Liabeuf. Оновлення: 2 роки тому.
  3. Google Authenticator - Two Factor Authentication : 3 000+ установок, рейтинг 4,5 з 5 (63 оцінки), автор: miniOrange. Оновлення: 6 днів назад.

Перший плагін з колосальним відривом за популярністю і, чесно кажучи, був упевнений, що на ньому і зупинюся. Другий і третій використовують утиліту від Google, а значить, по крайней мере в безпеки протоколу і самого додатка на телефоні можна бути впевненим - все ж Google питань безпеки приділяє багато уваги. Звичайно, завжди залишається питання реалізації в самому плагін, але всі інші 17 доступних варіантів повністю розроблені компаніями, які мені на поточний момент не особливо відомі, що все-таки ще гірше.

Clef виявився досить цікавим рішенням: вікно входу за логіном-паролем замінюється на рухому картинку з такими собі вертикальними хвилями. Для входу потрібно запустити додаток на смартфоні і за допомогою камери вважати цей своєрідний штрих-код.

Вхід на ZLONOV.ru через Clef

Подальша аутентифікація відбувається автоматично без введення додатково логіна, пароля або чогось ще.

Штука, звичайно, зручна, тим більше, що таким же чином можна аутентифицироваться на великій кількості різноманітних сайтів , При цьому нічого запам'ятовувати або записувати не потрібно.

Мене не влаштувало всього два, але принципових моменти. По-перше, для коректної роботи Clef потрібно дозволити в браузері підтримку сторонніх cookies. Не те щоб я був параноїком, але без них якось спокійніше . Підвищувати безпеку одного за рахунок зниження безпеки іншого - не завжди найкращий варіант.

По-друге, ніяка це не двухфакторная аутентифікація. У кращому випадку - двоканальна: запит мого аутентифікатора відбувається по іншому каналу, не через браузер, а через мобільний додаток і сервера Clef. Але фактор, по суті один - то, що у мене є, тобто телефон. Була б можливість залишити запит пароля - користувався б Clef із задоволенням.

З двох кандидатів, що залишилися на використання більш кращий з моєї точки зору був той, що регулярно оновлюється, тому приступив до установки Google Authenticator - Two Factor Authentication .

Для настройки потрібно зареєструватися та вибрати тарифний план. Безкоштовного для моїх цілей цілком достатньо:

Варіантів аутентифікації плагін пропонує досить великий вибір:

Варіантів аутентифікації плагін пропонує досить великий вибір:

miniOrange2 - варіанти аутентифікації

Після установки і настройки при вході в адміністративну панель спочатку потрібно ввести логін і пароль, після чого буде запитано другий фактор - одноразовий код з Google Authenticator:

miniOrange2 - запит одноразового коду

Що ж, на цьому можна вирішувати поставлену задачу успішно вирішеною.

Уже після настройки рішення від miniOrange знайшов в каталозі плагінів ще один варіант з нехитрою назвою Google Authenticator (У нього немає мітки 2FA, тому спочатку пропустив його). У плагіна хороший рейтинг і велике число установок:

У плагіна хороший рейтинг і велике число установок:

Google Authenticator

Заради інтересу поставив його і зрозумів, що це саме те, що потрібно - мінімум налаштувань, нічого зайвого, ніякої реєстрації і іншої мішури. При цьому запит одноразового коду відбувається на тому ж екрані, де і самого основного пароля - так навіть зручніше, ніж послідовний варіант у випадку з miniOrange.

Google Authenticator Settings

Google Authenticator Settings

Google Authenticator - вікно входу на ZLONOV.ru

Свій остаточний вибір зупинив саме на цьому рішенні, рекомендую.

На завершення посту - короткий список з коментарями TOP-9 полігонів, які шукаються на сайті WordPress.org по мітці authentication . Поки вибирав відповідний для вирішення завдання організації двофакторної аутентифікації, заодно подивився і ці. Ось що знайшлося по цій мітці:

  1. Limit Login Attempts . Трохи вище вже про нього написав, 2FA він не реалізує.
  2. Clef Two-Factor Authentication . Так, і з цього тегу він виявився в ТОП найпопулярніших.
  3. iThemes Security (раніше Better WP Security) . Пропонує цікавий комплексний підхід до забезпечення безпеки, але 2FA доступна тільки в платній PRO версії .
  4. InfiniteWP Client . Орієнтований на спрощення роботи з декількома сайтами на WordPress одночасно, не зовсім те, що потрібно. Більш того, судячи по рекламному ролику , Для доступу до всіх сайтів взагалі використовується один єдиний майстер-пароль. Якась прямо зворотна завдання =)
  5. Loginizer . Знову 2FA тільки в платній Premium версії.
  6. BulletProof Security . Ще одне комплексне рішення, але в описі можливостей 2FA не згадується ні для платної, ні для безкоштовної версії.
  7. Acunetix WP Security . Сканер безпеки. Намагається вирішити деякі проблеми безпеки WordPress, але застосовувати краще з обережністю, бездумне включення опцій може вплинути на працездатність сайту. Про 2FA ні слова.
  8. Peter's Login Redirect . Тонка настройка перенаправлення користувачів після логіна. Не те.
  9. Acunetix Secure WordPress . Ще один комбайн від Acunetix.