Поиск по сайту:
Кто хочет жить в мире, тот должен готовиться к войне (Н. Макиавелли).

Как создать и использовать .htpasswd

01.03.2025
Как создать и использовать .htpasswd

Файл .htpasswd обычно создаёт и обновляет сохранённые имена пользователей и пароли для HTTP-пользователей, использующих HTTP-аутентификацию. Вы должны создать файл .htpasswd, чтобы защитить содержимое веб-сайта, будь то основной URL-адрес или какой-либо подкаталог. Только авторизованные пользователи смогут получить доступ к исходному коду веб-сайта. Имя пользователя и пароль в файле указаны в строке, разделённые двоеточием. Имя пользователя хранится в открытом виде, а пароль хешируется, обычно с помощью шифрования MD5.

Файл .htpasswd находится в файле .htaccess в корневом каталоге сайта. Файл .htaccess — это файл конфигурации, используемый веб-серверами на базе Apache. Существует множество возможностей использования файла .htaccess, и одна из них — включение файла .htpasswd.

В этом посте мы будем использовать уже установленный WordPress со стеком LAMP в ОС Ubuntu 24.04 для настройки HTTP-аутентификации с помощью файла .htpasswd. Его создание и настройка просты и могут занять около 5 минут. Давайте начнём!

 

Предварительные условия

  • Сервер с Ubuntu 24.04 в качестве ОПЕРАЦИОННОЙ СИСТЕМЫ
  • Установка WordPress со стеком LAMP
  • Привилегии пользователя: пользователь root или некорневой пользователь с привилегиями sudo

 

Обновите систему

Прежде чем приступить к каким-либо действиям на сервере, мы обновим системные пакеты до последних доступных версий:

sudo apt update -y && sudo apt upgrade -y

 

Создать файл .htpasswd

Чтобы создать файл, вы можете использовать команду .htpasswd, которая доступна после установки веб-сервера Apache. Поскольку в этой статье мы будем использовать WordPress со стеком LAMP, эта команда доступна на нашем сервере.

Синтаксис команды следующий:

htpasswd -c "website_document_root"/.htpasswd "username"

 

Чтобы создать файл .htpasswd с именем пользователя «andreyex» в корневом каталоге «/var/www/html», выполните следующую команду:

htpasswd -c /var/www/html/.htpasswd andreyex

 

Читать  Как настроить SSH ключи на CentOS 8

Вам будет предложено ввести пароль дважды, и после этого вы получите следующий результат:

root@host:/var/www/html# htpasswd -c /var/www/html/.htpasswd andreyex
New password:
Re-type new password:
Adding password for user andreyex

 

Чтобы проверить содержимое файла «.htpasswd», выполните следующую команду:

cat /var/www/html/.htpasswd

 

Вы получите результат, аналогичный этому:

andreyex:$apr1$rDodiIIG$p6Q1GpNmJsgW88nIa.nA6/

 

Как видите, имя пользователя — «andreyex», а пароль зашифрован. Последнее, что нужно сделать в этом процессе, — установить правильные разрешения для файла .htpasswd:

chmod 644 .htpasswd

 

Импортируйте файл .htpasswd

Следующий шаг — импортировать файл в файл .htaccess вашего WordPress. Для этого откройте файл .htaccess в вашем любимом редакторе и вставьте следующие строки кода в конец файла:

#Весь корневой каталог документа (наш корневой каталог документа — /var/www/html)
AuthName "Dialog prompt"
AuthType Basic
AuthUserFile /var/www/html/.htpasswd
Require valid-user

 

Сохраните файл, закройте его и перезапустите веб-сервер Apache2.

Эти строки кода защищали целые каталоги и подкаталоги веб-сайта.

Например, если вы хотите защитить только один конкретный файл, скажем, wp-login.php, вместо предыдущей строки вы можете добавить эту:

#Один файл
AuthName "Dialog prompt"
AuthType Basic
AuthUserFile /var/www/html/.htpasswd
Require valid-user

 

Для защиты нескольких файлов вы можете использовать следующие строки кода:

#Несколько файлов
AuthName "Dialog prompt"
AuthType Basic
AuthUserFile /var/www/html/.htpasswd
Require valid-user

 

