LemonSees: SOC по SSH без агентов на 3-10 серверах
LemonSees заходит на Linux-серверы по SSH и показывает атаки, изменения системных файлов и проверки настроек, ничего не ставя на серверы. Разобрал код репозитория: что он реально собирает, чего не умеет и как ограничить главный риск, общий ключ и токен ко всем серверам.
Сделаю под ключ: разберу задачу, назову срок и цену. Чтобы начать, напишите в Telegram одной фразой.
Безопасно подключить мониторинг серверов по SSHАгент на каждый VPS нужен не всем
У типичного малого бизнеса три-десять машин: сайт, CRM, 1С, пара ботов. Wazuh для такого парка тяжеловат: в моём разборе Wazuh описан отдельный сервер с памятью от 8 до 16 ГБ, агент на каждой машине и настройка правил.
LemonSees описан в посте GitHub Community от 22.10.2026 как SOC и GRC без агентов. Я нашёл репозиторий и прочитал код сервера. Проект я не запускал, ниже описание по исходникам.
Что я проверил в репозитории
Данные на 23.10.2026 из github.com/Altumptic/LemonSees. Владелец: организация Altumptic. Файл LICENSE содержит текст MIT. Репозиторий создан 23.07.2026, первый коммит в тот же день (тогда проект назывался SHOK), последний коммит и релиз v3.0.0 датированы 15.10.2026. Всего 11 коммитов, семь релизов, 24 звезды, 3 форка, репозиторий не архивный. К релизу приложены портативный .exe, AppImage и веб-сборка, подписи файлов я не проверял.
Звёзд мало, коммитят в основном два аккаунта. Как оценивать такие проекты, я писал в статье про проверку популярности open source. Отправки ключей наружу в серверных файлах я не увидел, но это не аудит.
Как это работает на деле
Программа на Node.js держит одно SSH-соединение на сервер и каждые 5 секунд запускает один скрипт: чтение /proc, free, df, ss и команды docker. Замеров нагрузки на сервер нет. Целевые серверы должны быть Linux, Windows-серверы (в том числе под 1С) проект не поддерживает.
SIEM. Центрального хранилища логов нет. Раз в 5 минут программа читает журнал sshd или auth.log и заводит инцидент, если неудачных входов за сутки больше 300. Страница угроз показывает адреса и логины атакующих за 48 часов. Журналы веб-сервера, CRM и базы не собираются, разбирается только SSH.
FIM. Для 19 зашитых в код файлов (passwd, shadow, sudoers, sshd_config, authorized_keys пользователя root) и трёх каталогов (cron.d, sudoers.d, systemd/system) команда sha256sum считает SHA-256, плюс права и владелец. Первое сканирование становится эталоном, изменение создаёт инцидент. Своих путей, например каталога сайта, я в коде не нашёл. Проверку запускает страница интерфейса, серверного расписания я не видел, автообновление страниц по умолчанию выключено.
MITRE ATT&CK. Каталог из 18 техник. Инцидент попадает в технику по словам в заголовке (например «брутфорс» даёт T1110). Правил обнаружения атак, как в Wazuh, здесь нет.
GRC. Это 15 автоматических проверок (вход root по SSH, пароли, firewall, fail2ban, auditd, обновления, время) с пометками CIS и NIST и 8 ручных пунктов, которые вы отмечаете сами: резервные копии, MFA, план реагирования. Сертификации соответствия это не даёт. Журнал действий README называет неизменяемым, а в коде это файл audit.jsonl, который чистится через 90 дней.
Главный риск: ключ ко всем серверам в одном месте
Интерфейс закрыт одним общим токеном. Без токена веб-режим отказывается слушать сеть, сессия живёт 12 часов, разрешено 10 попыток входа за 10 минут с адреса. Отдельных пользователей и второго фактора нет. Через интерфейс можно открыть терминал на любом сервере, останавливать и удалять контейнеры docker, выполнять запросы к базам. Кто получил токен, получил права SSH-пользователя везде.
Пароли и фразы-пароли ключей лежат в config/hosts.json открытым текстом (в портативной версии это папка LemonSees-data рядом с .exe). Ключ хранится как путь к файлу. Защищать нужно машину, на которой работает программа.
Ограничения, которые я бы поставил:
- отдельный пользователь на сервере и отдельный ключ только для этого инструмента;
- в authorized_keys параметр from с адресом машины мониторинга;
- без группы docker (она близка к root) и без полного sudo;
- для чтения auth.log обычно хватает групп adm и systemd-journal, проверьте на своей системе.
Без sudo файлы shadow, sudoers и authorized_keys root недоступны, в отчёте по ним будет «?» вместо хеша, и изменение не заметно. Скрипт проверяет sudo -n true и затем читает хеши через sudo. Узкое правило sudo только на true и sha256sum по коду должно подойти, я его не пробовал, проверьте на пилоте.
LemonSees или Wazuh
У Wazuh агент, центральный сервер, база правил и оповещения на почту или в мессенджер. Он тяжелее и сложнее в настройке, зато собирает журналы приложений и срабатывает по правилам. LemonSees ставится за минуты и серверы не трогает, но видит мало: SSH-журнал, 19 файлов и 3 каталога, проверки настроек и метрики. Заявленные в README «секунды до результата» и «около 100 МБ» я не измерял.
Для сетевой картины есть Maltrail, для доступности сайтов Uptime Kuma.
Чего инструмент не умеет
Оповещения есть только внутри программы: список в окне и системные уведомления в настольной версии. На почту, в Telegram или по вебхуку в серверном коде я ничего не нашёл. Если в окно никто не смотрит, о взломе вы не узнаете. Геолокация атакующих адресов включена по умолчанию и отправляет эти адреса по обычному HTTP на ip-api.com, выключается в настройках. Журналы входов содержат адреса и логины сотрудников: если на серверах персональные данные, решите заранее, кто видит такой журнал.
Разбирать тревоги и реагировать должен человек: инструмент покажет, что файл изменился, но не кто и зачем.
Что можно сделать уже сейчас
Запустите LemonSees на отдельной машине, не на ноутбуке с почтой. Посмотрите демо, затем подключите один тестовый VPS ограниченным пользователем. Через пару дней сверьте отчёты с тем, что знаете о сервере. С ограничением доступов и ключей помогу в рамках услуги по кибербезопасности, общие принципы описаны в статье про безопасность удалённой команды.
Чек-лист перед подключением боевых серверов:
- Отдельный пользователь и отдельная пара ключей для инструмента.
- Вход по ключу только с адреса машины мониторинга (параметр from).
- Нет полного sudo и группы docker.
- Длинный случайный токен, TLS на входе, порт открыт только вашему адресу, cookie с флагом Secure.
- Диск с шифрованием, папка с данными доступна только владельцу, копия конфигурации лежит отдельно.
- Назначены человек и время, когда он смотрит инциденты: оповещений нет, регулярный просмотр их заменяет.
- Записан порядок отзыва: если машина утеряна, ключ убирается из authorized_keys на всех серверах.
Частые вопросы
Нужен ли root на целевых серверах?
По коду нет. По умолчанию подставляется root, но подключиться можно и обычным пользователем. Часть файлов и журналов будет недоступна, проверки покажут «нет данных».
Можно ли заменить им Wazuh?
Для наблюдения за SSH, базовых настроек и нескольких файлов, возможно. Для журналов приложений, правил и оповещений нет.
Доступен ли он из России?
Релизы лежат на GitHub, доступность из России уточняйте.
Коротко о главном
LemonSees под лицензией MIT быстро показывает SSH-атаки, настройки и изменения нескольких системных файлов без установки на серверы. Взамен все доступы собираются в одной программе с одним токеном, а оповещений нет.
Если хотите, чтобы я подключил такой инструмент на одном тестовом сервере и описал, какие права ему выдать, напишите мне в Telegram кодовое слово «БЕЗАГЕНТА».
Что я делаю для бизнеса
Напишите одной фразой, что нужно. Отвечу, что подойдёт, сколько займёт и сколько стоит. Сообщение уже подготовлено.
- Боты в Telegram, MAX, VK
- Автоматизация процессов и CRM
- Аналитика и дашборды
- Сайты и лендинги под ключ
Разборы, кейсы и практика — без воды. Выходит регулярно, читать 3–5 минут.


