Настройка двухфакторной авторизации WordPress в Ubuntu 14.04
Ubuntu, VPS | Комментировать запись
Безопасность – один из важнейших аспектов работы любого сайта, и в частности – сайта WordPress. К сожалению, многие пользователи по сей день не верят, что однажды хакеры могут наткнуться и на их сайт; на самом же деле, несанкционированные попытки входа в систему – довольно распространённое явление на любом сервере с доступом к сети Интернет.
В данном руководстве речь пойдёт о создании дополнительного уровня защиты сервера WordPress – о настройке двухфакторной авторизации, появление которой считается одним из наиболее значительных событий в области кибер-безопасности.
Двухфакторная авторизация (англ. two-factor authentication, или 2FA) подразумевает при входе на сайт или в систему следующее:
- наличие учётных данных (логина и пароля);
- и наличие случайно сгенерированного временного кода (т.е. его срок действия ограничивается определённым временным отрезком) – так называемого одноразового пароля (англ. one-time password, или OTP).
OTP можно получить несколькими способами:
- по SMS;
- по электронной почте;
- при помощи мобильного приложения.
Системы с высоким уровнем риска (например, банки) предпочитают получать пароли по SMS; но в данном руководстве речь пойдёт об использовании мобильного приложения для получения пароля в режиме offline. Мобильное приложение является бесплатным оптимальным вариантом, объединяющим доступность и легкость в использовании.
Цели
После настройки двухфакторной авторизации процедура входа в WordPress станет на порядок сложнее.
Кроме имени пользователя и пароля для входа понадобится временный пароль, сгенерированный мобильным приложением. Это значит, что даже в случае раскрытия или взлома учётных данных WordPress хакер не сможет войти в WordPress без вашего телефона.
В конце руководства также представлена проверенная техника восстановления, которая пригодится в случае утери мобильного телефона.
Требования
Для выполнения руководства необходим предварительно установленный и настроенный сервер WordPress. Конечно, можно адаптировать уже существующий сервер WordPress; данное руководство было выполнено в следующем окружении:
- сервер Ubuntu 14.04;
- пользователь sudo;
- свежая установка WordPress+Nginx на основе стека LEMP.
Кроме того, необходим доступ к мобильному устройству iOS или Android, на которое можно установить мобильное приложение FreeOTP.
1: Установка плагина Google Authenticator
Сначала нужно установить на сайт WordPress плагин Google Authenticator.
Проще всего установить этот плагин при помощи панели инструментов WordPress. Откройте её и выполните следующие действия:
- откройте Plugins > Add New.
- в поле Search введите google authenticator.
- это загрузит пару плагинов, совпадающих с поисковым шаблоном.
- установите плагин по имени Google Authenticator by Henrik Schack.
- После установки плагина выберите ссылку Activate Plugin.
Примечание: Если это первая установка плагина в WordPress, возможно, будет запрошены учётные данные SSH. Укажите имя и пароль пользователя sudo (для большей безопасности используйте SSH-ключ) и выберите опцию SSH2.
Установка плагина вручную (опционально)
Этот плагин можно установить и активировать вручную. Для этого войдите на сервер и перейдите в каталог plugins.
cd /var/www/html/wp-content/plugins/
Примечание: В данном руководстве WordPress установлен в каталог /var/www/html/ согласно этому руководству. При использовании других настроек, пожалуйста, укажите свои данные.
Загрузите плагин в каталог WordPress:
wget https://downloads.wordpress.org/plugin/google-authenticator.0.47.zip
Примечание: На момент написания руководства последней доступной версией Google Authenticator является 0.47.
2: Загрузка приложения FreeOTP
На данном этапе нужно загрузить и установить на мобильное устройство приложение FreeOTP.
FreeOTP – это открытое приложение для поддержки двухфакторной авторизации, генерирующее одноразовые пароли для входа в систему. Другими словами, это альтернатива Google Authenticator. Данное приложение будет использоваться для настройки двухфакторной авторизации на сайте WordPress.
FreeOTP спонсируется RedHat и предоставляет версии для Android и iOS. Загрузить приложение и найти официальный сайт можно по ссылкам:
3: Активация плагина Authenticator для своего профиля
Теперь нужно включить плагин WordPress для администратора WordPress и настроить его для поддержки приложения FreeOTP.
В панели инструментов WordPress откройте Users > Your Profile. Найдите подраздел Google Authenticator Settings.
Этот плагин имеет следующие опции настройки:
- Active: поставьте галочку, чтобы включить плагин.
- Relaxed: эта опция увеличивает время ввода одноразового пароля до 4 минут. Поставьте галочку, если иногда у вас возникают проблемы с быстрым вводом OTP.
- Description: обычно содержит название блога. это значение будет отображаться в приложении FreeOTP на мобильном устройстве.
- Show/Hide QR Code: поставьте галочку для отображения QR-кода.
Подключение к приложению FreeOTP
Запустите приложение FreeOTP на телефоне или планшете.
Кликните на значок QR-кода в приложении. Просканируйте QR-код WordPress, который должен появиться на экране.
Приложение FreeOTP покажет запись WordPress с описанием, ранее указанным в поле Description. Это значит, что сайт WordPress успешно подключен к приложению FreeOTP.
Сохраните изменения; для этого в WordPress перейдите в конец страницы и нажмите кнопку Update Profile.
4: Тестирование двухфакторной авторизации
Теперь необходимо убедиться, что настройка двухфакторной авторизации прошла успешно.
Закройте профиль WordPress и попробуйте снова войти. На экране появится такая, как и раньше, форма входа, но теперь – с дополнительным полем Google Authenticator code.
Запустите приложение FreeOTP на мобильном устройстве. Нажмите кнопку WordPress, чтобы приложение сгенерировало новый одноразовый пароль.
Введите это значение в отведённое для этого поле, после чего профиль WordPress будет открыт.
Активация двухфакторной авторизации для других пользователей
Теперь нужно включить двухфакторную авторизацию для всех остальных пользователей, имеющих доступ к WordPress. Убедитесь в том, что они знают о необходимости приложения FreeOTP.
Восстановление аккаунта
В случае утери мобильного устройства у вас не будет доступа к сайту WordPress. Это главный недостаток внедрения двухфакторной авторизации. К счастью, это можно легко исправить.
Для этого нужно просто отключить Google Authenticator. Запустите свой выделенный сервер и перейдите к каталогу plugins.
cd /var/www/html/wp-content/plugins/
Переименуйте каталог google-authenticator, указав любое другое имя.
mv 'google-authenticator' 'deactivate-plug-google-authenticator'
Это отключит плагин, поскольку WordPress не сможет найти его рабочий каталог.
Затем можно открыть учётную запись WordPress, так как теперь одноразовый пароль не будет запрошен.
Получив доступ к панели управления WordPress и заменив утерянный телефон новым, установите на него FreeOTP и снова включите плагин. Для этого запустите в оболочке сервера следующую команду:
mv 'deactivate-plug-google-authenticator' 'google-authenticator'
Если вы нашли старый утерянный телефон, это всё, что нужно сделать. Повторите действия раздела 4, чтобы протестировать процесс авторизации. Возможно, нужно будет повторно активировать Google Authenticator, открыв WP Dashboard > Plugins > Installed Plugins. Откройте свой профиль и в Users > Your Profile найдите Google Authenticator Settings.
Если же старое устройство утеряно навсегда, и теперь вы пользуетесь другим телефоном, кликните на Create new secret. Это сгенерирует новый QR-код и аннулирует старый. Просканируйте новый код, как описано в разделе 3.
Двухфакторную авторизацию можно отключить до тех пор, пока вы не приобретёте новое устройство.
Не забудьте сохранить изменения, нажав Update Profile.
Итоги
Внедрение двухфакторной авторизации – очень важный шаг в обеспечении безопасности сервера WordPress. Аккаунт будет защищён, даже если злоумышленник получит доступ к учётным данным – без OTP он не сможет пройти авторизацию.
Tags: 2FA, FreeOTP, Google Authenticator, NGINX, SSH, Ubuntu 14.04, WordPress