Поиск по сайту:

Как защитить паролем веб-каталоги в 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 filename username

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

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

mkdir /home/tecmint

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

htpasswd -c /home/tecmint/webpass tecmint

После выполнения этой команды вам придется дважды ввести пароль для нашего нового пользователя "tecmint":

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

---------------- On RedHat/CentOS based systems ----------------
chown apache: /home/tecmint/webpass
chmod 640 /home/tecmint/webpass
---------------- On Debian/Ubuntu based systems ----------------
chown www-data /home/tecmint/webpass
chmod 640 /home/tecmint/webpass

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

vi /var/www/html/.htaccess

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

AuthType Basic
AuthName "Restricted Access"
AuthUserFile /home/tecmint/webpass
Require user tecmint

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

http://ip-address

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

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

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

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

Заключение

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