Различия
Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слева Предыдущая версия | |||
| nginx:ограничение_доступа_средствами_nginx [2016/01/31 15:06] – mirocow | nginx:ограничение_доступа_средствами_nginx [2019/09/26 16:07] (текущий) – mirocow | ||
|---|---|---|---|
| Строка 8: | Строка 8: | ||
| В конфигурационном файле, в папке, которую хотим закрыть надо только указать файл, где хранятся пароли. | В конфигурационном файле, в папке, которую хотим закрыть надо только указать файл, где хранятся пароли. | ||
| Вот два примера для закрытия папки с файлами: | Вот два примера для закрытия папки с файлами: | ||
| - | | + | |
| + | <code nginx> | ||
| root / | root / | ||
| autoindex | autoindex | ||
| Строка 16: | Строка 17: | ||
| access_log | access_log | ||
| } | } | ||
| + | </ | ||
| + | |||
| и админовской части c дополнительным ограничением по IP: | и админовской части c дополнительным ограничением по IP: | ||
| - | | + | <code nginx> |
| fastcgi_pass unix:/ | fastcgi_pass unix:/ | ||
| include | include | ||
| Строка 27: | Строка 30: | ||
| access_log | access_log | ||
| } | } | ||
| + | </ | ||
| Добавить пользователя можно с помощью стандартной утилиты от apache: | Добавить пользователя можно с помощью стандартной утилиты от apache: | ||
| htpasswd -b passwords NewUser NewPassword | htpasswd -b passwords NewUser NewPassword | ||
| Строка 35: | Строка 39: | ||
| Вести лог неудачных попыток подбора пароля и скриптом раз в минуту проверять лог и заносить IP адреса в iptables | Вести лог неудачных попыток подбора пароля и скриптом раз в минуту проверять лог и заносить IP адреса в iptables | ||
| Для первого варианта достаточно создать правила: | Для первого варианта достаточно создать правила: | ||
| + | |||
| iptables -A INPUT -p tcp --syn --dport 80 -i eth0 -m state --state NEW | iptables -A INPUT -p tcp --syn --dport 80 -i eth0 -m state --state NEW | ||
| -m recent --name bhttp --set | -m recent --name bhttp --set | ||
| Строка 41: | Строка 46: | ||
| --hitcount 360 -j DROP | --hitcount 360 -j DROP | ||
| iptables -A INPUT -p tcp --syn --dport 80 -i eth0 -j ACCEPT | iptables -A INPUT -p tcp --syn --dport 80 -i eth0 -j ACCEPT | ||
| + | | ||
| Можно вместо DROP использовать TARPIT, чтобы усложнить жизнь ломателям :) | Можно вместо DROP использовать TARPIT, чтобы усложнить жизнь ломателям :) | ||
| Для второго варианта надо добавить в конфиг: | Для второго варианта надо добавить в конфиг: | ||
| + | <code nginx> | ||
| location /401.html { | location /401.html { | ||
| root / | root / | ||
| access_log | access_log | ||
| } | } | ||
| + | </ | ||
| + | |||
| Формат error401, у меня например такой: | Формат error401, у меня например такой: | ||
| log_format error401 | log_format error401 | ||
| ' | ' | ||
| + | |||
| Теперь все неправильные попытки будут записываться в отдельный лог, который мы можем обрабатывать по cron-у: | Теперь все неправильные попытки будут записываться в отдельный лог, который мы можем обрабатывать по cron-у: | ||
| - | | + | <code bash> |
| + | | ||
| например, | например, | ||
| Есть какие-либо идеи, мысли? | Есть какие-либо идеи, мысли? | ||