Token-based лимитирование количества подключений

22/Июнь/2024 nginx

Все знают про лимиты количества подключений с одного IP (IP-based), но что делать, если мы хотим ограничить количество подключений к некому API на один токен авторизации?
И не важно, сколько разных IP будет использовано.

Часть конфига nginx:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
map $request_uri $client_token {
    "~*(?i)(token=)([a-f0-9]{32})" $2;      # regex return <32str>
    default                        "";      # Fallback to limit_req_zone:global
}

limit_req_zone  $binary_remote_addr   zone=global:32m       rate=100r/s;    # Rule_1
limit_req_zone  $client_token         zone=tokenlimit:32m   rate=5r/s;      # Rule_2
limit_req       zone=global           burst=25;

server {
        location / {
            index index.html;
            root /var/www/html;
        }
        location = /api {
            index index.html;
            root /var/www/api/html;
            limit_req   zone=tokenlimit   burst=5 nodelay;  # api location
            limit_req   zone=global;                        # Fallback
            limit_req_status              429;              # 503
Token-based лимитирование количества...

Xorg от непривилегированного пользователя

12/Январь/2024 gdm3xorgkvmsecurity

Образно.
Есть некий софт, которому нужны иксы.
Казалось бы, скачал, поставил, запустил - пользуйся.
Но вот, ведь, проблема, подобный софт (для меня подобный - абсолютно весь, не входящий в штатный репозиторий debian) я не хочу запускать:

  1. На своём хосте.
  2. От своего пользователя.
  3. Под Xorg моего пользователя.
  4. Допускать в мою/мои сети, в том числе 127.0.0.0

Кроме того, тот же браузер для “полазить” по сайтам и браузер для клиент-банка, это не один и тот же браузер, пользователь и, иногда, система.
Пункты 1, 2, 4, сейчас не рассматриваем, речь пойдёт об X.

В debian при стандартных настройках системы в качестве display manager используется LightDM.
В нём можно включить listen tcp, но процессы Xorg он запускает от root.
В gdm3 же наоборот, по умолчанию, он запускает Xorg от пользователя, который логинится в окружение, но в нём сломали возможность включить listen tcp.
Точнее оставили возможность выключить nolisten tcp,
но не включить listen tcp.

Для этого необходимо отредактировать обёртку над X.

Xorg от непривилегированного...

Разбитые дроны

25/Декабрь/2023 quadcopter

Повреждённый Autel Robotics 4032x3024 23-09-28_09-50-26.jpg
Повреждённый Autel Robotics
Повреждения платы
Повреждения платы 4032x3024
23-12-23_12-43-37.jpg
Повреждения платы
Повреждения платы 4032x3024
23-12-23_12-43-50.jpg
Пробитый корпус
Пробитый корпус 4032x3024
23-12-23_12-50-15.jpg


Разбитые дроны

На природе

28/Октябрь/2023 landscapenature

Лес / Деревья
Лес / Деревья 3024x4032
23-10-28_13-23-42.jpg
Лес / Деревья
Лес / Деревья 3024x4032
23-10-28_13-24-31.jpg
Узкоколейка
Узкоколейка 3024x4032
IMG_4065.jpg
На природе

Разные техно-фото

25/Сентябрь/2023 vibration-sensorir-sensorinfrared-sight

Оптическая клавиатура
Оптическая клавиатура 4032x3024
23-11-05_20-11-43.jpg
Плазменный шар
Плазменный шар 4032x3024
24-05-21_22-21-11.jpg
Ремонт мыши
Ремонт мыши 4032x3024
24-02-07_20-10-16.jpg
Разные техно-фото
Страница 4 из 13