Конфигурация
Вы настраиваете всё через окружение. Файла конфигурации нет. Файл профиля — не конфигурация, а хранилище шифртекста (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 |
HTTP-сервер
Заголовок раздела «HTTP-сервер»| Переменная | По умолчанию | Назначение |
|---|---|---|
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 |
Кратчайший секрет, который сервер вырезает из ответа агенту. Аудит и файлы журнала вырезают секреты любой длины, безусловно |
Список разрешённых хостов и TLS
Заголовок раздела «Список разрешённых хостов и TLS»| Переменная | По умолчанию | Назначение |
|---|---|---|
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 адресу.