Документация Руководство администратора

Руководство администратора

Как закрыть админки и внутренние сервисы, раздать доступ команде и не потратить на это больше пяти минут.

Для администраторов и владельцев воркспейса ~18 мин

1Как это устроено

Три элемента, которые нужно понять один раз.

Шлюз — сервер, через который команда попадает на защищаемые сайты. У него постоянный IP, который вы добавляете в whitelist на своём сервере. Шлюз получает настройки из панели управления автоматически, заходить на него не нужно никогда.

Домен — сайт, который вы защищаете. Вы указываете, через какой шлюз он доступен, и при необходимости — на какой IP и порт его отправлять.

Токен — пять символов, которые вы даёте человеку. Он вставляет их в расширение браузера и получает доступ к тем доменам, которые вы разрешили, на тех условиях, которые вы задали.

О названиях. Системе всё равно, как называются домены, токены и проекты — названия нужны только вам. Но название токена и доменов видит конечный пользователь в расширении, поэтому пишите так, чтобы человек понял без ваших пояснений: «Админка сайта клиента», а не «wp2».

Поток выглядит так:

Браузер с расширением ──► Шлюз ──► Ваш сервер
        │
        └── всё остальное (YouTube, почта) идёт напрямую, минуя шлюз

Что важно понимать сразу:

  • Маршрутизация идёт по домену. Через шлюз идут только защищаемые домены из токена. Остальной трафик браузера шлюза не касается.
  • Шлюз не расшифровывает трафик. Используется маршрутизация по SNI, TLS остаётся сквозным между браузером и вашим сервером.
  • Настройки применяются на лету. Изменили лимит или добавили домен — это доезжает до шлюзов за секунды, без перезапусков и без обрыва текущих соединений.

2Быстрый старт за 5 минут

Сценарий: у вас есть сайт на WordPress, вы хотите закрыть /wp-admin от всего интернета и дать доступ двум людям.

Шаг 1. Создайте шлюз

Панель управления → ШлюзыСоздать.

Выберите тип:

  • Общий шлюз — доступен сразу, без дополнительной платы. Подходит для большинства задач.
  • Выделенный шлюз — разворачивается на аккаунте L7, пользуетесь им только вы. Списывается $0.5 в сутки с баланса: первое списание при активации, дальше каждые 24 часа.
  • Self-hosted — на вашем сервере. Дополнительной платы нет, вы платите только своему хостеру и только за те часы, что сервер существует. Два способа:
    • Автодеплой: введите API-ключ облачного провайдера — Hetzner, Vultr, DigitalOcean, Akamai или UpCloud, — выберите локацию, нажмите Deploy. Через минуту статус станет зелёным. В консоль сервера заходить не нужно.
    • Своя машина: выполните команду установки из диалога создания шлюза. Бинарник 8 МБ без зависимостей, конфиги не нужны.

IP шлюза понадобится на следующем шаге — его можно скопировать из карточки шлюза в панели управления.

Шаг 2. Закройте сайт

На своём сервере разрешите доступ к админке только с IP шлюза.

Пример для nginx:

nginx
location /wp-admin {
    allow 203.0.113.10;   # IP вашего шлюза
    deny all;
    # ... остальная конфигурация
}

Проверьте: откройте /wp-admin в браузере без расширения. Постороннему доступ должен быть закрыт.

Что отдавать посторонним: 403 сообщает боту, что по этому адресу что-то есть, поэтому лучше 404. А в nginx есть ещё вариант получше — return 444: соединение закрывается без всякого ответа, бот не получает вообще ничего.

Шаг 3. Добавьте домен

Панель управления → ДоменыДобавить.

Укажите название и домен. Шлюз можно не выбирать — будет использован шлюз по умолчанию (если шлюз у вас один, выбирать нечего). Если сайт доступен по обычному DNS и стандартному порту, больше ничего не нужно.

Шаг 4. Создайте токен

Быстрый способ: правая кнопка на домене → Создать токен.

Обязательно только название — оно показывается в расширении, чтобы человек понимал, к чему у него доступ. Лимиты опциональны: можно не задавать ничего, а можно ограничить время, трафик и число активаций. Токен из пяти символов готов.

Шаг 5. Раздайте доступ

Отправьте человеку две вещи:

  1. Ссылку на расширение в Chrome Web Store или Firefox Add-ons
  2. Пять символов токена

