Все про authtype або авторизація в apache, apache

Тут я розповім про можливості Apache захищати вміст сервера або його частин.

Директиви Apache для контролю доступу

Якщо вам потрібно просто дозволити або блокувати доступ до будь-якої частини сайту або всьому сервера в цілому для певних IP, використовуйте наступні директиви.

Увага! Якщо ви хочете використовувати ці директиви у файлі .htaccess, перевірте, що б для вашого хоста директива AllowOverride кореневого файлу конфігурації Apache включала опцію Limit

Значення: Order (allow, deny | deny, allow)

Директива Order вказує порядок, в якому буде проводитися читання з директив Allow і Deny

* Allow, deny - спочатку читаються директиви Allow. Якщо користувача немає в цьому списку, то він блокується. Якщо ж він є, то далі зчитуються директиви Deny (процес ще не закінчений). Якщо ж користувач є і там, то він блокується. Якщо його там немає, то він пропускається. Тобто користувач пропускається тільки при наявності тільки в списку Allow, але не в Deny
* Deny, allow - спочатку обробляються директиви Deny і відсіваються ті користувачі, які є в цьому списку. Будь-які інші пропускаються. Тобто користувач пропускається завжди, але якщо його немає в списку Deny

Формат директив: (Allow | Deny) from (IP | IPs | all) (IP | IPs | all). (IP | IPs | all)

Директиви Allow і Deny визначають клієнтів, яким дозволити або заборонити доступ до сервера.

Директиви допускають використання:

* Одиночного IP (IP) - звичайний вид IP, наприклад, 127.0.0.1
* Групи IP (IPs) - група IP, наприклад, для доступу, тільки з локальної мережі, 192.168.1.0/24
* Будь-якого IP (all) - позначає будь-який IP

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

У цьому файлі вказується доступ тільки для клієнтів з локальної мережі або з IP 11.11.11.12

Частина файлу httpd.conf

Так ми Банимо сайт для якого-небудь одного IP
Контроль на ім'я користувача або групі

Якщо вам потрібно захистити сайт або частина сервера паролем, використовуйте наступні директиви.

Увага! Якщо ви хочете використовувати ці директиви у файлі .htaccess, перевірте, що б для вашого хоста директива AllowOverride кореневого файлу конфігурації Apache включала опцію AuthType. Так само для деяких директив (AuthUserFile і AuthGroupFile) потрібна підтримка mod_auth

Значення: AuthType (Basic | Digest)

Apache підтримує 2 типу захисту змісту (директива AuthType):

Формат директиви: AuthName "String"

Ця директива вказує текст підказки, яка відображається в браузері при вході на захищену частину сайту, див. Малюнок вище

Формат директив: (AuthUserFile | AuthGroupFile) "String"

Увага! Для роботи цих директив необхідний модуль Apache mod_auth, який підключається за замовчуванням

Ці директиви визначають, відповідно, шлях (абсолютний) до файлу, що зберігає зв'язки Ім'я: DES і шлях (теж абсолютний) до файлу, що зберігає зв'язки Група: Ім'я Ім'я. ім'я

Містить інформацію про допустимі імена користувачів і їх паролі в форматі Ім'я: DES, де DES - це назва алгоритму шифрування. Файл можна створити стандартної консольної програмою, яка входить до складу Apache, htpasswd. Опис її використання дивіться нижче

Цю директиву потрібно вказувати тільки, якщо ви вказали значення для директиви Request (дивіться нижче) рівному group

Цей файл містить інформацію про допустимі групах користувачів для входу. Формат файлу: Група: Ім'я Ім'я. Ім'я. Тобто тільки ті користувачі, які існують і які входять в групи, описані в директиві Require (дивіться нижче), зможуть увійти

Значення: Require (user Ім'я Ім'я. Ім'я | group Група Група. Група | valid-user

Ця директива визначає принцип аутентифікації:

* User - тільки користувачі, зазначені наступними через пробіл, і вказали вірний пароль, зможуть увійти
* Group - тільки користувачі, що входять до групи, зазначені наступні через пробіл, і вказали вірний пароль, зможуть увійти. Вказівка ​​директиви AuthGroupFile обов'язково
* Valid-user - будь-який користувач, який існує в файлі AuthUserFile, і вказав вірний пароль, зможе увійти

На цьому директиви, необхідні для методу AuthType Basic, перераховані. Інші директиви, які стосуються методу AuthType Digest, я перераховувати не буду, т. До вони мають вузьконаправлене дію і в загальних системах не використовуються
Утиліта Apache htpasswd

Ця консольна програма створює файли, які вказуються в директиві AuthUserFile. Файл зберігає зв'язки Ім'я: Пароль для доступу до захищеної частини сайту

Зазвичай програма поставляється разом з Apache і перебувати в папці bin її кореневої папки

Формат виклику утиліти:

Параметри командного рядка

* -с - створити новий файл. Якщо цей параметр не вказано, і файл не існує, утиліта видасть помилку і аварійно завершить роботу. Увага! Якщо файл вже існував, він буде перезаписаний
* -d - утиліта буде використовувати алгоритм шифрування DES (в C це функція crypt ()). За замовчуванням використовується у всіх ОС, але не в Windows
* -m - використовувати алгоритм шифрування MD5, який є шифром за замовчуванням в Windows
* -p - зберегти пароль в чистому вигляді, без шифрування. Працює тільки в Windows
* -s - утиліта буде використовувати алгоритм шифрування SHA
* -b - в нормальному режимі, без цієї опції, утиліта отримує пароль введенням в стандартний вхідний потік. При використанні цієї опції, після шляху до файлу паролів повинен йти пароль, і утиліта отримає пароль з цієї опції. Утиліта не буде чекати призначеного для користувача введення, вона відразу поверне управління в оболонку. Приклад: htpasswd -b .htpasswd smhtpass

Частина файлу httpd.conf

Тут доступ дозволений за тим же файлу з користувачами, але тільки з тими, хто входить до груп my або root, певні в файлі .htgroup

Для створення файлу паролів для першого прикладу

Входимо в shell і пишемо такі команди

На цьому я закінчу свій опис тут засобів захисту даних web-сервером Apache. Всі побажання або питання можете залишати за нижченаведеними координатами

Схожі статті