- Как настроить аутентификацию по паролю с Apache в Debian, Ubuntu и производных
- Чем различаются HTTP Basic и Digest аутентификации
- Как включить HTTP Basic аутентификацию в Apache (Kali Linux, Ubuntu, Debian, Linux Mint)
- Как включить HTTP Digest аутентификацию в Apache (Kali Linux, Ubuntu, Debian, Linux Mint)
- Связанные статьи:
- Как установить Google Authenticator на Linux Mint 21
- Как установить Google Authenticator на Linux Mint 21
- Подведение итогов
- Как включить двухфакторную аутентификацию в Linux Mint, Ubuntu и производных системах
- Настройка двухфакторной аутентификации в Linux Mint, Ubuntu и производных системах
Как настроить аутентификацию по паролю с Apache в Debian, Ubuntu и производных
Как веб-администратор, вы можете счесть полезным ограничить доступ посетителей к некоторым частям веб-сайта, будь то временно или на постоянной основе. Хотя веб-приложения могут предоставлять свои собственные методы проверки подлинности и авторизации, вы также можете полагаться на сам веб-сервер, чтобы ограничить доступ по тем или иным причинам.
В этом руководстве вы узнаете, как защитить паролем ресурсы на веб-сервере Apache, работающем в Debian или Ubuntu, чтобы обеспечить вашему серверу дополнительную безопасность. Данная инструкция также применима к производным этих дистрибутивов, в том числе к Linux Mint и Kali Linux.
Если вы хотите настроить базовую аутентификацию на Apache в Windows, то смотрите статью «Как защитить папку Apache паролем в Windows».
Предполагается, что вы уже установили веб-сервер Apache, если нет, то смотрите инструкции:
Также крайне желательно, чтобы вы использовали HTTPS протокол, который делает невозможным перехвату логина и пароль.
Также нам потребуются инструменты из пакета apache2-utils:
sudo apt update sudo apt install apache2-utils
Чем различаются HTTP Basic и Digest аутентификации
HTTP Basic и Digest аутентификации предназначены для контроля доступа на уровне веб-сервера. Если при попытке открыть веб-страницу или войти в настройки роутера вы видите такое окно:
Для конечного пользователя Basic и Digest выглядят одинаково. С технической точки зрения они различаются тем, что при Basic аутентификации пароль передаётся в открытом виде, а при Digest пароль зашифрован. Но официальная документация Apache рекомендует не полагаться на шифрование Digest, поскольку оно слишком слабое, а вместо этого использовать Basic аутентификацию в паре с HTTPS, чтобы невозможно было перехватить логин и пароль.
Как включить HTTP Basic аутентификацию в Apache (Kali Linux, Ubuntu, Debian, Linux Mint)
Для начала нужно включить поддержку файлов .htaccess, чтобы веб-сервер использовал настройки из этих файлов — по умолчанию это отключено.
Откройте файл /etc/apache2/apache2.conf
sudo gedit /etc/apache2/apache2.conf
Options Indexes FollowSymLinks AllowOverride None Require all granted
Options Indexes FollowSymLinks AllowOverride All Require all granted
Сохраните и закройте файл.
sudo systemctl restart apache2.service
Создайте папку, где будут защищённые паролем файлы:
sudo mkdir /var/www/html/basic-protected
С помощью утилиты htpasswd мы создадим файл с именем пользователя и хешем пароля. Если указана опция -c, то старый файл будет удалён, а новый создан. Утилита htpasswd присутствует и в Apache для Windows, но нужно указать полный путь до неё.
sudo htpasswd -c -B /ПУТЬ/ДО/ФАЙЛА/.htpasswd ПОЛЬЗОВАТЕЛЬ
sudo htpasswd -c -B /etc/apache2/.htpasswd mial
Опция -B означает использовать для шифрования пароля bcrypt. В настоящее время это считается очень безопасным. Для наших тестов это безразлично, но для реальной защиты папки или сайта паролем рекомендуется выполнять показанные выше команды с опцией -B. В дополнении к этой опции вы можете использовать флаг -C со значением от 4 до 17. Он устанавливает время вычисления, используемое для алгоритма bcrypt (чем выше, тем безопаснее, но медленнее). Значением по умолчанию является 5.
Если файл .htpasswd уже существует, то для добавления ещё одного пользователя, без удаления старых, используйте эту же команду, но без опции -c:
sudo htpasswd -B /etc/apache2/.htpasswd user1
Для смены пароля, вновь используйте эту же команду без опции -c, указав имя пользователя, чей пароль вы хотите поменять.
Конечно же файл .htpasswd рекомендуется хранить в директориях, не доступных для постороннего доступа (например, /etc/apache2/.htpasswd). Особенно не нужно его хранить в папках веб-сервера вместе с файлами сайтов. Но иногда веб-мастер в силу простоты или невозможности сохранить файл где-либо ещё (на виртуальных хостингах, например) хранит этот файл прямо вместе с файлами сайтов.
Посмотрим содержимое файла .htpasswd:
mial:$2y$05$xq4u60Y/nruX65hCk9kY1.n8sZ/E3/blHLXSL4GIdMsb2NPEFO2xG user1:$2y$05$Z1Rb4AhtksDLgMt.weXo..28NGNDbs5nTIyViMyUG1tXbWVQrlxDy
Теперь создадим файл .htaccess:
sudo gedit /var/www/html/basic-protected/.htaccess
AuthName "For registered members only" AuthType Basic Require valid-user AuthUserFile /etc/apache2/.htpasswd
Откройте в веб-браузере адрес http://localhost/basic-protected/ — вы должны увидеть форму для ввода имени пользователя и пароля.
Опция -B означает использовать для шифрования пароля bcrypt. В настоящее время это считается очень безопасным. Для наших тестов это безразлично, но для реальной защиты папки или сайта паролем рекомендуется выполнять показанные выше команды с опцией -B. В дополнении к этой опции вы можете использовать флаг -C со значением от 4 до 17. Он устанавливает время вычисления, используемое для алгоритма bcrypt (чем выше, тем безопаснее, но медленнее). Значением по умолчанию является 5.
Как включить HTTP Digest аутентификацию в Apache (Kali Linux, Ubuntu, Debian, Linux Mint)
По умолчанию модуль Digest аутентификации отключён, включим его:
Если вы ещё этого не сделали, включите поддержку файлов .htaccess, чтобы веб-сервер использовал настройки из этих файлов — по умолчанию это отключено.
Откройте файл /etc/apache2/apache2.conf:
sudo gedit /etc/apache2/apache2.conf
Options Indexes FollowSymLinks AllowOverride None Require all granted
Options Indexes FollowSymLinks AllowOverride All Require all granted
Сохраните и закройте файл.
sudo systemctl restart apache2.service
Создайте папку, где будут защищённые паролем файлы:
sudo mkdir /var/www/html/digest-protected
Для генерации паролей нужно использовать команду htdigest. Если указать опцию -c, то будет создан новый файл, а старый удалён.
sudo htdigest -c /etc/apache2/.digest_pw REALM ПОЛЬЗОВАТЕЛЬ
REALM — это область применения. Она соответствует директиве AuthName в файле .htaccess. То есть можно для одного пользователя установить разные пароли, изменяя значения REALM. В разных директивах можно менять значение AuthName в файле .htaccess и в зависимости от этого значения будет подходить тот или иной пароль.
sudo htdigest -c /etc/apache2/.digest_pw USERS mial sudo htdigest /etc/apache2/.digest_pw USERS user1
Посмотрим содержимое файла .htpasswd:
mial:USERS:48e54f80673b884a8d6f23f48aa2ade3 user1:USERS:8033e1980bcfb694719ae72793c792ec
Теперь создадим .htaccess:
sudo gedit /var/www/html/digest-protected/.htaccess
И скопируем в него следующее:
AuthName "USERS" AuthType Digest Require valid-user AuthUserFile /etc/apache2/.digest_pw AuthDigestDomain /
Отроем в веб-браузере адрес http://localhost/digest-protected/ и убедимся, что теперь для доступа к странице необходим пароль.
Аутентификация Basic и Digest в настоящее время считаются слабыми. Если вам нужно использовать какую-то из них, то рекомендуется Basic в паре с HTTPS, чтобы невозможно было перехватить пароль, поскольку хотя Digest и не пересылает пароль в открытом виде, он очень быстр для брут-форса.
Связанные статьи:
Как установить Google Authenticator на Linux Mint 21
Google Authenticator — это программный аутентификатор, который генерирует коды для ваших учетных записей. Он основан на 2FA (двухфакторной аутентификации) для обеспечения безопасности ваших учетных записей за пределами имени пользователя и паролей. Это важно, так как предотвращает доступ киберпреступников к вашим учетным записям. Если вы включите 2FA для своей учетной записи, вам потребуются две формы идентификации: пароль и код 2FA, сгенерированный Google Authenticator. Вы хотите защитить свою систему Linux, включив 2FA? Установите приложение Google Authenticator в Linux Mint 21 с помощью командной строки.
Как установить Google Authenticator на Linux Mint 21
Google Authenticator генерирует одноразовый пароль для вашей учетной записи на основе 2 FA каждый раз, когда вы входите в свою учетную запись. Google Authenticator доступен в виде готового пакета для Linux; он содержит двоичные модули Google Authenticator и модули PAM (подключаемая аутентификация).
Шаг 1. Установите Google Authenticator через Apt
Установите готовый пакет Google Authenticator с помощью приведенной ниже команды, введите свой пароль и нажмите Enter:
$ судо подходящий установить libpam-google-аутентификатор
Позвольте процессу установки завершиться. После завершения настройте Google Authenticator, выполнив следующую команду, а затем разрешите токены на основе времени:
Прежде чем продолжить, откройте любой Приложение Google Authenticator на вашем смартфоне и добавьте новую учетную запись. Отсканируйте появившийся QR в приложении:
Приложение сгенерирует шестибуквенный код, введите код в терминал:
После того, как вы добавите код, сгенерированный приложением, на вашем экране появится аварийный скретч-код:
В конце кода некоторые изменения, запрашиваемые Google Authenticator, будут предлагать ввести у в конце каждого вопроса:
Шаг 2. Включите двухфакторную аутентификацию
Чтобы разрешить 2FA, вы должны настроить SSH в своей системе. Во-первых, включите модуль PAM, добавив в его файл несколько необходимых строк, и чтобы открыть его, выполните:
$ судо нано / и т. д. / пам.д / общая авторизация
Затем добавьте следующие строки внизу открытого файла:
требуется авторизация pam_google_authenticator.so nullok
требуется авторизация pam_permit.so
Сохраните файл, нажав Ctrl+О, нажмите клавишу Enter и выйдите с помощью Ctrl+X, теперь вы все настроили и готовы использовать Google Authenticator.
Подведение итогов
Вы можете защитить свою систему Linux Mint, включив 2FA, и для этого лучший инструмент Гугл аутентификатор. Ваша учетная запись Linux защищена именем пользователя и паролем; однако вы можете добавить дополнительный уровень безопасности, чтобы никто не мог войти в вашу учетную запись. У вас будет 30 секунд, чтобы ввести код подтверждения. Если вы пропустите сгенерированный код, приложение повторно сгенерирует другой код на 30 секунд. Чтобы включить 2 FA в Linux Mint 21, установите Google Authenticator через Apt.
Как включить двухфакторную аутентификацию в Linux Mint, Ubuntu и производных системах
В этом кратком руководстве мы опишем способ как включить двухфакторную аутентификацию в дистрибутиве Linux Mint. Данное руководство также можно использовать для дистрибутива Ubuntu и его производных.
Двухфакторная аутентификация или так называемая многофакторная аутентификация или двухэтапная проверка — это дополнительный уровень защиты, который призван значительно улучшить общий уровень защиты, в данном случае защиты системы.
Настройка двухфакторной аутентификации в Linux Mint, Ubuntu и производных системах
Настройка максимально простая. Открываем терминал и устанавливаем нужные пакеты:
sudo apt install libpam-google-authenticator
После установки пакетов аутентификатора, необходимо добавить следующую строку в файл конфигурации. Открываем файл конфигурации:
sudo nano /etc/pam.d/common-auth
auth required pam_google_authenticator.so
Комбинацией клавиш сохраняем изменения CTRL + O и закрываем редактор nano комбинацией клавиш CTRL + X .
Если для создания кодов двухфакторной аутентификации вы хотите использовать другое устройство с установленным дистрибутивом Linux, то сделать это можно с помощью приложения Authenticator.
Для использования создания кодов на смартфоне, вам нужно установить одно из соответствующих приложений, например Google Authenticator, Microsoft Authenticator или Authy.
Далее нужно сгенерировать QR-код для добавления системы в приложение аутентификации. В терминале запускаем команду:
На все вопросы отвечаем согласием, выбрав Y.
Полученный QR-код сканируем установленным приложением двухфакторной аутентификации. В приложении достаточно выбрать опцию аналогичной Добавить учетную запись > Другая учетная запись. После чего включится сканер QR-кодов.
На этом установка двухфакторной аутентификации в Linux Mint и Ubuntu завершена.
Теперь при входе в систему, если у вас включена авторизация для входа в систему, первоначально будет отображен запрос на ввод кода авторизации (verification code), а затем пароль.
Кроме того, каждый запрос на предоставление прав sudo нужно будет подтверждать кодом авторизации.
Соответственно так же и при установке программ через Менеджер приложений.
Затем подтвердить паролем администратора.
А вы пользуетесь двухфакторной аутентификацией?