Безопасность сайта

Двухфакторная аутентификация для админки сайта: какую выбрать

TOTP, SMS, U2F и push-уведомления для входа в админку WordPress, Битрикс, OpenCart. Что включить за 30 минут и не сломать вход.

обновлено 11 минут чтения 0 Дмитрий Акиндинов
Содержание
  1. Что такое второй фактор и почему один пароль это мало
  2. Какие виды 2FA есть и какой выбирать
  3. Как ставить 2FA на разные CMS
  4. Резервные коды: куда класть, чтобы не потерять
  5. Что ставить администратору и что обычному пользователю
  6. Типичные ошибки, на которых ломаются проекты
  7. Что включить уже сегодня, минимальный план на 30 минут
  8. Что я ставлю клиентам по умолчанию
  9. Частые вопросы

По логам типичного WordPress на shared-хостинге проходит от 50 до 500 попыток входа в сутки. Второй фактор закрывает их полностью: даже верный пароль без одноразового кода не пускает. Настройка занимает около получаса вместе с сохранением резервных кодов.

Брутфорс админки в 2026 году это ежедневный фон, который владелец сайта обычно даже не видит. По логам типичного WordPress на shared-хостинге проходит от 50 до 500 попыток в сутки, в основном по /wp-login.php и /xmlrpc.php. Большая часть отбивается длинным паролем и блокировкой по IP, но рано или поздно бот находит пароль из утечки или подбирает по словарю. Двухфакторная аутентификация это страховка ровно на этот случай: даже зная пароль, без второго фактора в админку не войти.

Я ставлю 2FA на каждом проекте, который беру на абонентское обслуживание, в первую неделю работы. Ниже разберу, какой второй фактор реально работает в 2026 году, какой работает, но всё ломает, и как ставить, чтобы не остаться за дверью самому.

Смартфон с одноразовым кодом и форма входа на ноутбуке

Что такое второй фактор и почему один пароль это мало

Аутентификация по смыслу делится на три категории:

  • Что вы знаете: пароль, PIN, ответ на секретный вопрос.
  • Что у вас есть: телефон, ключ-карта, USB-токен.
  • Что вы есть: отпечаток пальца, лицо, сетчатка.

Один фактор это пароль. Два фактора это пароль плюс что-то из второй или третьей категории. Ключевое условие: факторы должны принадлежать к разным категориям. Два пароля это не двухфакторка, это просто длинный пароль.

В 2026 году одного пароля категорически мало. Причины известны:

  • Пароли утекают пачками. На сайте haveibeenpwned.com уже больше 12 миллиардов скомпрометированных учётных записей, и каждый день добавляется новая утечка.
  • Боты автоматически подставляют пары логин-пароль из старых утечек на новые сайты, потому что 60 процентов людей переиспользуют пароль хотя бы между двумя сайтами.
  • Фишинг живой и работает. Любой человек после длинного дня может ввести пароль на поддельной странице, и сам этого не заметит.

Со вторым фактором всё это не страшно. Бот, у которого есть ваш пароль, не зайдёт без одноразового кода с вашего телефона. Фишер увидит пароль, но без второго фактора у него руки коротки.

Какие виды 2FA есть и какой выбирать

Не все вторые факторы одинаково полезны. Расскажу про реальные плюсы и минусы каждого.

TOTP, одноразовые коды из приложения

TOTP это Time-based One-Time Password. Работает так: у вас в приложении на телефоне генерируется шестизначный код, который меняется каждые 30 секунд. На сервере хранится тот же секрет, и сервер тоже знает текущий код. При входе вы вводите пароль и текущий код, сервер сверяет.

Приложения, которые я рекомендую: Aegis Authenticator (Android), 2FAS (iOS и Android), KeePassXC встроенный TOTP, Bitwarden Premium. Microsoft Authenticator и Google Authenticator работают, но Microsoft требует учётной записи и не делает локального экспорта, а у Google в 2024 был эпизод с потерей TOTP-секретов при сбросе. Aegis и 2FAS бесплатные, открытые, экспортируются в зашифрованный файл и переезжают с одного телефона на другой за минуту.

