Небольшая заметка о том, как средствами Nginx закрыть доступ к файлам/папке по паролю. В nginx это решение не менее элегантно, чем в apache, а может и еще лучше, кому как нравится.
В конфигурационном файле, в папке (локейшене), которую хотим закрыть надо только указать файл, где хранятся пароли.
Вот два примера для закрытия папки с файлами:
|
|
и админовской части c дополнительным ограничением по IP:
|
|
Добавить пользователя можно с помощью стандартной утилиты от apache:
|
|
В файле запись с зашифрованным паролем имеет вид:
|
|
Защиту от перебора паролей можно организовать одновременно двумя методами, основанными на использовании iptables:
- Блокирование IP на время, если количество запросов в секунду превышает какое-либо разумное количество
- Вести лог неудачных попыток подбора пароля и скриптом раз в минуту проверять лог и заносить IP адреса в iptables
Для первого варианта достаточно создать правила:
|
|
Можно вместо DROP использовать TARPIT, чтобы усложнить жизнь ломателям :)
Для второго варианта надо добавить в конфиг:
|
|
Формат error401
, у меня например такой:
|
|
Теперь все неправильные попытки будут записываться в отдельный лог, который мы можем обрабатывать по cron-у:
|
|
например, таким скриптом: parser401.pl
Скрипт проверяет лог, и если обнаруживает больше 4-х попыток неправильного набора пароля, блокирует этот IP.