Руководство администратора
Как закрыть админки и внутренние сервисы, раздать доступ команде и не потратить на это больше пяти минут.
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:
location /wp-admin {
allow 203.0.113.10; # IP вашего шлюза
deny all;
# ... остальная конфигурация
}Проверьте: откройте /wp-admin в браузере без расширения. Постороннему доступ должен быть закрыт.
Что отдавать посторонним: 403 сообщает боту, что по этому адресу что-то есть, поэтому лучше 404. А в nginx есть ещё вариант получше — return 444: соединение закрывается без всякого ответа, бот не получает вообще ничего.
Шаг 3. Добавьте домен
Панель управления → Домены → Добавить.
Укажите название и домен. Шлюз можно не выбирать — будет использован шлюз по умолчанию (если шлюз у вас один, выбирать нечего). Если сайт доступен по обычному DNS и стандартному порту, больше ничего не нужно.
Шаг 4. Создайте токен
Быстрый способ: правая кнопка на домене → Создать токен.
Обязательно только название — оно показывается в расширении, чтобы человек понимал, к чему у него доступ. Лимиты опциональны: можно не задавать ничего, а можно ограничить время, трафик и число активаций. Токен из пяти символов готов.
Шаг 5. Раздайте доступ
Отправьте человеку две вещи:
- Ссылку на расширение в Chrome Web Store или Firefox Add-ons
- Пять символов токена
Он ставит расширение, вставляет токен — защищаемые вкладки перезагружаются автоматически, админка открывается. Регистрация не нужна.
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.