Он ставит расширение, вставляет токен — защищаемые вкладки перезагружаются автоматически, админка открывается. Регистрация не нужна.


3Домены

Базовая настройка

Минимум — название и домен. Шлюз подставится по умолчанию, остальное — по необходимости.

Быстрый способ заполнения: скопируйте адрес страницы из браузера и нажмите Вставить из буфера. Название (домен без зоны), сам домен и путь разложатся по своим полям автоматически.

Переопределение IP и порта

Вы можете указать, на какой адрес шлюз должен отправлять запросы к этому домену, независимо от того, что написано в публичном DNS. У шлюза собственный DNS-резолвер, поэтому публичная запись вообще не обязательна.

Это открывает три сценария:

Сервис без DNS-записи. Домена нет в публичном DNS вообще — для всех, кроме вашей команды, он не существует. Можно использовать даже несуществующие зоны вроде grafana.internal или billing.local: публичный DNS такое не резолвит в принципе, а шлюз резолвит по вашим настройкам.

Нестандартный порт. Внутренний сервис висит на 8443 или 3000 — укажите порт (адрес при этом можно не переопределять). Наружу порт не открыт, команда обращается по обычному https://tool.company.com.

Другой хост вместо IP. Вместо IP можно указать имя другого хоста — шлюз возьмёт его адрес из DNS. Удобно, когда адрес бэкенда меняется, а имя остаётся.

Приватный IP или localhost. Если шлюз стоит на той же машине или в той же сети, что и сервис, можно указать приватный адрес или 127.0.0.1. Незашифрованный участок в этом случае не покидает машину.

Область действия домена

Переключатель рядом с полем домена задаёт, на что распространяется правило:

ЗначокОбласть
Пустой щитТолько точное совпадение — указанный домен или поддомен
Щит с «+»Домен и все его поддомены
Щит с «*»Только поддомены указанного домена, без самого домена

Домены проходят ленивую модерацию: автоматическая проверка на присутствие в серых списках. Конструкции уровня *.com не поддерживаются.

Настройки приватности домена

НастройкаПо умолчаниюЧто делает
Показывать в спискеВключеноПоказывать ли домен в расширении у пользователя
Внутренний ресурсВыключеноМетка для наглядности: домен отмечается отдельной иконкой
Только приватная сессияВыключеноТокен с таким доменом принудительно работает в приватном режиме
Только защищённый токенВыключеноТокен с таким доменом обязан иметь пароль

Показывать в списке стоит выключать для технических доменов, куда пользователь не заходит напрямую через адресную строку (API, CDN, вспомогательные сервисы) — список в расширении останется чистым и понятным. Доступ при этом работает как обычно.

Только приватная сессия и Только защищённый токен — это политики: достаточно пометить домен один раз, и все токены, куда он попадёт, будут подчиняться требованию автоматически. При создании токена с таким доменом панель управления потребует задать пароль (или включит приватный режим) — забыть об этом невозможно.

Если домен добавляют в существующий токен без пароля, панель управления не даст этого сделать. Проще всего дублировать токен: все настройки перенесутся, останется задать пароль и добавить нужный домен.

Если политику включили у домена, который уже входит в токены без пароля, эти токены не ломаются — домен в них становится выключенным. Доступа к нему нет, но при редактировании токена он виден как отключённый, а при попытке включить панель управления объяснит, что нужно либо создать защищённый токен, либо изменить политику домена.

Менять политики домена могут только владелец воркспейса и администратор. Менеджеру это недоступно.

4Проекты

Проект — именованный список доменов. Вместо того чтобы добавлять в каждый токен по пятнадцать доменов руками, вы добавляете один проект.

Главное свойство: список динамический. Добавили новый домен в проект — он автоматически появился у всех токенов, где этот проект есть. Ничего перевыпускать и никому ничего пересылать не нужно.

Выключение отдельных доменов в токене

Внутри токена любой домен или целый проект можно выключить, не удаляя. Выключение действует только на этот токен и не влияет на остальных.

Зачем это нужно:

  • Постепенный онбординг. Новичку добавили два проекта, но выключили биллинг, продакшен и консоль БД. Через неделю включили в один клик — искать и добавлять недостающие домены не пришлось.
  • Временная приостановка. Подрядчик закончил этап — выключили проект целиком. Вернулся — включили.
