Двухфакторная аутентификация для WordPress
Данный пост перенесён автоматически с предыдущего варианта сайта. Возможны артефакты. Если информация этого поста важна для вас, свяжитесь со мной для получения полного содержимого.
В конце прошлого года на мой сайт ZLONOV.ru, реализованный на базе популярного CMS-движка WordPress, была осуществлена атака с перебором паролей и тогда же в качестве одной из защитных был установлен плагин для ограничения попыток авторизации - Limit Login Attempts.
Плагин рекомендую: настраивается просто, работает чётко - блокирует доступ с IP адреса при превышении установленного числа ошибочных попыток. При этом о попытках подбора пароля может уведомлять письмом по почте, чем я и пользовался.
[caption id=”attachment_9019” align=”aligncenter” width=”500”] Limit Login Attempts[/caption]
Так вот, за последние пару месяцев число таких писем стало неприятно расти - попытки подобрать пароль упорно продолжаются. К слову, основной пик атак вполне ожидаемо приходится на выходные дни и ночное время.
Явно пришло время повысить безопасность ещё раз. Как известно, одним из способов усиления аутентификации является использование двух факторов - т.е. применение ещё чего-то помимо вездесущего пароля. Собственно, внедрением решения для двухфакторной аутентификации в WordPress я и решил озаботиться.
Движок для сайта WordPress славится тем, что для него создано огромное количество плагинов как платных, так и бесплатных, существенно расширяющих базовую функциональность. Искать и скачивать плагины лучше на официальном сайте, так всё же риск скачать что-то со встроенным вредоносным кодом минимальны. Ровно по этой же причине желательно не пользоваться плагинами, у которых низкий рейтинг или малое количество скачиваний (в библиотеке плагинов на WordPress.org эту информацию видно).
Двухфакторная аутентификация в англоязычных источниках чаще всего обозначается как 2FA (two-factor authentication), плагинов с таким тегом ровно 20 штук: https://ru.wordpress.org/plugins/tags/2fa
Более-менее реальных кандидатов на установку обнаружилось три:
- Clef Two-Factor Authentication: 800 000+ установок, рейтинг 4,5 из 5 (89 оценок), авторы: Dave Ross, Jesse Pollak, Andrew Russell и Laurence. Обновление: 2 недели назад.
- Google Authenticator for WordPress: 4 000+ установок, рейтинг 5 из 5 (16 оценок), автор: Julien Liabeuf. Обновление: 2 года назад.
- Google Authenticator - Two Factor Authentication: 3 000+ установок, рейтинг 4,5 из 5 (63 оценки), автор: miniOrange. Обновление: 6 дней назад.
Первый плагин с колоссальным отрывом по популярности и, честно говоря, был уверен, что на нём и остановлюсь. Второй и третий используют утилиту от Google, а значит, по крайней мере в безопасности протокола и самого приложения на телефоне можно быть уверенным - всё же Google вопросам безопасности уделяет много внимания. Конечно, всегда остаётся вопрос реализации в самом плагине, но все остальные 17 доступных вариантов полностью разработаны компаниями, которые мне на текущий момент не особо известны, что всё-таки ещё хуже.
Clef оказался достаточно интересным решением: окно входа по логину-паролю заменяется на движущуюся картинку с эдакими вертикальными волнами. Для входа нужно запустить приложение на смартфоне и с помощью камеры считать этот своеобразный штрих-код.
[caption id=”attachment_9023” align=”aligncenter” width=”418”] Вход на ZLONOV.ru через Clef[/caption]
Дальнейшая аутентификация происходит автоматически без ввода дополнительно логина, пароля либо чего-то ещё.
Штука, конечно, удобная, тем более, что таким же образом можно аутентифицироваться на большом количестве разнообразных сайтов, при этом ничего запоминать либо записывать не требуется.
Меня не устроило всего два, но принципиальных момента. Во-первых, для корректной работы Clef нужно разрешить в браузере поддержку сторонних cookies. Не то чтобы я был параноиком, но без них как-то спокойней. Повышать безопасность одного за счёт снижения безопасности другого - не всегда лучший вариант.
Во-вторых, никакая это не двухфакторная аутентификация. В лучшем случае - двухканальная: запрос моего аутентификатора происходит по иному каналу, не через браузер, а через мобильное приложение и сервера Clef. Но фактор, по сути один - то, что у меня есть, т.е. телефон. Была бы возможность оставить запрос пароля - пользовался бы Clef с удовольствием.
Из двух оставшихся кандидатов на использование более предпочтителен с моей точки зрения был тот, что регулярно обновляется, поэтому приступил к установке Google Authenticator - Two Factor Authentication.
Для настройки нужно зарегистрироваться и выбрать тарифный план. Бесплатного для моих целей вполне достаточно:
Вариантов аутентификации плагин предлагает достаточно большой выбор:
[caption id=”attachment_9027” align=”aligncenter” width=”1024”] miniOrange2 - варианты аутентификации[/caption]
После установки и настройки при входе в административную панель сначала нужно ввести логин и пароль, после чего будет запрошен второй фактор - одноразовый код из Google Authenticator:
[caption id=”attachment_9029” align=”aligncenter” width=”427”] miniOrange2 - запрос одноразового кода[/caption]
Что ж, на этом можно решать поставленную задачу успешно решённой.
[hr]
Уже после настройки решения от miniOrange нашёл в каталоге плагинов ещё один вариант с незамысловатым названием Google Authenticator (у него нет метки 2FA, поэтому сначала пропустил его). У плагина хороший рейтинг и большое число установок:
[caption id=”attachment_9030” align=”aligncenter” width=”475”] Google Authenticator[/caption]
Ради интереса поставил его и понял, что это как раз то, что нужно - минимум настроек, ничего лишнего, никакой регистрации и прочей мишуры. При этом запрос одноразового кода происходит на том же экране, где и самого основного пароля - так даже удобнее, чем последовательный вариант в случае с miniOrange.
[caption id=”attachment_9031” align=”aligncenter” width=”895”] Google Authenticator Settings[/caption]
[caption id=”attachment_9032” align=”aligncenter” width=”371”] Google Authenticator - окно входа на ZLONOV.ru[/caption]
Свой окончательный выбор остановил именно на этом решении, рекомендую.
[hr]
В завершение поста - краткий список с комментариями TOP-9 плагинов, которые ищутся на сайте WordPress.org по метке authentication. Пока выбирал подходящий для решения задачи организации двухфакторной аутентификации, заодно посмотрел и эти. Вот что нашлось по этой метке:
- Limit Login Attempts. Чуть выше уже про него написал, 2FA он не реализует.
- Clef Two-Factor Authentication. Да, и по этому тегу он оказался в ТОП самых популярных.
- iThemes Security (ранее Better WP Security). Предлагает интересный комплексный подход к обеспечению безопасности, но 2FA доступна только в платной PRO версии.
- InfiniteWP Client. Ориентирован на упрощение работы с несколькими сайтами на WordPress одновременно, не совсем то, что нужно. Более того, судя по рекламному ролику, для доступа ко всем сайтам вообще используется один единственный мастер-пароль. Какая-то прямо обратная задача =)
- Loginizer. Снова 2FA только в платной Premium версии.
- BulletProof Security. Ещё одно комплексное решение, но в описании возможностей 2FA не упоминается ни для платной, ни для бесплатной версии.
- Acunetix WP Security. Сканер безопасности. Пытается решить некоторые проблемы безопасности WordPress, но применять лучше с осторожностью, бездумное включение опций может повлиять на работоспособность сайта. Про 2FA ни слова.
- Peter's Login Redirect. Тонкая настройка перенаправления пользователей после логина. Не то.
- Acunetix Secure WordPress. Ещё один комбайн от Acunetix.
Комментарии из Telegram
Комментарии ВКонтакте