Защита служебных директорий при помощи базовой авторизации сервера Nginx
Защита служебных директорий при помощи базовой авторизации сервера Nginx
Доброго времени суток!
Проблема следующего характера:
Стало необходимым реализовать защитный доступ к служебным папкам сайта путём базовой авторизации на уровне сервера Nginx.
Делалось все по рабочей инструкции: https://modhost.pro/help/nginx. Метод действительно рабочий, читал соответствующие форумы.
В кратце о его работе: при обращении в браузере к служебным файлам, например: админка - https://site.ru/manager, сервер дополнительно начинает запрашивать логин и пароль пользователя, указанный в файле .htpasswd, после авторизации становится доступным обычный вход в админ панель, где необходимо ввести уже логин и пароль от админки сайта.
В моем случае сервер откатывает данные и стартует с базовым конфигом. Применять отказывается.
Моя конфигурация nginx+php-fpm+VestaCP. Вношу эти изменения в шаблон modx.tpl (т.к. сайт на MODX Revo), именно он в моём понимании отвечает за блок server.
В файле .htpasswd прописываю захешированный пароль согласно сервиса http://www.htaccesstools.com/htpasswd-generator/:
логин:$apr1$pCRaZDgh$B4v1ENPbaSm5jb......... .
Размещаю его: /home/логин/.htpasswd
Но видимо даже до его сверки не доходит сценарий. Может быть надо еще что-то сделать на VestaCP? У остальных то работает все без проблем, и на голом Nginx без панели тоже.
Правильно ли я редактирую шаблон modx.tpl, если мне нужны изменения в блоке server? Пробовал редактировать modx.stpl, но нет смысла, он подхватывает только .tpl шаблон, видимо потому что, код применения SSL сертификата лежит в nginx.conf.
Жду помощи от команды VestaCP, возможно решение проблемы лежит на поверхности, но я уже обезсилил его искать.
Если необходимы какие данные, предоставлю что смогу.
Проблема следующего характера:
Стало необходимым реализовать защитный доступ к служебным папкам сайта путём базовой авторизации на уровне сервера Nginx.
Делалось все по рабочей инструкции: https://modhost.pro/help/nginx. Метод действительно рабочий, читал соответствующие форумы.
В кратце о его работе: при обращении в браузере к служебным файлам, например: админка - https://site.ru/manager, сервер дополнительно начинает запрашивать логин и пароль пользователя, указанный в файле .htpasswd, после авторизации становится доступным обычный вход в админ панель, где необходимо ввести уже логин и пароль от админки сайта.
Code: Select all
server {
location ~* ^/(manager|core|connectors)/ {
auth_basic "Restricted Access";
auth_basic_user_file /home/логин/.htpasswd;
try_files $uri $uri/ @rewrite;
location ~ \.php$ {
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass backend-логин;
}
}
}
Моя конфигурация nginx+php-fpm+VestaCP. Вношу эти изменения в шаблон modx.tpl (т.к. сайт на MODX Revo), именно он в моём понимании отвечает за блок server.
В файле .htpasswd прописываю захешированный пароль согласно сервиса http://www.htaccesstools.com/htpasswd-generator/:
логин:$apr1$pCRaZDgh$B4v1ENPbaSm5jb......... .
Размещаю его: /home/логин/.htpasswd
Но видимо даже до его сверки не доходит сценарий. Может быть надо еще что-то сделать на VestaCP? У остальных то работает все без проблем, и на голом Nginx без панели тоже.
Правильно ли я редактирую шаблон modx.tpl, если мне нужны изменения в блоке server? Пробовал редактировать modx.stpl, но нет смысла, он подхватывает только .tpl шаблон, видимо потому что, код применения SSL сертификата лежит в nginx.conf.
Жду помощи от команды VestaCP, возможно решение проблемы лежит на поверхности, но я уже обезсилил его искать.
Если необходимы какие данные, предоставлю что смогу.
Re: Защита служебных директорий при помощи базовой авторизации сервера Nginx
А Вы после внесения изменений в шаблон modx.tpl пересоздавали пользователя v-rebuild-web-domains USER restart и рестартовали NGINX systemctl restart nginx.service , nginx -t для применения изменений в шаблоне?snaiperIW wrote: ↑Sat Mar 30, 2019 5:49 pmДоброго времени суток!
Проблема следующего характера:
Стало необходимым реализовать защитный доступ к служебным папкам сайта путём базовой авторизации на уровне сервера Nginx.
Делалось все по рабочей инструкции: https://modhost.pro/help/nginx. Метод действительно рабочий, читал соответствующие форумы.
В кратце о его работе: при обращении в браузере к служебным файлам, например: админка - https://site.ru/manager, сервер дополнительно начинает запрашивать логин и пароль пользователя, указанный в файле .htpasswd, после авторизации становится доступным обычный вход в админ панель, где необходимо ввести уже логин и пароль от админки сайта.
В моем случае сервер откатывает данные и стартует с базовым конфигом. Применять отказывается.Code: Select all
server { location ~* ^/(manager|core|connectors)/ { auth_basic "Restricted Access"; auth_basic_user_file /home/логин/.htpasswd; try_files $uri $uri/ @rewrite; location ~ \.php$ { include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_pass backend-логин; } } }
Моя конфигурация nginx+php-fpm+VestaCP. Вношу эти изменения в шаблон modx.tpl (т.к. сайт на MODX Revo), именно он в моём понимании отвечает за блок server.
В файле .htpasswd прописываю захешированный пароль согласно сервиса http://www.htaccesstools.com/htpasswd-generator/:
логин:$apr1$pCRaZDgh$B4v1ENPbaSm5jb......... .
Размещаю его: /home/логин/.htpasswd
Но видимо даже до его сверки не доходит сценарий. Может быть надо еще что-то сделать на VestaCP? У остальных то работает все без проблем, и на голом Nginx без панели тоже.
Правильно ли я редактирую шаблон modx.tpl, если мне нужны изменения в блоке server? Пробовал редактировать modx.stpl, но нет смысла, он подхватывает только .tpl шаблон, видимо потому что, код применения SSL сертификата лежит в nginx.conf.
Жду помощи от команды VestaCP, возможно решение проблемы лежит на поверхности, но я уже обезсилил его искать.
Если необходимы какие данные, предоставлю что смогу.
Re: Защита служебных директорий при помощи базовой авторизации сервера Nginx
Все уже выяснено из этой темки, спасибо:Uselink wrote: ↑Wed Apr 03, 2019 12:12 pmА Вы после внесения изменений в шаблон modx.tpl пересоздавали пользователя v-rebuild-web-domains USER restart и рестартовали NGINX systemctl restart nginx.service , nginx -t для применения изменений в шаблоне?snaiperIW wrote: ↑Sat Mar 30, 2019 5:49 pmДоброго времени суток!
Проблема следующего характера:
Стало необходимым реализовать защитный доступ к служебным папкам сайта путём базовой авторизации на уровне сервера Nginx.
Делалось все по рабочей инструкции: https://modhost.pro/help/nginx. Метод действительно рабочий, читал соответствующие форумы.
В кратце о его работе: при обращении в браузере к служебным файлам, например: админка - https://site.ru/manager, сервер дополнительно начинает запрашивать логин и пароль пользователя, указанный в файле .htpasswd, после авторизации становится доступным обычный вход в админ панель, где необходимо ввести уже логин и пароль от админки сайта.
В моем случае сервер откатывает данные и стартует с базовым конфигом. Применять отказывается.Code: Select all
server { location ~* ^/(manager|core|connectors)/ { auth_basic "Restricted Access"; auth_basic_user_file /home/логин/.htpasswd; try_files $uri $uri/ @rewrite; location ~ \.php$ { include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_pass backend-логин; } } }
Моя конфигурация nginx+php-fpm+VestaCP. Вношу эти изменения в шаблон modx.tpl (т.к. сайт на MODX Revo), именно он в моём понимании отвечает за блок server.
В файле .htpasswd прописываю захешированный пароль согласно сервиса http://www.htaccesstools.com/htpasswd-generator/:
логин:$apr1$pCRaZDgh$B4v1ENPbaSm5jb......... .
Размещаю его: /home/логин/.htpasswd
Но видимо даже до его сверки не доходит сценарий. Может быть надо еще что-то сделать на VestaCP? У остальных то работает все без проблем, и на голом Nginx без панели тоже.
Правильно ли я редактирую шаблон modx.tpl, если мне нужны изменения в блоке server? Пробовал редактировать modx.stpl, но нет смысла, он подхватывает только .tpl шаблон, видимо потому что, код применения SSL сертификата лежит в nginx.conf.
Жду помощи от команды VestaCP, возможно решение проблемы лежит на поверхности, но я уже обезсилил его искать.
Если необходимы какие данные, предоставлю что смогу.
viewtopic.php?f=29&t=18511&start=10
Re: Защита служебных директорий при помощи базовой авторизации сервера Nginx
Кстати, коль, тема Ваша решена, хотел узнать у вас. Например, при наборе админки MODX Revo таким образом: https://site.ru/manager/index.php срабатывает Nginx Basic Authentication, открывается дополнительное окно аутентификации с запросом логина и пароля, или же сразу появляется окно админки MODX Revo, без базовой аутентификации Nginx?
У меня вот именно слетала дополнительная базовая аутентификация, не было защиты админки если забивать url https://site.ru/manager/index.php таким образом, пришлось в шаблоне modx.stpl дополнительно писать и ставить "костыль" после локейшена с базовой аутентификацией, который убирает index.php из url: https://site.ru/manager/index.php После этого окно Nginx Basic Authentication появилось.
У меня вот именно слетала дополнительная базовая аутентификация, не было защиты админки если забивать url https://site.ru/manager/index.php таким образом, пришлось в шаблоне modx.stpl дополнительно писать и ставить "костыль" после локейшена с базовой аутентификацией, который убирает index.php из url: https://site.ru/manager/index.php После этого окно Nginx Basic Authentication появилось.
Code: Select all
# Nginx Basic Authentication MODX REVO
location ~* ^\/(manager|core|connectors)\/(?:.*)$ {
auth_basic "Restricted Access";
auth_basic_user_file /etc/nginx/auth_user/.htpasswd_%user%;
try_files $uri $uri/ @rewrite;
location ~ \.php$ {
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass %backend_lsnr%;
}
}
# MODX /manager/index.php to /manager/
location /manager/ {
rewrite /index.php/(.*) /$1 permanent;
}
Re: Защита служебных директорий при помощи базовой авторизации сервера Nginx
Базовая авторизация открывается сразу же по запросу: https://site.ru/manager. Попробовал: https://site.ru/manager/index.php - тоже самое, запрос идет.Uselink wrote: ↑Wed Apr 03, 2019 2:37 pmКстати, коль, тема Ваша решена, хотел узнать у вас. Например, при наборе админки MODX Revo таким образом: https://site.ru/manager/index.php срабатывает Nginx Basic Authentication, открывается дополнительное окно аутентификации с запросом логина и пароля, или же сразу появляется окно админки MODX Revo, без базовой аутентификации Nginx?
У меня вот именно слетала дополнительная базовая аутентификация, не было защиты админки если забивать url https://site.ru/manager/index.php таким образом, пришлось в шаблоне modx.stpl дополнительно писать и ставить "костыль" после локейшена с базовой аутентификацией, который убирает index.php из url: https://site.ru/manager/index.php После этого окно Nginx Basic Authentication появилось.
Code: Select all
# Nginx Basic Authentication MODX REVO location ~* ^\/(manager|core|connectors)\/(?:.*)$ { auth_basic "Restricted Access"; auth_basic_user_file /etc/nginx/auth_user/.htpasswd_%user%; try_files $uri $uri/ @rewrite; location ~ \.php$ { include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_pass %backend_lsnr%; } } # MODX /manager/index.php to /manager/ location /manager/ { rewrite /index.php/(.*) /$1 permanent; }
Пока не будет введен логин и пароль не будет открыта админка MODX, в этом и есть огромный плюс этой авторизации для безопасности на уровне сервера.
У Вас в главном location мне кажется лишние слэши, мой рабочий код:
Code: Select all
location ~* ^/(manager|core|connectors)/ {
auth_basic "Restricted Access";
auth_basic_user_file /home/[b]логин[/b]/.htpasswd;
try_files $uri $uri/ @rewrite;
location ~ \.php$ {
include /etc/nginx/fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass %backend_lsnr%
}
}