Чтобы защитить подкаталог в WordPress, скопируйте файл .htpasswd в этот подкаталог или создайте символическую ссылку. Строки кода для защиты подкаталог «wp-admin»:

#Защитить каталог
AuthName "Dialog prompt"
AuthType Basic
AuthUserFile /var/www/html/wp-admin/.htpasswd
Require valid-user

 

Подробнее о команде htpasswd

Если вы хотите узнать больше о команде «htpasswd», вы можете выполнить приведенную ниже команду:

man htpasswd

 

Вы должны получить следующий результат:

HTPASSWD(1)                                                                   htpasswd                                                                  HTPASSWD(1)

NAME
       htpasswd - Manage user files for basic authentication

SYNOPSIS
       htpasswd [ -c ] [ -i ] [ -m | -B | -d | -s | -p ] [ -C cost ] [ -D ] [ -v ] passwdfile username

       htpasswd -b [ -c ] [ -m | -B | -d | -s | -p ] [ -C cost ] [ -D ] [ -v ] passwdfile username password

       htpasswd -n [ -i ] [ -m | -B | -d | -s | -p ] [ -C cost ] username

       htpasswd -nb [ -m | -B | -d | -s | -p ] [ -C cost ] username password

SUMMARY
       htpasswd  is used to create and update the flat-files used to store usernames and password for basic authentication of HTTP users. If htpasswd cannot access
       a file, such as not being able to write to the output file or not being able to read the file in order to update it, it returns an error status and makes no
       changes.

       Resources available from the Apache HTTP server can be restricted to just the users listed in the files created by htpasswd. This program  can  only  manage
       usernames  and  passwords stored in a flat-file. It can encrypt and display password information for use in other types of data stores, though. To use a DBM
       database see dbmmanage or htdbm.

       htpasswd encrypts passwords using either bcrypt, a version of MD5 modified for Apache, SHA1, or the system's crypt() routine. Files managed by htpasswd  may
       contain  a  mixture of different encoding types of passwords; some user records may have bcrypt or MD5-encrypted passwords while others in the same file may
       have passwords encrypted with crypt().

       This manual page only lists the command line arguments. For details of the directives necessary to configure user authentication in  httpd  see  the  Apache
       manual, which is part of the Apache distribution or can be found at http://httpd.apache.org/.

OPTIONS
       -b     Use  batch  mode;  i.e., get the password from the command line rather than prompting for it. This option should be used with extreme care, since the
              password is clearly visible on the command line. For script use see the -i option. Available in 2.4.4 and later.

       -i     Read the password from stdin without verification (for script usage).

       -c     Create the passwdfile. If passwdfile already exists, it is rewritten and truncated. This option cannot be combined with the -n option.

       -n     Display the results on standard output rather than updating a file. This is useful for generating password records acceptable to Apache for inclusion
              in non-text data stores. This option changes the syntax of the command line, since the passwdfile argument (usually the first  one)  is  omitted.  It
              cannot be combined with the -c option.

       -m     Use MD5 encryption for passwords. This is the default (since version 2.2.18).

 

Читать  GParted Live 1.7 выходит с экспериментальной поддержкой Bcachefs, Linux 6.12 LTS

Вот и всё. Вы успешно создали и настроили файл .htpasswd в Ubuntu 24.04. Конечно, вам не обязательно делать это самостоятельно. Если у вас возникли трудности с защитой вашего сайта с помощью HTTP-аутентификации, вам нужно только зарегистрироваться на одном из наших планов Linux VPS с NVMe и отправить запрос в службу поддержки. Наши администраторы помогут вам с любым аспектом защиты вашего сайта. Не стесняйтесь обращаться к нам. Мы доступны круглосуточно.

PS. Если вам понравился этот пост о создании и использовании файла .htpasswd, пожалуйста, поделитесь им со своими друзьями в социальных сетях или просто оставьте комментарий в разделе комментариев. Спасибо.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...
Поделиться в соц. сетях:


0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

**ссылки nofollow

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

Это может быть вам интересно


Рекомендуемое
IBM официально завершила сделку по приобретению HashiCorp, пионера в области…

Спасибо!

Теперь редакторы в курсе.