Плюсы TOTP: работает без интернета на телефоне (только время правильное), не зависит от оператора связи, не требует SMS, бесплатно. Минусы: если потеряли телефон без экспорта секретов, доступ восстанавливается через резервные коды или поддержку. Плюс надо помнить, что TOTP уязвим для качественного фишинга в реальном времени, потому что код можно перехватить и сразу использовать на настоящем сайте.

Это базовый вариант, который я ставлю по умолчанию.

SMS-коды

SMS как второй фактор это лучше, чем ничего, но хуже, чем TOTP. Причины: SIM-swap (когда мошенник по доверенности или в сговоре с сотрудником оператора получает себе SIM с вашим номером), задержки в доставке, пропадание сигнала в провинции, дорого для оператора и поэтому в B2B-сервисах часто платно.

В России в 2026 году с SMS особая история. Многие банки и сервисы давно перешли на push в собственное приложение или на TOTP. Для админки сайта SMS это запасной вариант. Допустимо, если выбора нет, но не основной.

Push-уведомления и магические ссылки в почте

Это часто называют 2FA, но строго говоря это разные истории. Push-уведомление от приложения вашего же сервиса (например, Bitrix24 шлёт push в свой мобильник) это удобно, но требует, чтобы у вас был установлен и залогинен мобильный клиент.

Магическая ссылка в email это удобство для регистрации и сброса пароля, но не строгий второй фактор. Если у вас взломали почту, ссылка тоже будет у злоумышленника. Поэтому 2FA в админку через email я не считаю настоящей двухфакторкой, это удобный второй пароль.

Аппаратные ключи U2F и FIDO2

YubiKey, Nitrokey, SoloKey и подобные. Самый сильный вариант защиты. Ключ это USB-устройство (или NFC), которое подтверждает вход физическим нажатием кнопки. Фишеры почти бессильны: ключ привязан к домену, и при попытке входа на поддельном сайте ключ просто не сработает.

Минус один и серьёзный: цена и логистика. YubiKey 5 это около 50 долларов, нужно держать минимум два штуки (один в работе, один в сейфе как резерв), и ввоз в Россию в 2026 ограничен. Для маленького проекта это перебор. Для команды из десяти человек, у которой есть ответственность за чужие данные, это уже разумно.

Я ставлю U2F на свои собственные критичные аккаунты (хостинг-провайдер, регистратор домена, GitHub). Для клиентских админок это редкость, обычно хватает TOTP.

Биометрия

Отпечаток или Face ID на смартфоне это удобно, но это не отдельный фактор для веб-админки. Биометрия используется внутри устройства (телефон или ноутбук), чтобы разблокировать доступ к ключу или к менеджеру паролей. На уровне веб-сайта это всё ещё TOTP или U2F, просто разблокировка приложения происходит через биометрию.

Удобно, но не считаем за отдельный пункт.

Как ставить 2FA на разные CMS

WordPress

В каталоге плагинов есть несколько живых решений. Я использую один из двух, в зависимости от ситуации.

Wordfence Login Security. Это бесплатная подсистема большого плагина Wordfence, можно поставить отдельно. Поддерживает TOTP, U2F и резервные коды. Включает CAPTCHA для логина и блокировку XML-RPC. Работает стабильно, переводов на русский нет, но интерфейс понятный.

Two Factor Authentication от Plugin Vault (бывший David Anderson). Лёгкий плагин, делает только TOTP и резервные коды, без лишнего. Хороший выбор, если не хотите большой комбайн.

Установка: в админке плагин активируется, в профиле пользователя появляется раздел Two-Factor Options. Жмёте Enable, сканируете QR-код приложением Aegis или 2FAS, вводите первый код для подтверждения, скачиваете 10 резервных кодов и кладёте в менеджер паролей. Логаут, повторный вход с TOTP, проверка работает.

Если вы единственный администратор, после включения сразу зайдите по второму браузеру, чтобы убедиться, что вход работает с двумя факторами. Не закрывайте первую сессию до проверки. На моей практике 1 случай из 30 это сбившееся время на сервере и невалидный TOTP.

Битрикс

В коробочном Битриксе своя двухфакторка появилась в 2018 году и работает прилично. Активация: в Настройки > Пользователи > Группы пользователей, в группе администраторов отмечаете Обязательное использование одноразового кода. После следующего входа Битрикс предложит привязать TOTP-приложение.

