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 з 12