При добавлении домена в проект помните: он станет доступен всем активным токенам этого проекта.

Если домен нужен только одному человеку, не добавляйте его в проект. В самом токене нажмите Добавить домен и выберите нужный — он попадёт в токен самостоятельной единицей, даже если этот домен состоит в каком-то проекте. На остальные токены это не повлияет.


5Шлюзы

Типы

ТипПлатаКогда использовать
ОбщийБольшинство задач, быстрый старт
Выделенный$0.5/сутки с балансаНужен собственный постоянный IP, изоляция от других клиентов
Self-hostedДополнительной платы нет, хостеру — почасовоТрафик не должен проходить через инфраструктуру L7

Выделенные шлюзы и посуточная оплата

Списание $0.5 происходит при активации и далее каждые 24 часа.

Остановка шлюза прекращает приём подключений, но не списания: VPS и IP остаются закреплёнными за вами, оплата идёт до удаления шлюза. Останавливайте, когда нужно временно перекрыть доступ, а не сэкономить.

Удаление шлюза прекращает списания.

Если шлюз нужен эпизодически, дешевле удалять его после работы и разворачивать заново — установка занимает около минуты. Учитывайте только, что при удалении теряется IP, а значит, whitelist на ваших серверах придётся обновить.

Self-hosted

Два пути установки:

Автодеплой через API провайдера. Вводите API-ключ, выбираете локацию, нажимаете Deploy. Сервер создаётся и настраивается автоматически, примерно за минуту. Доступ по SSH не требуется.

Поддерживаются пять провайдеров: Hetzner, Vultr, DigitalOcean, Akamai (Linode) и UpCloud. Какой именно ключ нужен и где он выдаётся, панель управления подскажет при выборе провайдера.

Именно эти пять — потому что у них дешёвые серверы с большим включённым трафиком. Шлюзу не нужны ни ядра, ни диск, ни память: подойдёт самый младший тариф, а включённый трафик — единственное, на что стоит смотреть при выборе. AWS и GCP не поддерживаются: за те же деньги вы получите заметно меньше трафика.

Заводите отдельный ключ под L7 и с минимальными правами: он нужен только на создание и удаление сервера. Такой ключ можно отозвать, не задевая остальную инфраструктуру.

Оплата почасовая. У всех пяти провайдеров сервер тарифицируется по часам, а не по месяцам. Значит, шлюз не обязан существовать постоянно: подняли под конкретную задачу — аудит, работы подрядчика, разбор аварии — и удалили, заплатив за несколько часов. Развёртывание занимает около минуты, так что поднимать заново не жалко.

Два следствия, о которых стоит помнить:

  • Счёт у провайдера останавливается, когда удалён сервер. Убедитесь, что сервер действительно исчез из панели провайдера, а не только шлюз из панели L7.
  • Новый сервер получит новый IP. Whitelist на ваших серверах придётся обновить — это единственное, что мешает поднимать и удалять шлюзы совсем бездумно.

Установка на свою машину. Команда из диалога создания шлюза. Требования: Linux, свободный порт. Бинарник 8 МБ, зависимостей нет, конфигурационных файлов нет — все настройки приходят из панели управления по защищённому каналу.

Если 443 занят, укажите другой порт при создании шлюза — команда установки подставит его сама.

Автономность

Шлюзы хранят состояние на диске и продолжают работать при потере связи с панелью управления. Изменения настроек доезжают инкрементально, как только связь восстановится.

Учитывайте при отзыве доступа: если шлюз в момент отзыва недоступен для панели управления, изменение применится после восстановления связи. В обычных условиях это занимает секунды.

6Токены

Что такое токен

Пять символов, которые заменяют собой файл конфигурации. Их можно продиктовать по телефону, отправить сообщением, написать на бумаге. Токен многоразовый: один токен может обслуживать нескольких человек, если вы разрешили несколько активаций.

Токен — это приглашение, а не пароль. Личностью в системе является устройство: при активации расширение регистрируется и получает собственный идентификатор и ключ. Поэтому вы можете отозвать доступ у одного человека, не трогая остальных.

Лимиты

У каждого токена свои ограничения, независимые от других токенов.

Время. Выберите пресет или введите значение вручную:

ФорматЗначение
30m, 3H, 4D, 2W, 1MДлительность: минуты, часы, дни, недели, месяцы
today, tomorrowДо конца сегодняшнего / завтрашнего дня
eow, eom, eoyДо конца недели / месяца / года
Календарная датаТочная дата и время

