Як налаштувати аутентифікацію Apache htpasswd в Ubuntu ⋆ ALexHost SRL

Перевірте свої навички на всіх наших хостингових послугах та отримайте знижку 15%!

Use code at checkout:

Skills
09.12.2024

Як налаштувати аутентифікацію Apache htpasswd в Ubuntu

Використання автентифікації htpasswd в Apache – це простий спосіб додати базовий контроль доступу до ваших веб-каталогів, що вимагає від користувачів введення імені користувача і пароля перед доступом до певних частин вашого веб-сайту. Цей тип автентифікації часто використовується для обмеження доступу до конфіденційних областей, таких як адмін-панелі або сайти розробки, і може бути легко налаштований на сервері Ubuntu під управлінням Apache.

Передумови

  • Сервер під управлінням Ubuntu зі встановленим Apache2.
  • Root або sudo доступ до сервера.
  • Базове розуміння використання командного рядка.

Крок 1: Встановлення Apache (якщо його ще не встановлено)

Якщо Apache не встановлено на вашому сервері Ubuntu, ви можете встановити його за допомогою наступної команди:

sudo apt update
sudo apt install apache2

Крок 2: Увімкніть утиліту htpasswd

Утиліта htpasswd надається пакунком apache2-utils, який зазвичай встановлюється разом з Apache. Якщо він не встановлений, ви можете встановити його під час запуску:

sudo apt install apache2-utils

Ця команда встановить необхідні інструменти для керування файлами паролів для автентифікації htpasswd.

Крок 3: Створення файлу .htpasswd

Файл .htpasswd використовується для зберігання імен користувачів і зашифрованих паролів для автентифікації.

  1. Створення нового файлу .htpasswd: Щоб створити новий файл .htpasswd і додати користувача, виконайте наступну команду:
    sudo htpasswd -c /etc/apache2/.htpasswd ваше_ім’я користувача

    Замініть ваше_ім’я користувача на ім’я користувача, якого ви хочете створити.

    • Параметр -c створює новий файл .htpasswd. Якщо файл вже існує і ви використовуєте -c, він буде перезаписаний, тому використовуйте його тільки при першому створенні файлу.
  2. Введіть і підтвердіть пароль:Після запуску команди вам буде запропоновано ввести і підтвердити пароль для користувача. Буде створено файл /etc/apache2/.htpasswd із зашифрованим паролем для вашого_імені_користувача.
  3. Додати додаткових користувачів (необов’язково):Щоб додати більше користувачів, не перезаписуючи існуючий файл .htpasswd, виконайте команду:
    sudo htpasswd /etc/apache2/.htpasswd інше_ім’я_користувача

    Замініть інше_ім’я користувача на нове ім’я користувача. Ця команда додасть нового користувача до існуючого файлу .htpasswd.

Крок 4: Налаштування Apache для захисту паролем

Вам потрібно вказати, який каталог або місце ви хочете захистити паролем. Це можна зробити за допомогою файлу .htaccess або безпосередньо відредагувавши файл конфігурації Apache.

Варіант 1: Використання файлу .htaccess

  1. Увімкніть файли .htaccess:Якщо ви хочете використовувати файли .htaccess для налаштування захисту паролем, переконайтеся, що директива AllowOverride має значення All для каталогу, який ви хочете захистити. Відредагуйте відповідний файл конфігурації Apache (наприклад, /etc/apache2/sites-available/000-default.conf):
    sudo nano /etc/apache2/sites-available/000-default.conf

    Знайдіть розділ для вашого веб-кореня (наприклад, /var/www/html) і встановіть AllowOverride в All:

    <Директория /var/www/html>
    AllowOverride All
    </Директория> </Директория> </Директория> </Директория>.
  2. Перезапустіть Apache:Після редагування конфігурації перезапустіть Apache, щоб застосувати зміни:
    sudo systemctl restart apache2
  3. Створіть файл .htaccess:Усередині каталогу, який ви хочете захистити (наприклад, /var/www/html), створіть або відредагуйте файл .htaccess:
    sudo nano /var/www/html/.htaccess
  4. Додайте наступні директиви:Додайте наступні рядки до файлу .htaccess:
    AuthType Основний
    AuthName “Обмежений вміст”
    AuthUserFile /etc/apache2/.htpasswd
    Вимагати valid-user
    • AuthType Basic: Вказує базову автентифікацію.
    • AuthName: Повідомлення, яке буде показано у запиті на автентифікацію.
    • AuthUserFile: шлях до вашого файлу .htpasswd.
    • Вимагати valid-user: Обмежує доступ користувачам, переліченим у файлі .htpasswd.
  5. Збережіть і закрийте файл.

Варіант 2: Використання файлу конфігурації Apache безпосередньо

Якщо ви віддаєте перевагу керувати автентифікацією безпосередньо в файлах конфігурації Apache замість використання .htaccess, виконайте наступні кроки:

  1. Відредагуйте конфігурацію віртуального хоста:Відкрийте файл конфігурації Apache для сайту, який ви хочете захистити (наприклад, /etc/apache2/sites-available/000-default.conf):
    sudo nano /etc/apache2/sites-available/000-default.conf
  2. Додайте директиви автентифікації:Усередині блоку або блоку , який відповідає каталогу, який ви хочете захистити, додайте наступне:

    <Директория “/var/www/html”>

    <Директория “/var/www/html”>

    <Директория
    AuthType Основний
    AuthName “Вміст з обмеженим доступом”
    AuthUserFile /etc/apache2/.htpasswd
    Вимагати valid-user
    </Директория>

  3. Збережіть і закрийте конфігураційний файл.
  4. Перезапустіть Apache:Після внесення змін перезапустіть Apache:
    sudo systemctl restart apache2

Крок 5: Перевірте автентифікацію

Тепер перейдіть до URL-адреси захищеного каталогу за допомогою веб-браузера (наприклад, http://your_server_ip_or_domain). Ви побачите запит на вхід з проханням ввести ім’я користувача та пароль.

  • Введіть ім’я користувача та пароль, які ви створили за допомогою команди htpasswd.
  • Якщо облікові дані правильні, ви отримаєте доступ до каталогу; в іншому випадку вам буде відмовлено в доступі.

Крок 6: Захист файлу .htpasswd

З міркувань безпеки переконайтеся, що файл .htpasswd зберігається за межами веб-кореневого каталогу (наприклад, /etc/apache2/.htpasswd), щоб до нього не можна було отримати доступ безпосередньо через веб-браузер.

Переконайтеся, що файл .htpasswd має правильні дозволи:

sudo chmod 640 /etc/apache2/.htpasswd
sudo chown www-data:www-data /etc/apache2/.htpasswd

Це гарантує, що тільки користувач Apache (www-data) і користувач root матимуть доступ до читання файлу .htpasswd.

Висновок

Налаштування автентифікації htpasswd в Apache – це простий спосіб додати базовий контроль доступу до певних каталогів на вашому сайті. Він підходить для низькорівневого захисту, особливо в середовищі розробки або внутрішньому середовищі. Однак, якщо ви працюєте з особливо важливими даними, розгляньте можливість використання більш надійних методів автентифікації, таких як OAuth або інтеграція з системою управління ідентифікацією.

Перевірте свої навички на всіх наших хостингових послугах та отримайте знижку 15%!

Use code at checkout:

Skills