Как да настроите оторизация с парола на Apache с Ubuntu – База знания на общността на Timeweb

Изисквания

Преди да продължите със следващите стъпки, уверете се, че имате достъп до сървъра Ubuntu 16.04.

Ще ви е необходимо и следното, за да изпълните инструкциите:

  • потребител, който може да изпълнява sudo команди на вашия сървър;
  • Apache уеб сървър
  • сайт, който има инсталиран SSL сертификат (например Let's Encrypt).

Стъпка 1: Инсталирайте пакета Apache Utilities

Въведете следните команди:

Стъпка 2: създайте файл с парола

Сега можете да използвате командата htpasswd. С него ще трябва да създадете файл с парола, който Apache ще използва за удостоверяване на потребителите. За тази цел трябва да създадете скрит файл, наречен .htpasswd в конфигурационната директория /etc/apache2.

Първият път, когато използвате тази помощна програма, ще трябва да добавите превключвателя -c към командата, за да създадете посочения файл. Освен това в края на командата трябва да посочите потребителското име (в този пример sinatra) - това е необходимо, за да създадете нов запис във файла:

Ще бъдете подканени да въведете парола и нейното потвърждение за създадения потребител.

Ако искате да добавите други потребители (например another_user), използвайте същата команда, но без превключвателя -c:

Вижте съдържанието на този файл:

Ще видите потребителското име и шифрованата парола за всеки запис:

Вече имате файл с потребителско име и парола в четим формат на Apache.

Следващата стъпка е да конфигурирате Apache да проверява този файл винаги, когато е на път да предостави достъп до съдържание, което е защитено от любопитни очи. Можете да направите това по два начина:или директно във виртуалния хост файл на сайта, или чрез добавяне на .htaccess файлове към директориите, до които искате да ограничите достъпа.

По принцип е по-добре да използвате първата опция, тоест да използвате виртуалния хост файл. Ако обаче трябва да дадете на непривилегированите потребители възможност сами да управляват ограниченията за достъп, да проследявате ограниченията в контрола на версиите по същия начин, както на сайта, или имате уеб приложения, които вече използват .htaccess за други цели, можете да изберете втория начин.

Тоест изберете пътя въз основа на вашите изисквания.

Първият начин е да редактирате настройките на Apache и да добавите защита с парола към виртуалния хост. Това също така ще подобри производителността, защото елиминира необходимостта от четене на разпределени конфигурационни файлове. Този път изисква достъп до настройките, който не винаги е наличен, но ако имате достъп, тогава този път е за предпочитане.

За да започнете, отворете виртуалния хост файл, до който ще ограничите достъпа. Като пример този урок ще използва файла 000-default.conf, който съдържа виртуалния хост по подразбиране, инсталиран чрез пакета Ubuntu Apache.

Удостоверяването се основава на директории. За да настроите удостоверяване, трябва да поставите директорията, до която искате да откажете достъп, с . В примера по-долу ще бъде отказан достъп до основната директория на документа, но можете да изберете конкретна директория:

Вътре в блока на директорията укажете, че искате да настроите основно удостоверяване (Basic). За колоната AuthName трябва да изберете име, което ще се показва на потребителя, когато иска данни за удостоверяване. В колоната AuthUserFileтрябва да посочите файла с парола, който е създаден по-рано, за да може Apache да го намери. Нуждаете се също от валиден потребител, който има достъп до данните; с други думи, всеки, който може да потвърди самоличността си с парола, ще бъде допуснат до директорията.

Запазете и затворете файла след редактиране.

Преди да рестартирате сървъра, проверете настройките със следната команда:

Ако всичко е наред и виждате Syntax OK, рестартирайте сървъра, за да влезе в сила новата политика за достъп с парола. За да направите това, въведете следните команди:

Директорията, която посочихте по-рано, вече е защитена с парола.

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

За да активирате защитата с парола с .htaccess файлове, отворете главния конфигурационен файл на Apache:

След това намерете блока за директорията /var/www, която съдържа основната директория на документа. Активирайте поддръжката за .htaccess файлове, като промените стойността на директивата AllowOverride от "Няма" на "Всички" - в този случай сървърът ще разреши всички .htaccess файлови директиви:

След това запазете и затворете файла.

Сега трябва да добавите файла .htaccess към директорията, до която имате достъпискате да ограничите. В това ръководство например ще бъде отказан достъп до цялата главна директория на документа (т.е. целия сайт), разположена в /var/www/html, но можете да поставите този файл във всяка директория, до която искате да ограничите достъпа:

Вътре в този файл посочете, че искате да настроите основно удостоверяване. За колоната AuthName трябва да изберете име, което ще се показва на потребителя, когато иска данни за удостоверяване. В колоната AuthUserFile трябва да посочите файла с парола, който е създаден по-рано, така че Apache да може да го намери. Нуждаете се също от валиден потребител, който има достъп до данните; с други думи, всеки, който може да потвърди самоличността си с парола, ще бъде допуснат до директорията:

Запазете и затворете файла. Рестартирайте сървъра, за да влязат в сила всички промени относно защитата с парола на избраната директория. След това използвайте командата systemctl status, за да проверите дали рестартирането е било успешно:

Стъпка 4: Проверка за защита при удостоверяване

За да сте сигурни, че вашите данни са защитени, опитайте да ги отворите в браузър. Трябва да видите прозорец с искане за потребителско име и парола, който изглежда нещо подобно:

парола
Ако въведете правилните данни, ще можете да видите исканите данни. Ако въведете неправилни данни или щракнете върху Отказ (Отказ), тогава ще видите страница за грешка (Неупълномощен), която казва, че достъпът е отказан за неупълномощени потребители:

Заключение

Ако сте изпълнили всички стъпки в това ръководство, вече имате основно удостоверяване на вашия сайт. Не забравяйте обаче за други начини за защита срещунеоторизиран достъп до вашите данни, като SSL сертификати и използването на SSH.