Битрикс умеет работать с приложением Bitrix24, но не настаивает на нём. Подходит любой стандартный TOTP-клиент.

Особенность Битрикса: он умеет временно отключать 2FA на отдельные IP. Удобно для офиса, опасно для дома, потому что динамические IP меняются. Я обычно не использую whitelist по IP вообще, чтобы не было соблазна оставить дыру.

OpenCart

В OpenCart встроенной 2FA нет. Есть платные модули и пара живых бесплатных. На моей практике проще всего ставить общий уровень защиты на сервере (HTTP Basic Auth перед /admin/) и привязывать вход к VPN или к IP офиса. Это не классическая 2FA, но эффективнее: на админку OpenCart никто не попадёт без второго слоя авторизации перед ней.

Для команд, где нужна именно гибкая 2FA, рекомендую переезд на OpenCart с расширением mPay TFA или на иной движок. OpenCart и так не самое современное решение для интернет-магазина в 2026 году, и подобная история с безопасностью усиливает довод за миграцию.

MODX, Joomla, и другие

В MODX Revolution есть extra 2FA Provider, поддерживает TOTP. В Joomla 4 двухфакторка встроенная, в профиле пользователя выбирается тип Authentication Code. В Drupal плагин Two-factor Authentication.

Для статических сайтов на Astro, Hugo, Next.js админки как таковой нет, есть только кабинет вашего CI или CMS-прослойки. У Decap CMS, например, аутентификация делается через GitHub OAuth, и второй фактор настраивается в самом GitHub. У Strapi, Sanity и других headless CMS встроенная 2FA или интеграция с OAuth-провайдером, у которого она есть.

Замок с двумя ключами и значок безопасности

Резервные коды: куда класть, чтобы не потерять

Когда включаешь TOTP, любой нормальный плагин выдаёт пакет из 6-10 одноразовых кодов на случай, если вы потеряете телефон. Это самый недооценённый и самый критичный пункт. Если резервные коды лежат в Заметках на том же телефоне, который вы потеряли, они вам не помогут.

Мой рабочий вариант:

  • 5 кодов в менеджер паролей (Bitwarden, KeePassXC), в раздел того же сайта.
  • 5 кодов на бумаге в физическом сейфе или в конверте дома.
  • TOTP-секрет (тот, что прячется за QR-кодом) в зашифрованной заметке менеджера паролей. Если потеряли телефон, можно завести TOTP заново на новом устройстве из секрета.

Звучит параноидально, но процедура настройки одна на сайт, а спокойствие постоянное.

Что ставить администратору и что обычному пользователю

В типичном корпоративном сайте есть один-два администратора и десятки авторов или менеджеров заявок. Не обязательно нагружать всех одинаково.

  • Администратор и владелец: 2FA обязательна, минимум TOTP, желательно с U2F.
  • Главный редактор, человек с правом публикации: 2FA обязательна, TOTP достаточно.
  • Авторы постов, наполнители каталога: 2FA желательна, не обязательна. Проще снизить ущерб от компрометации (правильные роли, минимум прав), чем заставлять всех ставить приложение.
  • Клиенты в личном кабинете магазина: 2FA опциональна. Принудительно лучше не делать, иначе обвал конверсии. Подсказывать, поощрять, может быть скидку давать.

Типичные ошибки, на которых ломаются проекты

Ошибка 1: включил себе и закрыл первую сессию

Самая популярная история. Включил TOTP, отсканировал QR, нажал Enable, закрыл вкладку. Потом понимает, что время на сервере отличается от телефона на 2 минуты, и коды не сходятся. В админку не зайти.

Лечение: всегда держим параллельно вторую сессию в другом браузере. Включили в одной, проверили вход во второй, только потом расслабляемся.

Ошибка 2: один TOTP-аккаунт на нескольких пользователей

Часто маленькая команда заходит в админку под одним общим логином, и TOTP лежит на телефоне у одного человека. Когда этот человек уезжает в отпуск, никто зайти не может.

Лечение: личные учётки для каждого, у каждого свой TOTP. Это и для безопасности, и для ясности логов.

Ошибка 3: сбившееся время на сервере

TOTP работает по времени. Если на сервере время убежало на минуту от реального, коды от телефона не сойдутся. Чините через timedatectl на VPS или через тикет хостеру на shared.

