0 like 0 dislike
174 views
in Linux by (8.0k points)

Оригинал статьи https://blog.sedicomm.com/2019/12/12/kak-zashhitit-parolem-veb-katalogi-v-apache-s-pomoshhyu-fajla-htaccess/

Как защитить паролем веб-каталоги в Apache с помощью файла .htaccess. Когда вы управляете онлайн-проектами, вам часто нужно ограничить доступ к этому проекту, чтобы защитить его от внешнего мира. Для этого могут быть разные причины — например, вы хотите запретить поисковым системам доступ к вашему сайту, пока он еще находится в стадии разработки.

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

Первый способ настраивает защиту паролем непосредственно в файле конфигурации Apache, а второй использует файл .htaccess.

Требования

Чтобы установить защиту паролем для ваших веб-каталогов, вам необходимо иметь:

  • Работающий веб-сервер Apache
  • Директива AllowOverride и AuthConfig должна быть включена в файле конфигурации Apache.

Установить защищенный паролем каталог Apache

1. В этом руководстве мы будем защищать основной корневой веб-каталог /var/www/html. Чтобы защитить этот каталог, откройте конфигурацию вашего Apache:

---------------- On RedHat/CentOS based systems ----------------

# vi /etc/httpd/conf/httpd.conf

---------------- On Debian/Ubuntu based systems ----------------

# nano /etc/apache2/sites-available/000-default.conf

2. Найдите корневой каталог документов Apache для /var/www/html и добавьте следующее, как предлагается:

В версии Apache 2.2

<Directory /var/www/html>

Options Indexes Includes FollowSymLinks MultiViews

AllowOverride All

Order allow,deny

Allow from all
</Directory>

В версии Apache 2.4

<Directory /var/www/html>
Options Indexes Includes FollowSymLinks MultiViews
AllowOverride All
Require all granted
</Directory>

3. Сохраните файл и перезапустите Apache, используя следующую команду:

--------------- On Systemd -------------------

# systemctl restart httpd [On RedHat based systems]

# systemctl restart apache2 [On Debian based systems]
--------------- On SysV init -----------------
# service httpd restart [On RedHat based systems]
# service apache2 restart [On Debian based systems]

4. Теперь мы будем использовать команду htpasswd для генерации имени пользователя и пароля для нашего защищенного каталога. Эта команда используется для управления пользовательскими файлами для базовой аутентификации.

htpasswd -c /путь/к/файлу/.htpasswd имя_пользователя

Общий синтаксис команды:

# htpasswd -c filename username

Параметр -c указывает файл, в котором будет храниться зашифрованный пароль (хешированый), а имя пользователя — имя для аутентификации.

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

# mkdir /home/tecmint

6. После этого мы сгенерируем ваше имя пользователя и пароль, которые будут храниться в этом каталоге:

# htpasswd -c /home/sedicomm/webpass sedicomm

После выполнения этой команды вам нужно будет дважды ввести пароль для нашего нового пользователя “sedicomm”:

После этого нам нужно убедиться, что Apache может прочитать файл «webpass». Для этого вам нужно изменить владельца этого файла с помощью следующей команды:

---------------- On RedHat/CentOS based systems ----------------

# chown apache: /home/sedicomm/webpass

# chmod 640 /home/sedicomm/webpass

---------------- On Debian/Ubuntu based systems ----------------

# chown www-data /home/sedicomm/webpass

# chmod 640 /home/sedicomm/webpass

7. На данный момент наш новый пользователь и пароль готовы. Теперь нам нужно указать Apache запрашивать пароль при доступе к нашему целевому каталогу. Для этого создайте файл с именем .htaccess в /var/www/html:

# vi /var/www/html/.htaccess

Добавьте в него следующий код:

AuthType Basic

AuthName "Restricted Access"

AuthUserFile /home/sedicomm/webpass

Require user sedicomm

8. Теперь сохраните файл и протестируйте настройки. Откройте браузер и введите свой IP-адрес или имя домена в веб-браузере, например:

http://ip-address

Вам будет предложено ввести имя пользователя и пароль:

Введите имя пользователя и пароль, которые вы установили для перехода на свою страницу.

ополнительные замечания

Если вы используете виртуальный хостинг, скорее всего, у вас не будет доступа к файлу конфигурации Apache. Однако большинство хостинговых компаний по умолчанию включили опцию «AllowOverride All». Это означает, что вам нужно только сгенерировать имя пользователя и пароль, а затем выбрать каталог, который вы хотите защитить. Это значительно облегчает вашу задачу.

Спасибо за уделенное время на прочтение статьи о том, как защитить паролем веб-каталоги в Apache с помощью файла .htaccess!

Если возникли вопросы, задавайте их в комментариях.

Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!

Please log in or register to answer this question.

373 questions

10 answers

4 comments

1.0k users

...