How To Set Up Password Authentication with Apache on Ubuntu 14.04 | DigitalOcean

Introduction

When setting up a web server, there are often sections of the site that you wish to restrict access to. Web applications often provide their own authentication and authorization methods, but the web server itself can be used to restrict access if these are inadequate or unavailable.

In this guide, we’ll demonstrate how to password protect assets on an Apache web server running on Ubuntu 14.04.

1: установка пакета apache2-utils

Для начала нам нужно установить на сервер пакеты, которые понадобятся нам в работе.

Чтобы создать файл для хранения паролей, понадобится утилита htpasswd. Она входит в пакет apache2-utils, который можно найти в стандартном репозитории.

Обновите индекс пакетов и установите apache2-utils с помощью следующих команд:

sudo apt updatesudo apt install apache2-utils

2: создание файла паролей

Теперь у вас есть доступ к команде htpasswd, которая позволяет создавать файлы паролей. С помощью такого файла Apache будет выполнять аутентификацию пользователей. Создайте скрытый файл .htpasswd в каталоге /etc/apache2.

При первом запуске утилита требует флаг -c, который создаёт необходимый файл .htpasswd. Чтобы создать новую запись в файле, укажите в конце команды имя пользователя:

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

Команда запросит пароль текущего пользователя.

Чтобы добавить в этот файл данные других пользователей, используйте команду htpasswd без флага –с.

3: настройка аутентификации apache

Файл паролей с необходимыми данными готов. Теперь нужно настроить Apache, чтобы он проверял этот файл перед обслуживанием закрытого контента. Это можно сделать двумя способами: добавить информацию о файле паролей в виртуальный хост или создать файлы .htaccess в тех каталогах, содержимое которых нужно защитить.

Выберите наиболее подходящий метод настройки и следуйте инструкциям соответствующего раздела.

Похожее:  Тарифы по обслуживанию вкладов — СберБанк

4: тестирование авторизации

Чтобы убедиться, что все необходимые каталоги теперь защищены паролем, попробуйте получить доступ к закрытому контенту в веб-браузере. На экране должна появиться форма аутентификации, предлагающая ввести имя пользователя и пароль:

Allow ip address

Order deny,allow
Deny from all
Allow from 10.1.2.3

Allow ipv6 addresses and subnets

Order deny,allow
Deny from all
Allow from 2001:db8::a00:20ff:fea7:ccea
Allow from 2001:db8::a00:20ff:fea7:ccea/10

Allow more than 1 ip address

Order deny,allow
Deny from all
Allow from 192.168.1.104 192.168.1.205

Allow network/netmask pair

Order deny,allow
Deny from all
Allow from 10.1.0.0/255.255.0.0

Allow network/nnn cidr specification

Order deny,allow
Deny from all
Allow from 10.1.0.0/16

Allow partial ip addresses, first 1 to 3 bytes of ip, for subnet restriction

Order deny,allow
Deny from all
Allow from 10.1
Allow from 10 172.20 192.168.2

Configuring access control with .htaccess files

If you wish to set up password protection using .htaccess files instead, you should begin by editing the main Apache configuration file to allow .htaccess files:

  1. sudonano /etc/apache2/apache2.conf

Deny subdomains

Order Allow,Deny
Allow from apache.org
Deny from wireshark.apache.org

Install the apache utilities package

In order to create the file that will store the passwords needed to access our restricted content, we will use a utility called htpasswd. This is found in the apache2-utils package within the Ubuntu repositories.

Update the local package cache and install the package by typing this command. We will take this opportunity to also grab the Apache2 server in case it is not yet installed on the server:

  1. sudoapt-get update
  2. sudoapt-getinstall apache2 apache2-utils

Skeleton .htaccess file

I use this when I start a new site, and uncomment or delete parts of the file depending on the sites needs

Похожее:  Кредит онлайн від Ваша Готівочка - займ от Vasha gotivochka

Ultimate htaccess file sample

Вариант 1: настройка аутентификации через виртуальный хост

Этот метод обеспечивает более высокую производительность, поскольку веб-серверу не придется читать дополнительные конфигурационные файлы. Для такой настройки вам нужен доступ к конфигурации, который есть не у всех пользователей.

Откройте файл виртуального хоста того сайта, доступ к которому нужно ограничить. В данном мануале используется стандартный файл default-ssl.conf , который поставляется вместе с apache.

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

Внутри файл выглядит так (для удобства закомментированные строки опущены):

Вариант 2: настройка аутентификации с помощью файлов .htaccess

Apache может управлять аутентификацией с помощью файлов .htaccess. При этом Apache перечитывает каждый такой файл, что, конечно, отражается на производительности. По этой причине мы рекомендуем настраивать веб-сервер согласно первому варианту. Вариант 2 подходит, если вы уже используете файлы .htaccess или хотите предоставить пользователям без прав root возможность управлять ограничениями.

Чтобы включить поддержку аутентификации по файлам .htaccess, откройте конфигурационный файл Apache:

sudo nano /etc/apache2/apache2.conf

Найдите блок <Directory> для каталога /var/www (document root по умолчанию). Чтобы включить поддержку файлов .htaccess, нужно изменить значение директивы AllowOverride с None на All.

. . .<Directory /var/www/>Options Indexes FollowSymLinksAllowOverride AllRequire all granted</Directory>. . .

Сохраните и закройте файл.

Затем нужно добавить файл .htaccess в тот каталог, доступ к которому вы хотите ограничить. Мы для примера покажем ниже, как закрыть доступ к каталогу document root, /var/www/html (то есть ко всему сайту). Чтобы ограничить доступ к другому каталогу, внесите в код соответствующие поправки.

sudo nano /var/www/html/.htaccess

Требования

Войдите в сессию вашего пользователя sudo и приступайте к работе.

Заключение

Теперь контент сайта защищён с помощью пароля. Парольную аутентификацию рекомендуется комбинировать с шифрованием SSL, в противном случае учетные данные будут передаваться  на сервер в виде простого текста, а это очень серьёзная проблема для безопасности.

Похожее:  Все наши продукты "Точка займа"

Conclusion

You should now have everything you need to set up basic authentication for your site. Keep in mind that password protection should be combined with SSL encryption so that your credentials are not sent to the server in plain text. To learn how to create a self-signed SSL certificate to use with Apache, follow this guide. To learn how to install a commercial certificate, follow this guide.

Configuring access control within the virtual host definition

Begin by opening up the virtual host file that you wish to add a restriction to. For our example, we’ll be using the 000-default.conf file that holds the default virtual host installed through Ubuntu’s apache package:

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

Inside, with the comments stripped, the file should look similar to this:

/etc/apache2/sites-enabled/000-default.conf
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector