Как да настроите удостоверяването на Apache htpasswd в Ubuntu ⋆ ALexHost SRL

Изпробвайте уменията си за всички наши хостинг услуги и получете 15% отстъпка!

Използвайте код на касата:

Skills
09.12.2024

Как да настроите удостоверяването на Apache htpasswd в Ubuntu

Използването на удостоверяването htpasswd на Apache е прост начин за добавяне на основен контрол на достъпа до уеб директориите, като изисква от потребителите да предоставят потребителско име и парола, преди да получат достъп до определени части на уебсайта. Този тип удостоверяване често се използва за ограничаване на достъпа до чувствителни области, като например административни панели или сайтове за разработка, и може да се настрои лесно на сървър Ubuntu с Apache.

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

  • Сървър, работещ под управлението на Ubuntu с инсталиран Apache2.
  • Рут или 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 your_username

    Заменете your_username с потребителското име, което искате да създадете.

    • Опцията -c създава нов файл .htpasswd. Ако файлът вече съществува и използвате -c, той ще бъде презаписан, така че я използвайте само когато създавате файла за първи път.
  2. Въвеждане и потвърждаване на паролата: След изпълнение на командата ще бъдете подканени да въведете и потвърдите парола за потребителя. ще бъде създаден файл /etc/apache2/.htpasswd с криптираната парола за вашето_име.
  3. Добавяне на допълнителни потребители (по избор): За да добавите още потребители, без да презаписвате съществуващия файл .htpasswd, изпълнете:
    sudo htpasswd /etc/apache2/.htpasswd another_username

    Заменете another_username с новото потребителско име. Тази команда добавя новия потребител към съществуващия файл .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 Всички
  2. Рестартиране на Apache: След като редактирате конфигурацията, рестартирайте Apache, за да приложите промените:
    sudo systemctl restart apache2
  3. Създаване на файл .htaccess:Вътре в директорията, която искате да защитите (например /var/www/html), създайте или редактирайте файл .htaccess:
    sudo nano /var/www/html/.htaccess
  4. Добавяне на следните директиви: Добавете следните редове към файла .htaccess:
    AuthType Basic
    AuthName “Restricted Content”
    AuthUserFile /etc/apache2/.htpasswd
    Изискване за valid-user
    • AuthType Basic: Указва основно удостоверяване.
    • AuthName: Съобщение, което ще бъде показано в съобщението за удостоверяване.
    • AuthUserFile: Пътят до вашия .htpasswd файл.
    • Изискване за валиден потребител: Ограничава достъпа до потребителите, изброени в .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. Добавяне на директивите за удостоверяване: Вътре в блока или в блока , който съответства на директорията, която искате да защитите, добавете следното:
    <Directory “/var/www/html”>
    AuthType Basic
    AuthName “Restricted Content” (Ограничено съдържание)
    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% отстъпка!

Използвайте код на касата:

Skills