Как ограничить запросы к ссылке и подбор пароля
С версии приложения 1.3.0
На вкладке «Безопасность» туннеля с HTTPS-ссылкой, в карточке «Защита туннеля», задайте лимит запросов, чтобы один посетитель или программа не завалили ваше приложение запросами, и защиту от подбора: адрес, с которого перебирают пароль или ключ, встанет на паузу.
Лимиты запросов
Сверх лимита ссылка отвечает 429, и запрос до вашего приложения не доходит. Лимит задаётся отдельно:
- «Анонимные посетители» — на адрес посетителя: открытые пути и ссылка без логина и ключа;
- «Вошедшие по логину» — на адрес посетителя, который вошёл по логину; действует, когда у ссылки есть логин;
- «Программы по ключу» — на каждый ключ.
«Запросов в минуту» — от 1 до 600 000 в среднем. «Разом» — сколько запросов пропустить сразу, от 1 до 100 000; по умолчанию 500 или запросы одной секунды, если их больше. Пустое «Запросов в минуту» — без лимита, как по умолчанию.
- Приложение
- Командная строка
- В разделе «Туннели» откройте туннель с HTTPS-ссылкой и перейдите на вкладку «Безопасность».
- В карточке «Защита туннеля» выберите раздел «Лимиты».
- В блоке «Лимиты запросов к ссылке» заполните «Запросов в минуту» и, если нужно, «Разом».
- Нажмите «Сохранить».
Пока открыта ссылка, набирайте команды в другом окне терминала:
proximamp access t1 requests anonymous 120 --burst 20 # 120 в минуту, до 20 разом
proximamp access t1 requests signed-in 600 # вошедшим по логину 600 в минуту
proximamp access t1 requests keys off # программам по ключу без лимита
Ссылку службы настраивают теми же словами (в Windows без sudo):
sudo proximamp service access <ссылка> requests anonymous 120 --burst 20 # <ссылка> — из sudo proximamp service status
Лимит для анонимных посетителей не закрывает ссылку без логина, ключа и правил путей: пускает всех, но не чаще лимита. Его включение и выключение один раз оборвут открытые соединения ссылки.
Где тариф позволяет, у ключа может быть свой лимит вместо общего:
| Тариф | Basic | Pro | Ultra |
|---|---|---|---|
| Свой лимит запросов у ключа | нет | да | да |
В разделе «Способ входа» нажмите в строке ключа значок «Лимит запросов ключа «…»», задайте числа и нажмите «Сохранить»; «Снять свой лимит» возвращает общий.
В командной строке:
proximamp access t1 key limit bot 600 --burst 50 # свой лимит ключу
proximamp access t1 key limit bot off # снять его
Защита от подбора пароля и ключа
Столько неверных паролей или ключей с одного адреса за указанное время ставят его на паузу: пока она идёт, с этого адреса не войти. По умолчанию — 10 неверных попыток за 10 минут и пауза 15 минут, период и пауза — от 1 до 1440 минут. У пароля — от 3 до 100 попыток, выключить защиту нельзя; у ключа — от 0 до 1000, 0 выключает её.
- Приложение
- Командная строка
- В разделе «Туннели» откройте туннель с HTTPS-ссылкой и перейдите на вкладку «Безопасность».
- В карточке «Защита туннеля» выберите раздел «Способ входа».
- В блоке «Защита от подбора пароля» задайте «Неверных попыток», «Период, минут» и «Пауза, минут». У ссылки с ключами те же поля есть в блоке «Защита от подбора ключа».
- Нажмите «Сохранить».
Адреса, которые сейчас на паузе, показывает блок «Адреса на паузе»; кнопка «Снять все паузы» снимает их сразу.
proximamp access t1 failures password 5 --minutes 10 --pause 30 # пауза 30 минут после 5 неверных паролей за 10 минут
proximamp access t1 failures key off # без паузы за неверный ключ
proximamp access t1 failures password default # вернуть значения по умолчанию
proximamp access t1 # кто на паузе: строка «Приостановлен: … до …»
proximamp access t1 unpause 203.0.113.7 # снять паузу; снимает паузы всех адресов
Завершить сеансы посетителей
Чтобы все, кто вошёл по логину, вошли заново, в разделе «Способ входа» нажмите «Завершить сеансы посетителей» и подтвердите кнопкой «Завершить сеансы»; вам тоже придётся войти заново. Чтобы человек не вошёл снова, смените пароль его логина или удалите логин (логин и пароль).
В командной строке:
proximamp access t1 sign-out-everyone
Проверьте
Откройте ссылку в окне инкогнито и введите неверный пароль больше раз, чем задано в поле «Неверных попыток»: адрес появится в блоке «Адреса на паузе», и войти с него не получится. «Снять все паузы» вернёт вход и вам. Лимит запросов сработал, если рядом с названием лимита появилась строка «Отклонено … запросов».
В командной строке паузу показывает proximamp access t1. Счётчика отклонённых запросов у proximamp нет: сработавший лимит виден по ответу 429.