Отсчёт времени — на ваш выбор:

  • С момента создания — токен живёт заданный срок независимо от использования.
  • С первой активации — таймер запускается, когда человек впервые вставил токен. Создали в пятницу, подрядчик активировал в понедельник и получил свои три часа.

Дополнительно можно задать окно активации — период «от» и «до», в течение которого токен вообще можно активировать. Не активировали в этом окне — токен сгорел, неиспользованные токены не копятся.

Окно активации и срок жизни токена независимы. Если окно составляет 3 дня, а срок жизни — месяц, то человек, активировавший токен на третий день, получит полный месяц доступа с момента активации.

Трафик. Жёсткий лимит на токен. При исчерпании доступ прекращается. Трафик можно добавить в любой момент — увеличение применится сразу, текущие соединения не оборвутся: если человек в этот момент качает файл, загрузка не прервётся.

Быстрый способ: правая кнопка на токене → готовые значения вроде «+100 МБ». Работает и для нескольких выделенных токенов сразу. Так же добавляется и время.

Активации. Сколько устройств суммарно может воспользоваться токеном. Одна активация — токен для одного человека. Три — например, для группы аудиторов.

Когда лимит исчерпан, новое устройство подключить нельзя, даже с правильным токеном. Лимит можно изменить в любой момент: увеличение сразу открывает подключение новых устройств, уменьшение действует только на будущие подключения — уже работающих людей оно не отключает, даже если их больше нового лимита.

Защита токена паролем

В настройках токена можно задать пароль. У таких токенов первый символ заглавный — по написанию видно, что потребуется пароль. Скачать конфигурацию по токену можно, но расшифровать её без пароля нельзя.

Токены используют алфавит base58, где регистр значим: Ifyu58 и ifyu58 — разные токены. При диктовке проговаривайте регистр.

Человек вставляет токен, и расширение сразу запрашивает пароль. Передавайте пароль отдельно от токена — иначе защита теряет смысл: например, токен в мессенджере, пароль голосом или по другому каналу.

Приватный режим в расширении

Пользователь может включить в расширении приватный режим. Тогда при закрытии браузера токены и их конфигурации забываются — на чужой или общей машине не останется ничего.

При повторном подключении устройство сохраняет свой прежний идентификатор, поэтому это не считается новой активацией и не расходует лимит токена.

Работа со списками

Таблицы ведут себя как привычный файловый менеджер, а не как веб-форма.

Выделение: рамкой (лассо), с Ctrl — по одному, с Shift — диапазоном.

Правая кнопка вызывает контекстное меню для выделенного:

  • создать токен из выделенных доменов
  • сменить шлюз или проект у нескольких объектов сразу
  • продлить срок, добавить трафик готовыми значениями
  • включить или выключить
  • дублировать

Клавиатура:

КлавишаДействие
СтрелкиНавигация по таблице
Enter (или двойной клик)Редактировать элемент
Ctrl+Enter (или Ctrl+клик)Дублировать элемент
ПробелСкопировать токен в буфер (в списке токенов)

Формат дат. Правая кнопка на заголовке столбца с датой → Абсолютное / Относительное время. Абсолютное показывается в вашем часовом поясе, относительное — «сколько прошло». Переключение действует только на тот столбец, где вы его вызвали.


7Устройства

Каждая активация токена создаёт запись об устройстве с собственным идентификатором.

Что с этим можно делать:

  • Посмотреть, сколько устройств активировали токен и когда
  • Отозвать конкретное устройство — остальные продолжат работать с тем же токеном
  • Переименовать для удобства («ноутбук подрядчика», «рабочая машина»)

Отзыв применяется в течение секунд. Человек с отозванным устройством теряет доступ немедленно — перезапуск браузера не требуется и не поможет.


8Команда и роли

Пригласить коллегу в воркспейс можно с одной из четырёх ролей.

РольБиллингДомены и шлюзыТокены и проектыПросмотр
Owner
Admin
Manager
Viewer

Owner — владелец воркспейса, может всё, включая оплату и тарифы. Владелец один; участников с остальными ролями может быть сколько угодно.

Admin — вся конфигурация, кроме биллинга. Настраивает домены, шлюзы и политики безопасности.

