feat(license): сервер лицензий lic.zetit.ru — кабинет, онлайн-активация и защита

- bj-license-server: активация по коду и продление токенов (API /v1), кабинет
  администратора (клиенты, лицензии, установки, журнал, администраторы)
- защита: доверенные IP установок, jail fail2ban api/admin, раздел «Защита»
  с режимом обороны, белым списком и сроками блокировок (root-помощник fw-apply)
- доступ к кабинету: свой адрес вместо /admin, вход только из белого списка,
  второй фактор — TOTP или подтверждение в «ЗЕТИТ Ключ» (push/код)
- deploy/license: unit-файлы, fail2ban, path/timer помощника; контракт API в docs

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
zuevav
2026-09-15 19:41:11 +03:00
parent 586ffb3a31
commit 86aa452ed6
19 changed files with 4659 additions and 99 deletions
@@ -0,0 +1,30 @@
# Сервер лицензий lic.zetit.ru: блокировка IP на уровне файрвола.
# Вход в кабинет: не блокируется только белый список администраторов (раздел «Защита»).
[bj-license-admin]
enabled = true
backend = systemd
filter = bj-license-admin
port = http,https
maxretry = 10
findtime = 10m
bantime = 1h
ignorecommand = /opt/bj-license/bj-license-server fw-ignore -dir /var/lib/bj-license <ip> admin
# API активации и продления: не блокируются адреса установок, успешно активировавших или продливших
# лицензию (trusted-ips.txt), и белый список администраторов (allow-ips.txt).
[bj-license-api]
enabled = true
backend = systemd
filter = bj-license-api
port = http,https
maxretry = 10
findtime = 10m
bantime = 1h
ignorecommand = /opt/bj-license/bj-license-server fw-ignore -dir /var/lib/bj-license <ip> api
[sshd]
enabled = true
maxretry = 5
findtime = 10m
bantime = 1h