We are happy to announce that Vesta is back under active development as of 25 February 2024. We are working on v1 candidate and expect to engage more with the community over the coming months. We are committed to open source, and we encourage contributors to help us build the future of Vesta.
Защита служебных директорий при помощи базовой авторизации сервера 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%
}
}