Налаштування авторизації на основі пароля на apache в ubuntu

Розміщення серверів в надійних дата-центрах Європи. Відкрийте хмарний VPS / VDS сервер на швидких SSD за 1 хвилину!

Кращий хостинг:
- захистить дані від несанкціонованого доступу в охоронюваному європейському ЦОДі
- прийме оплату хоч в bitcoin.
- дозволить поставити свій дистрибутив

- захист від DDos-атак
- безкоштовний backup
- Uptime 99,9999%
- ЦОД - TIER III
- провайдер - TIER I

Підтримаємо російською мовою 24/7/365 Працюємо з юрособами і фізособами. Вам прямо зараз потрібно 24 ядра і 72 Gb RAM. Будь ласка!

Наші вигідні тарифи доведуть, що дешевий хостинг ви ще не знали!

Хвилинна справа: виберіть конфігурацію, оплатіть і CMS на VPS готова.
Money Back - 30 днів!

Банківськими картами, електронною валютою, через термінали Qiwi, Webmoney, PayPal, Новоплат і ін.

Задайте питання в службу підтримки 24/7/365

Знайдіть відповіді в нашій базі і познайомтеся з рекомендаціями

вимоги

Установка утиліт Apache

Щоб створити файл для зберігання паролів, знадобиться утиліта htpasswd. Вона входить в пакет apache2-utils, який можна знайти в репозиторії Ubuntu.

Оновлення список пакетів і встановіть необхідні утиліти і сервер Apache2 за допомогою наступної команди:

sudo apt-get update
sudo apt-get install apache2 apache2-utils

Створення файлу паролів

При першому запуску даної утиліти потрібно використовувати прапор -c, який і створить необхідний файл. Вкажіть ім'я користувача в кінці команди, щоб створити новий запис у файлі:

sudo htpasswd -c /etc/apache2/.htpasswd 8host

Програма запропонує створення та підтвердження пароля для цього користувача.

Щоб додати інших користувачів в файл паролів, використовуйте команду htpasswd без прапора -з:

sudo htpasswd /etc/apache2/.htpasswd another_user

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

cat /etc/apache2/.htpasswd
8host: $ apr1 $ lzxsIfXG $ tmCvCfb49vpPFwKGVsuYz.
another_user: $ apr1 $ p1E9MeAf $ kiAhneUwr.MhAE2kKGYHK.

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

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

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

Вибрати найбільш відповідний спосіб настройки і дотримуйтесь інструкцій відповідного розділу.

Відкрийте файл віртуального хоста сайту, доступ до якого потрібно обмежити. В даному прикладі використовується стандартний файл 000-default.conf, що містить віртуальний хост за замовчуванням.

sudo nano /etc/apache2/sites-enabled/000-default.conf


ServerAdmin webmaster @ localhost
DocumentRoot / var / www / html
ErrorLog $ / error.log
CustomLog $ / access.log combined

/etc/apache2/sites-enabled/000-default.conf

ServerAdmin webmaster @ localhost
DocumentRoot / var / www / html
ErrorLog $ / error.log
CustomLog $ / access.log combined



ServerAdmin webmaster @ localhost
DocumentRoot / var / www / html
ErrorLog $ / error.log
CustomLog $ / access.log combined

AuthType Basic
AuthName "Restricted Content"
AuthUserFile /etc/apache2/.htpasswd
Require valid-user

Збережіть і закрийте файл. Перезапустіть Apache, щоб оновити конфігурації.

sudo service apache2 restart

Тепер доступ до контенту, що знаходиться в цьому каталозі, захищений паролем.

Для початку потрібно налаштувати Apache для підтримки файлів .htaccess. Відкрийте конфігурації Apache:

sudo nano /etc/apache2/apache2.conf

Знайдіть блок каталогу / var / www (як ви розумієте, це налаштування каталогу document root). Увімкніть підтримку файлів .htaccess, замінивши значення директиви AllowOverride на All.



Options Indexes FollowSymLinks
AllowOverride All
Require all granted

.

Збережіть і закрийте файл.

Потім потрібно додати файл .htaccess в каталог, доступ до якого потрібно обмежити. Знову ж таки, в прикладі доступ буде обмежений до каталогу document root, / var / www / html (тобто до всього сайту). Щоб обмежити доступ до іншого каталогу, внесіть в код відповідні поправки.

sudo nano /var/www/html/.htaccess

AuthType Basic
AuthName "Restricted Content"
AuthUserFile /etc/apache2/.htpasswd
Require valid-user

Збережіть і закрийте файл. Перезапустіть веб-сервер, щоб оновити його налаштування.

sudo service apache2 restart

Authentication Required
The server requires a username and password. The server says:
Restricted server.
User Name:
Password:

Введіть валідниє облікові дані, щоб отримати доступ до контенту. У разі отримання невірних облікових даних сервер поверне помилку «Unauthorized».

висновок

Тепер контент сайту захищений за допомогою пароля. Майте на увазі, що захист паролем слід комбінувати з шифруванням SSL, в іншому випадку облікові дані будуть передаватися на сервер у вигляді простого тексту, а це дуже серйозна уразливість для безпеки.

Схожі статті