Manager — операционная работа: создаёт и выдаёт токены, управляет проектами, отзывает устройства. Домены и шлюзы недоступны: их настройка требует согласованных действий на ваших серверах (whitelist IP шлюза), поэтому остаётся за старшими ролями.

Viewer — только просмотр. Подходит для отчётности и наблюдения без права что-либо изменить.

Разделение здесь не формальное: менеджер может закрывать ежедневную рутину с доступами, но не может изменить периметр — добавить домен, сменить шлюз или ослабить политику безопасности.

Дополнительные участники оплачиваются с баланса.

Способы входа

К одному аккаунту можно привязать несколько способов входа и пользоваться любым:

  • email и пароль
  • email и одноразовая ссылка (magic link)
  • Google, GitHub, Microsoft
  • Telegram — по ссылке на бота L7 AG или по QR-коду с телефона

Привязка нескольких способов защищает от потери доступа: если один провайдер недоступен, вы войдёте через другой.

Новый способ входа привязывается только изнутри уже авторизованной сессии — в настройках профиля. Войти в чужой аккаунт через провайдер с совпадающим адресом почты нельзя.

Подписка принадлежит воркспейсу, а не конкретному пользователю: смена состава команды на неё не влияет.


9Сценарии

Доступ подрядчику на время работ

Создайте токен: нужные домены, 1 активация, время 4D с отсчётом от первой активации, окно активации — неделя. Отдайте пять символов. Через четыре дня после начала работы доступ исчезнет сам. Удалять ничего не нужно.

Команда аудиторов

Токен на 3 активации, время eow, ограничение трафика. Трое проверяющих получают доступ до конца недели, каждый со своего устройства, каждого можно отозвать отдельно.

Внутренний сервис без публичного DNS

Не создавайте DNS-запись вообще — подойдёт даже имя в несуществующей зоне, например grafana.internal. Добавьте домен, укажите адрес и при необходимости порт. Для интернета такого домена не существует, для команды с токеном он открывается.

Проверка миграции сайта

Укажите в настройках домена IP нового сервера. Команда с расширением видит новый сайт по рабочему адресу, посетители — старый. Переключение расширения показывает то одну, то другую версию — можно сравнивать сколько угодно раз. Когда всё проверено, меняете публичный DNS.

Постепенный онбординг

Добавьте новичку проекты целиком, выключите то, что ему пока не нужно. По мере адаптации включайте обратно — по одному клику, без поиска доменов и без нового токена.


10Решение проблем

Сайт не открывается, хотя токен введён. Проверьте, что домен есть в токене и не выключен, что срок и лимит трафика не исчерпаны, и что шлюз в статусе «активен». Проверьте, что IP шлюза действительно разрешён на вашем сервере.

Открывается старая версия сайта после смены настроек. Настройки применяются за секунды, но страница может быть в кэше браузера. Обновите с очисткой кэша.

Расширение показывает ошибку активации. Проверьте лимит активаций токена — возможно, он исчерпан. Проверьте, не истекло ли окно активации.

Внутренний сервис не отвечает через шлюз. Убедитесь, что шлюз может достучаться до сервиса: если сервис на приватном IP или localhost, шлюз должен стоять в той же сети или на той же машине.

Шлюз не поднимается через автодеплой. Проверьте, что API-ключ провайдера имеет права на создание серверов и что на аккаунте провайдера нет ограничений (лимит серверов, неоплаченный счёт).


11Ограничения

Честный список того, чего система не делает — чтобы не тратить ваше время на проверку.

  • Только HTTP/HTTPS в браузере. SSH, базы данных, доступ из CLI и скриптов пока не поддерживаются. Клиент для TCP-over-HTTPS в планах.
  • Шлюз должен быть доступен извне. Расширение подключается к шлюзу по его адресу и порту, поэтому шлюз за NAT без проброса портов работать не будет.
  • Один домен — один маршрут одновременно. В рамках одного браузера домен идёт либо через шлюз, либо напрямую. Чтобы сравнить две версии сайта одновременно, используйте два браузера.
  • Браузеры: Chrome, Firefox и всё, что на них основано — Edge, Brave, Vivaldi, Opera, Arc, Zen и другие. Не поддерживается Safari.
  • Мобильные: стандартные мобильные браузеры расширений не поддерживают, поэтому там не работает. Работает в мобильных браузерах с поддержкой расширений — например, Firefox для Android и Kiwi.