Простая проверка: date -u на сервере должно совпадать с date -u на вашей машине. Допустимое отклонение TOTP 30 секунд в каждую сторону, дальше начинаются проблемы.

Ошибка 4: 2FA только на форме входа, а API открыт

В WordPress XML-RPC и REST API часто принимают пароль без TOTP. То есть боту достаточно пароля, чтобы создать пост или удалить контент через API. Если включаете 2FA, обязательно закрывайте XML-RPC (<Files xmlrpc.php>Require all denied</Files> в .htaccess), и проверяйте, что плагин 2FA закрывает REST API тоже.

Ошибка 5: восстановление пароля через email обходит 2FA

Если ваш почтовый ящик скомпрометирован, злоумышленник через Lost your password? сбрасывает пароль и заходит в админку. Если плагин 2FA после смены пароля разрешает вход без второго фактора, всё пропало. Проверяйте: после сброса пароля 2FA должна оставаться включённой и требоваться при первом же входе.

В Wordfence Login Security и в Two Factor Authentication от Plugin Vault поведение правильное: после сброса пароля TOTP всё равно спрашивается. Перепроверяйте это в любом плагине, который выбрали.

Админка сайта со значком безопасности и замком

Что включить уже сегодня, минимальный план на 30 минут

  1. Поставьте на телефон Aegis Authenticator или 2FAS. Бесплатно, понятно, работает.
  2. Зайдите в админку основного сайта, поставьте плагин 2FA для вашей CMS.
  3. В профиле пользователя включите TOTP, отсканируйте QR.
  4. Запишите 10 резервных кодов: 5 в менеджер паролей, 5 на бумагу в сейф.
  5. Из второго браузера (или приватного окна) сделайте полный вход с TOTP, проверьте, что работает.
  6. Закройте XML-RPC если у вас WordPress: добавьте в .htaccess блок отказа.
  7. Закройте все сессии (Logout from all devices), войдите заново.
  8. Поставьте задачу в календаре проверять резервные коды раз в полгода.

Этих шагов хватит, чтобы дальше можно было спать спокойно даже после очередной утечки в каком-нибудь сервисе, где у вас был тот же пароль.

Что я ставлю клиентам по умолчанию

Когда беру сайт на абонентское обслуживание, первая же неделя включает в себя постановку 2FA для всех админов и обзор учёток. Дополнительно отключаются стандартные логины admin, чистятся неиспользуемые пользователи, проверяются роли и закрывается XML-RPC. Это входит в любой из тарифов на /#pricing и не считается отдельной услугой.

Если хочется только разовый аудит без абонентки, опишите ситуацию через /#contact. Чаще всего за вечер закрываем и 2FA, и связанные дыры в правах. Похожие материалы по теме безопасности собраны в /blog/category/security/, и отдельная статья про хранение паролей лежит рядом, если хотите продолжить разбор инфраструктуры авторизации.

Частые вопросы

Какую двухфакторную аутентификацию выбрать

Приложение с кодом по времени: код меняется каждые 30 секунд и не зависит от связи. Коды по SMS слабее, их перехватывают подменой сим-карты. Аппаратный ключ надёжнее всех, но для сайта малого бизнеса избыточен.

Куда класть резервные коды

В менеджер паролей и распечаткой в стол. Не в тот же телефон, где стоит приложение: тогда потеря телефона отрезает оба пути сразу.

Всем ли пользователям включать второй фактор

Обязательно администраторам и редакторам. Для подписчиков и клиентов чаще вредит, чем помогает: люди теряют доступ и уходят. Разделение по ролям решает вопрос.

Что ломается при включении 2FA

Расхождение времени на сервере и телефоне: коды перестают сходиться. Плюс интеграции, которые ходят в админку по логину и паролю. Их переводят на ключи доступа до включения второго фактора.

Передайте техническую часть в надёжные руки.

Слежу за хостингом, бэкапами и обновлениями. Когда что-то пойдёт не так – звоните мне, не своему программисту, не в спортзал и не маме.

Короткие вопросы по теме

Все вопросы по теме "Безопасность сайта"

Заявка

Обсудим задачу

Напишите имя и телефон, выберите удобный канал. Перезвоню или напишу в течение часа в рабочее время.

Куда удобнее ответить?