NGINX ограничиваем доступ к папке


Собственно, нужно правильно средствами NGINXа ограничить доступ к админке сайта.
В данном случае это Joomla и папочка /administrator/ которую последнее время сильно стали тревожить подозрительные запросы …
Пишу «правильно» т.к. года два назад написал конфиг преследуя эту же цель и «вроде бы» всё работало как надо!
На днях всплыло, что не как надо 🙂
Итак:

Оказалось вообще не верным, т.к. работало только на /administrator/
И пропускало все атаки, переборы и т.д. на /administrator/index.php — которые уходили в секцию обработки скриптов

«Правильное» решение, сразу же найденное в сети — использование префикса ^~
то есть

НО! в таком случае правило работает на все файлы находящиеся в /administrator/
и до location обрабатывающего статику а-ля

дело не доходит! а т.к. у меня fast-cgi то статика осталась вообще не удел
всё происходит из-за приоритетов обработки location
Правильно обработки папки /administrator/ имеет более высокий приоритет, и после его обработки дальнейшие location не обрабатываются

Подумал я и ничего лучше, чем обработку /administrator/ запихать в регулярку (для выравнивания приоритетов) не придумал
Финальный результат (закоментированные строки убирать специально не стал, т.к. имея статический IP — это самая лучшая защита админки)

Таким образом все php из /administrator/ «пройдут» через секцию с авторизацией, не помешав обработке статики.
Ч.т.д.


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

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