Перейти к содержимому

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

Вы настраиваете всё через окружение. Файла конфигурации нет. Файл профиля — не конфигурация, а хранилище шифртекста (ADR-0009).

Значение неверного формата останавливает старт сообщением, которое называет переменную и ожидаемый формат (DR-8). Старое имя переменной из нотации до WINRIG_* останавливает старт и называет новое имя (ADR-0010).

Переменная По умолчанию Назначение
WINRIG_AUTH_TOKEN — Общий секрет для пути по заголовкам; запрос обязан предъявить его как Authorization: Bearer <token> или X-MCP-Token. Не обязателен, когда используется токен профиля
WINRIG_PROFILE — Имя профиля; опускается, когда профиль ровно один, обязательно при нескольких
WINRIG_TOKEN — Токен профиля, напечатанный setup; обязателен в stdio-режиме и для пути профиля в HTTP
Переменная По умолчанию Назначение
WINRIG_PROFILE_DIR каталог конфигурации ОС Переопределяет каталог профилей (~/.config/winrig на Linux)
WINRIG_STATE_DIR каталог состояния ОС Переопределяет корень каталога состояния; winrig сам добавляет имя профиля, поэтому блокировки и журналы по умолчанию ложатся в <WINRIG_STATE_DIR>/<профиль>. Указывайте корень, а не каталог самого профиля, иначе блокировка уедет на уровень в сторону от того места, где её ждёт конфигурация клиента
WINRIG_LOG_DIR каталог состояния профиля Каталог для winrig.log и winrig-audit.log. Сервер создаёт каталог 0700, а файлы 0600
Переменная По умолчанию Назначение
WINRIG_BIND_HOST 127.0.0.1 Адрес, который слушает HTTP-сервер
WINRIG_PORT 8005 Порт, который слушает HTTP-сервер
Переменная По умолчанию Назначение
WINRIG_PASSWORD_TTL_SECONDS 3600 Сколько живёт закэшированный пароль AD без использования; по истечении пароль стирается, а сессии пользователя закрываются. 0 отключает истечение. На пути по заголовкам кэш не открывает сессию: connect требует X-AD-Password в каждом запросе. В режиме профиля повторный ввод TTL не вызывает никогда
WINRIG_LOCKOUT_ATTEMPTS 3 Число неудачных попыток пароля AD, после которого сервер не предъявляет пароль до конца окна блокировки
WINRIG_LOCKOUT_WINDOW_SECONDS 1800 Сколько секунд сервер не повторяет отвергнутый пароль
Переменная По умолчанию Назначение
WINRIG_LOG_LEVEL INFO Уровень журнала сервера (DEBUG, INFO, WARNING, ERROR, CRITICAL). Уровень не влияет на аудит, аудит сервер пишет всегда
WINRIG_LOG_MAX_BYTES 10485760 Размер, при котором журнал ротируется
WINRIG_LOG_BACKUP_COUNT 5 Сколько ротированных файлов хранится на журнал
WINRIG_AUDIT_MAX_OUTPUT_CHARS 2000 Сколько символов stdout/stderr на вызов сервер сохраняет в аудите
WINRIG_AUDIT_LOG_BODY 1 Значение 0, false, no или off пишет только метаданные вызова: ни текста команды, ни вывода
Переменная По умолчанию Назначение
WINRIG_CONFIRM_TIMEOUT_SECONDS 300 Сколько модифицирующий инструмент ждёт ответа подтверждения, прежде чем отказать (fail-closed)
WINRIG_CONFIRM_FALLBACK refuse Что делает модифицирующий инструмент, когда клиент не объявил канал elicitation. refuse — fail-closed. proceed выполняет операцию и помечает запуск в аудите. Отказ пользователя, отмена, тайм-аут и ошибка транспорта никогда не обходятся (TR-SEC-11)
WINRIG_SECRET_REDACT_MIN_LENGTH 4 Кратчайший секрет, который сервер вырезает из ответа агенту. Аудит и файлы журнала вырезают секреты любой длины, безусловно
Переменная По умолчанию Назначение
WINRIG_ALLOWED_HOSTS (пусто) Список разрешённых хостов через запятую. Пустое значение разрешает только loopback-литералы: localhost, 127.0.0.0/8, ::1; сервер не разрешает имена через DNS. Отдельный элемент * разрешает любой хост. Остальные записи — точное имя хоста или IP (без учёта регистра) или суффикс, если запись начинается с .. Неверный элемент (например *.corp.example) отказывает старту. Хост с портом, путём или @ в connect сервер отвергает при любом списке. setup --allowed-hosts пишет значение в запись клиента
WINRIG_ALLOW_INSECURE_TLS false Принимает ли сервер verify_cert=false. По умолчанию сервер отвергает такой вызов до любой сетевой активности; true разрешает самоподписанные сертификаты
Переменная По умолчанию Назначение
WINRIG_ALLOW_FILE_WRITE false Существует ли инструмент write_file. Пока значение false, сервер удаляет инструмент из роутера: не объявляет его и не вызывает
WINRIG_MAX_WRITE_BYTES 65536 Наибольшее содержимое, которое принимает write_file и загружаемый скрипт run_script, в байтах. Сервер отвергает его до сетевой активности. Значение не может быть меньше одного куска в 1536 байт. Инструмент записи также отвергает путь настолько длинный, что его команды не влезут в командную строку WinRS примерно на 8191 символ. Предел — около 530 символов для UTF-8 и около 470 символов для остальных кодировок, для пути без символа кавычки
WINRIG_WRITE_ALLOW_PATHS (пусто) Список разрешённых оператором путей записи через запятую. Элемент снимает отказ по защищённому пути для write_file, delete_file, copy_file (цель), move_file (цель и источник), rename_file (путь и назначение) и create_directory. Сравнение — префикс на границе компонента пути по нормализованному пути без учёта регистра, и оно проверяет оба разрешения пути. Системный каталог, корень тома и корень общего ресурса допустимы как элементы; тогда подтверждение предупреждает об этом классе. Элемент — абсолютный каталог диска или \\server\share, без шаблона, компонента 8.3 и ... Файловой операции нужен строгий потомок; сам себя покрывает только корень тома или ресурса. Компонент 8.3 и символическая ссылка или junction остаются отвергнутыми, а любая другая точка повторной обработки остаётся доступной для записи. delete_directory список не читает (ADR-0017 §7–13)
WINRIG_ALLOW_COMMAND_EXEC false Существует ли инструмент run_command. Пока значение false, сервер удаляет инструмент из роутера: не объявляет его и не вызывает
WINRIG_ALLOW_SCRIPT_EXEC false Существует ли инструмент run_script. Пока значение false, сервер удаляет инструмент из роутера: не объявляет его и не вызывает
WINRIG_ALLOW_FILE_OPS false Существуют ли инструменты copy_file, move_file, rename_file и create_directory. Пока значение false, сервер удаляет инструменты из роутера: не объявляет их и не вызывает (ADR-0017 §14)
WINRIG_ALLOW_FILE_DOWNLOAD false Существует ли инструмент download_file. Пока значение false, сервер удаляет инструмент из роутера: не объявляет его и не вызывает (ADR-0017 §24)
WINRIG_ALLOW_FILE_UPLOAD false Существует ли инструмент upload_file. Пока значение false, сервер удаляет инструмент из роутера: не объявляет его и не вызывает (ADR-0017 §26)
WINRIG_TRANSFER_DIR подкаталог transfer каталога состояния Локальный каталог передачи. Значение должно быть абсолютным путём; относительное значение отказывает старту. Каталог и его файлы используют приватные режимы (0700/0600). В HTTP-режиме сервер добавляет по одному подкаталогу на пользователя (DR-3)
WINRIG_MAX_TRANSFER_BYTES 268435456 Наибольший файл, который принимают download_file и upload_file, в байтах (256 МиБ). Сервер отвергает более крупный файл до чтения (ADR-0017 §25)
WINRIG_ALLOWED_COMMANDS (пусто) Список префиксов команд через запятую. Пустое значение допускает любую команду. Непустое значение допускает только команду, которая начинается с одного из элементов, сравнение без учёта регистра после обрезки пробелов. Префикс не образует границу: ведущие &, ., powershell -c, псевдоним и скрипт, запущенный по пути, обходят его. Неверный элемент отказывает запуску
Переменная По умолчанию Назначение
WINRIG_SFTP_CRED_TTL_SECONDS 3600 Зарезервировано под инструменты SFTP (пока не портированы). Сервер разбирает и проверяет значение при старте

Прочитайте раздел безопасность транспорта прежде, чем привязываться к не-loopback адресу.