Темная сторона автономного сервера

30.03.26

Администрирование - Сервера

Разбираем автономный сервер с непривычной стороны – через призму безопасности и реальных рисков его использования. Показываем, как можно выполнять выгрузку базы и изменять конфигурацию без следов в журнале регистрации, а также объясняем механизм раскрытия паролей подключения к СУБД. Отдельно рассматриваем, почему эти сценарии становятся возможны и какие ошибки в настройке инфраструктуры к этому приводят. В завершение рассказываем, какие меры защиты помогают предотвратить подобные ситуации и снизить риски.

В этой статье я расскажу об автономном сервере – коротко или как получится. Расскажу о трех так называемых «темных сторонах» автономного сервера – о том, о чем обычно не думают. И немного поговорим о защите.

 

Что такое автономный сервер

Автономный сервер – это специальное серверное приложение, которое предназначено для обеспечения работы с информационной базой управляемого приложения любого клиентского приложения и Конфигуратора.

Это определение с сайта ИТС. Оно за время развития автономного сервера несколько раз менялось. Потому что впервые он появился в версии 8.3.14, сначала почти ничего не умел, но развивается вместе с платформой и сейчас умеет очень многое.

Изначально автономный сервер, как мне кажется, придумали для компаний, которым уже сложно работать с файловой базой, но до полноценной серверной они еще не доросли. И фирма 1С дала им возможность запускать управляемые приложения на так называемом автономном сервере.

 

 

Автономный сервер – это фактически две утилиты, два консольных приложения: ibsrv и ibcmd, где ibsrv – это сервер, а ibcmd – утилита управления автономным сервером. Дальше я их буду называть общим названием «автономный сервер». Просто имейте в виду, что для одних операций используется ibcmd, для других – ibsrv.

Консольная утилита – это первая особенность автономного сервера. Мы просто обращаемся к каталогу, куда установлен 1С. Если автономный сервер там тоже установлен – просто запускаем, и у нас волшебным образом появляется сервер.

Нам не нужно запускать службу, не нужно идти к администраторам, чтобы они регистрировали сервис, настраивали его – ничего этого не требуется. Автономный сервер прекрасно работает сам по себе.

 

Как конфигуратор, но лучше

 

Чем лично для меня хорош автономный сервер? Почему я его использую? Причем тут вообще конфигуратор? Все просто: я чаще использую автономный сервер в тех задачах, где раньше мне помогал конфигуратор – во всем, что связано с DevOps.

Во-первых, он быстрее*. Да, тут есть звездочка: официальных бенчмарков нет. Но по ощущениям он действительно работает быстрее.

Во-вторых, не требует графической оболочки. Все, кто сталкивался с DevOps в 1С, на это натыкались. Вы поднимаете CI/CD-контур, админы дают сервер, вы что-то на нем настраиваете – и у вас не работает конфигуратор.

Потому что конфигуратору нужна графическая оболочка. Несмотря на то, что это часть 1С – одной из самых мощных платформ для разработки бизнес-приложений – он работает только при наличии графики. Такая особенность, ее просто нужно учитывать.

Дальше – не требует лицензии. Тоже частая история: пытаются настроить выгрузку в исходный код, ничего не работает, потому что забыли пробросить лицензию.

Автономный сервер требует лицензию только для клиентских подключений – и то, если их больше трех. Все операции, о которых мы будем говорить, лицензии не требуют.

И, наверное, главная киллер-фича автономного сервера, которой лично мне удалось воспользоваться, напрямую не относится к теме статьи, но я не могу ее не упомянуть. Автономный сервер позволяет делать миграцию между различными базами на разных серверах баз данных без выгрузки в dt. То есть можно переносить данные напрямую, например, с MS SQL на PostgreSQL. И вам не нужно ждать, пока сначала выгрузится dt-файл на 100 ГБ, который еще может и не выгрузиться.

Это, на мой взгляд, самые сильные стороны автономного сервера. Конечно, не все, но самые важные.

 

Инструменты для работы: командная строка и OScript

 

Как работать с автономным сервером? Так как это консольные утилиты, с ними работают из командной строки. На сайте ИТС подробно описано, как с ним работать. Если внимательно прочитать, все будет понятно.

Также с автономным сервером можно работать с помощью OScript. OScript – это специальное приложение, на котором можно писать скрипты на 1С-подобном языке. Для OScript существуют библиотеки – заранее написанные модули и приложения, которые можно установить буквально одной командой.

Есть две библиотеки, с помощью которых можно работать с автономным сервером.

Первая – это Vanessa-Runner. Про нее наверняка многие слышали. Это такой супер-мега-гиперкомбайн для 1С-разработчика, с помощью которого можно делать практически все: выгружать конфигурации в исходный код, работать с dt, запускать тесты и так далее. Изначально он не умел работать с автономным сервером, но уже довольно давно – эту возможность добавили.

И есть еще одна библиотека для OScript – ibcmdrunner. С ее помощью можно создавать собственные скрипты, которые делают запуск команд автономного сервера более удобным. Дальше я покажу, как это выглядит.

 

Темная сторона: скрытые операции с базой

 

Теперь к основной теме статьи – к темной стороне.

Если автономный сервер такой хороший, зачем вообще говорить о темных сторонах? Затем, что об этом просто не думают.

Смотрите: автономный сервер – это отдельный сервер, который может работать с базой данных. И он ничего не знает о том, что к этой базе уже подключен настоящий сервер.

Ничего не мешает подключиться к рабочей базе – той самой, где прямо сейчас работают пользователи – через автономный сервер. Например, взять и сделать выгрузку базы в dt.

Все выполнится, все будет работать. Да, можно задуматься о консистентности данных, но на практике чаще всего все проходит нормально.

И представьте: мы можем снять dt с рабочей базы. С одной стороны, это даже удобно. Лично мне это нравится – можно быстро сделать копию базы, не обращаясь к администраторам, посмотреть данные и разобраться с проблемой. Но есть нюанс.

Так как это отдельный сервер, он ничего не знает о журнале регистрации основного сервера. И в журнале регистрации не будет ни одной записи о том, что кто-то выгрузил базу в dt – ни сейчас, ни вчера, ни вообще когда-либо.

И вот это уже выглядит не очень хорошо.

Как запустить выгрузку в dt?

ibcmd infobase dump
--dbms=mssqlserver
--database-server=dbServerName
--database-user=dbUser
--database-password=dbUserPassword
--database-name=docs-db
--data="d:_ss-data\dbName-data"
1cv8.dt

Перед вами командная строка: вызывается утилита ibcmd с ключами infobase dump. Дальше передаются параметры базы – тип сервера (MS SQL или PostgreSQL), адрес, логин, пароль, имя базы.

Здесь обычно возникает вопрос, где взять логин и пароль. К этому мы еще вернемся.

С помощью Vanessa-Runner все делается так же просто: вызывается консольное приложение runner, используется команда dump, передаются параметры или подключается конфигурационный файл – и все выполняется.

 

 

И мой любимый вариант – написать скрипт на OScript.

Сначала я пишу «Использовать ibcmdrunner» – это ключевой момент для подключения библиотеки. Дальше создается свой экземпляр класса «УправлениеИБ» – этот класс работает с автономным сервером, передает туда параметры. Далее выполняется команда «Выгрузить данные ИБ». Лично мне такой подход нравится больше всего.

Теперь вторая операция – загрузка конфигурации. Здесь темная сторона та же самая: мы можем с помощью автономного сервера загрузить конфигурацию или расширение в рабочую базу, минуя конфигуратор.

Если мы работаем через конфигуратор, то делаем две операции: сначала загружаем файл конфигурации, потом обновляем базу данных.

С автономным сервером – ровно то же самое. Первая команда – ibcmd infobase config load:

ibcmd infobase config load
--user=ibuser
--password=123
--dbms=mssqlserver
--database-server=dbServerName
--db-user=dbUser
--database-password=dbUserPassword
--database-name=docs-db
--data="D:\ss-data\cs-data"
--name=docsIB
1Cv8.cf

Вторая – ibcmd infobase config apply:

ibcmd infobase config apply
--user=ibuser
--password=123
--dbms=mssqlserver
--database-server=dbServerName
--db-user=dbUser
--database-password=dbUserPassword
--database-name=docs-db
--data="D:\ss-data\cs-data"
--name=docsIB
--force

С Vanessa-Runner тоже две команды, но там разделены сценарии для загрузки конфигурации и для загрузки расширений.

 

 

В случае скрипта на OScript все выглядит аналогично: создается класс «УправлениеИБ», затем выполняется загрузка конфигурации и ее обновление.

Я лично сталкивался с ситуацией, когда в рабочую базу загрузили расширение, и никто не понимал, как оно там появилось. В журнале регистрации не было ни одной записи. Удалось восстановить картину только благодаря системе мониторинга запросов – PerfExpert от компании Softpoint. Там мы увидели, что в определенный момент к серверу SQL было подключение с нехарактерного источника – не с сервера 1С.

 

Раскрытие паролей базы данных

 

Самое неприятное – это раскрытие паролей пользователей базы данных.

То, о чем я говорил раньше и о чем сейчас скажу – это не какая-то секретная информация. Все это есть на ИТС, в разделе про автономный сервер.

Разработчики сделали, по сути, хелпер – упрощение для тех, кто переходит с обычного сервера на автономный. Есть команда, в которую можно передать файл из каталога кластера 1С, где хранится описание кластера. И из этого файла можно получить пароли к базе данных.

 

 

Сам каталог выглядит обычным образом.

ibcmd server config import
--cluster-data="d:\1C srvinfo"
--name=basename
--out=d:\yml\basename.yml

Пароль там, конечно, хранится не в открытом виде – он зашифрован. Но дальше мы выполняем команду ibcmd server config import, передаем каталог с этим файлом, указываем, для какой базы нужны данные – и получаем результат либо в yml-файл, либо прямо в консоль.

Дальше начинается самое интересное.

 

 

Как 1С-разработчик, я могу зайти в рабочую базу, открыть универсальные инструменты – или любую обработку с файловым менеджером. Захожу на файловую систему сервера, нахожу каталог кластера, копирую нужный файл себе на компьютер. У меня локально развернут автономный сервер. Я выполняю эту команду – и получаю пароль без каких-либо сложностей.

На самом деле это не столько проблема инструмента, сколько неправильная настройка прод-контура. В 1С есть возможность разделить пользователей операционной системы: под одним запускается агент кластера, под другим – рабочие процессы сервера 1С.

Если бы такая настройка была (хотя я редко видел, чтобы ее использовали), то, так как весь код выполняется рабочим процессом, запустив файловый менеджер, я бы не смог получить эти настройки – потому что пользователю, под которым выполняется рабочий процесс, должен быть запрещен доступ к этому конфигурационному файлу. Скажу больше – так надо настраивать, но этого почему-то никто не делает.

 

Меры защиты

 

Что можно сделать для защиты от такого использования автономного сервера?

На самом деле, ключевая мера – одна. Не должно быть доступа в прод у посторонних людей. А программист – это, по сути, посторонний человек для прод-контура. Доступ в прод должен быть только у пользователей и, максимум, у одного администратора, который управляет системой. Если это правило соблюдается, то описанных ситуаций просто не возникает.

Вторая мера – защита на уровне сети. Доступ к SQL-серверу должен быть только с сервера 1С. Потому что автономный сервер, запущенный с любого компьютера, напрямую обращается к базе данных и выполняет все операции.

 

Вся эта информация находится в открытом доступе. Но, например, когда я впервые увидел историю с паролями, я в это не поверил, пока не убедился, что эти команды действительно работают.

По этим ссылкам можно найти документацию на ИТС, а также материалы по Vanessa-Runner, OScript и соответствующим библиотекам.

 

*************

Статья написана по итогам доклада (видео), прочитанного на конференции INFOSTART TECH EVENT.

Инфостарт Tech Event 2026

Инфостарт A&PM Event 2026

Вступайте в нашу телеграмм-группу Инфостарт

Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

См. также

Сервера Системный администратор Бесплатно (free)

За считанные месяцы цены на серверное железо выросли в разы, а бюджеты компаний – нет, поэтому ошибка при подборе оборудования для 1С теперь обходится особенно дорого. Разбираем, почему логика «возьмем самое дорогое и производительное» здесь не работает, какие особенности памяти, дисков и серверных конфигураций нужно учитывать и где действительно можно сэкономить – от свертки базы до использования десктопного компьютера. Показываем, как продавцы могут предлагать вместо подходящих компонентов более выгодные им аналоги или неликвид и почему советы нейросетей о частоте процессора, конфигурациях и тесте Гилева нельзя принимать на веру. Объясняем, какие ошибки приводят к потере производительности и на чем при подборе сервера для 1С экономить нельзя.

08.09.2026    1291    7o2uYXg    1    

5

HighLoad оптимизация Сервера Системный администратор 1С 8.3 Абонемент ($m)

Снимает настройки кластера, рабочих серверов и баз штатным объектом платформы и по каждой пишет не значение, а последствие: не "резервирование = Ложь", а "при аварии сеансы базы завершатся, а не переедут". Только чтение.

10 стартмани

28.08.2026    980    5    nedomolkov.ivan    0    

1

HighLoad оптимизация Сервера Системный администратор 1С 8.3 Бесплатно (free)

Поставил RAS, а кластер отвечает "различаются версии клиента и сервера". Открыл свойства сервера, а поля интервала перезапуска там больше нет. Разбор двух диалогов консоли: что вписывать в каждое поле и от чего это защищает.

28.08.2026    1837    nedomolkov.ivan    6    

2

HighLoad оптимизация Сервера Системный администратор 1С 8.3 Бесплатно (free)

Кластер достался настроенным кем-то другим: rphost растёт, к утру обмены не выполнены, а в консоли десятки значений, и непонятно, норма это или мина. Разбор того, чего стоят дефолты кластера на боевой базе и чем их читать, не открывая консоль.

28.08.2026    1777    nedomolkov.ivan    2    

3

HighLoad оптимизация Сервера Системный администратор Разработчик 1С 8.3 Бесплатно (free)

Сводная таблица показывала загрузку диска 97-99 % каждый день, и вывод напрашивался сам: диск упирается в потолок, надо расширять. Среднее по тому же ряду оказалось 4,24 %, а выше 80 % диск был в семи пятиминутных интервалах из 2016 - по одному на каждую ночь недели, это окно резервного копирования. В потолок диск не упирается. Потом тот же метод соврал в обратную сторону: на прореженном до пяти минут ряде исчезли пятнадцатисекундные провалы свободного места до 27 мегабайт. Одна ошибка чтения графиков дала два противоположных ложных вывода из одних данных. Настоящее узкое место сидело в памяти, и находок там две: растущий рабочий процесс сервера приложений и мёртвые сеансы терминального сервера. Разбираю, какие свойства кластера это ограничивают, какие три таймаута проверить, и показываю место, где мой собственный расчёт не сошёлся на три с половиной гигабайта.

19.08.2026    1789    nedomolkov.ivan    5    

3

Администрирование СУБД Сервера Системный администратор Разработчик 1С 8.3 Бесплатно (free)

Переносили боевую базу 276 ГБ с MS SQL на PostgreSQL. Перенос вставал четыре раза подряд, каждый раз через час и без единого сообщения об ошибке. Две гипотезы, взятые из чужих статей, замеры не подтвердили. Настоящей причиной оказался неразрывный пробел в наименовании номенклатуры: ICU схлопывает его с обычным, MS SQL считает строки разными, PostgreSQL одинаковыми, и уникальный индекс не создаётся. Разбор с цифрами, скриптом поиска и правилом вместо списка символов.

13.08.2026    1790    nedomolkov.ivan    2    

3

Администрирование СУБД Сервера Системный администратор Разработчик 1С 8.3 Бесплатно (free)

Перенесли базу 1С на 276 ГБ с Windows и MS SQL на Ubuntu и PostgreSQL. Главная неприятность оказалась вообще не про Linux, а вот восемь встреченных по дороге ловушек про него ровно настолько, что каждая стоила отдельного часа. Флаг виртуализации, который врёт; процессы, умирающие вместе с сессией; кластер с английской локалью; автотюнер с work_mem 512 МБ. Ни одной из них нет в чек-листах, которые я читал перед началом.

13.08.2026    1825    nedomolkov.ivan    2    

1
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. SerVer1C 1143 30.03.26 19:54 Сейчас в теме
Будьте аккуратнее, когда светите на общак. Люди могут вскрыть секреты.
Прикрепленные файлы:
ardn; capitan; +2 – Ответить
2. capitan 2599 30.03.26 22:45 Сейчас в теме
Вспоминается...
Не учи в школе физику и окружающий мир для тебя всегда будет наполнен чудесами.

В чем темные стороны, кроме кликбейтного заголовка?
Автономный сервер и делали для этого, чтобы производить разные технические манипуляции с базой 1С
Не нарушая лицензионного соглашения
Потому что если в консоли посмотреть команды автономного сервера, то можно все это сделать посредством SQL
Что касается паролей СУБД, то товарищ выше уже все обозначил, это знали задолго до автономного сервера

Получилось, докладчик взобрался на броневик, прославил ванессу, прославил софтпоинтов, прочел с ИТС справку и откланялся?

Попробуйте рассказать о том, чего нет на ИТС
Например умеет ли автономный сервер в авторизацию ОС и как его команды поймать в консоли
Тогда публика будет ликовать и бросать вверх чепчики
mitia.mackarevich; +1 – Ответить
4. Timur.V 84 31.03.26 12:16 Сейчас в теме
(2)
Не учи в школе физику и окружающий мир для тебя всегда будет наполнен чудесами.

Чудеса:
Мама чувствует за много километров, что с её ребенком случилась беда (и это потом подтверждается).
Ребёнок чувствует, что с родителем что-то произошло, беда (и это потом подтверждается).
Бабушка выносит из горящего дома сундук 150 кг весом. (после пожара 4 мужика с трудом поднимают этот сундук)
Болезнь, вылечить не могут. Пришел человек в церковь, поцеловал икону/мощи святого человека. (болезнь вылечилась).

Объясните при помощи физики эти чудеса?


Из мрамора, тончайшей вуали итальянских скульпторов.

Может при помощи химии сможете объяснить?
5. SerVer1C 1143 31.03.26 13:46 Сейчас в теме
(4) Это называется "Ошибка выжившего". Посчитайте, какой % народа не излечился, поцеловав икону/мощи святого человека...
vampo; fronik; +2 – Ответить
6. capitan 2599 31.03.26 15:15 Сейчас в теме
(4) А вот и школьная математика подъехала
Условия есть необходимые, а есть достаточные.
https://ru.wikipedia.org/wiki/%D0%9D%D0%B5%D0%BE%D0%B1%D1%85%D0%BE%D0%B4%D0%B8%D0­%BC%D0%BE%D0%B5_%D0%B8_%D0%B4%D0%BE%D1%81%D1%82%D0%B0%D1%82%­D0%BE%D1%87%D0%BD%D0%BE%D0%B5_%D1%83%D1%81%D0%BB%D0%BE%D0%B2­%D0%B8%D1%8F

Я не говорил что физика отрицает чудеса
3. Vasvas05 27 31.03.26 10:35 Сейчас в теме
авторизация ОС, а не логин пароль обычно используют для подключения к sql.
"Пароль там, конечно, хранится не в открытом виде – он зашифрован. Но дальше мы выполняем команду ibcmd server config import, передаем каталог с этим файлом, указываем, для какой базы нужны данные – и получаем результат либо в yml-файл, либо прямо в консоль."

Хотелось бы подробнее раскрыть этот момент: какие именно команды вы используете? Сейчас создаётся ощущение, что блок с выгрузкой dt описан избыточно (для объёма статьи), а вот ключевая часть, где действительно важны конкретные инструменты и команды, осталась без детального разбора.
7. German 416 02.04.26 06:27 Сейчас в теме
(3)
ibcmd server config import
--cluster-data="d:\1C srvinfo"
--name=basename
--out=d:\yml\basename.yml
siamagic; ardn; +2 – Ответить
8. German 416 02.04.26 06:52 Сейчас в теме
В 1С есть возможность разделить пользователей операционной системы: под одним запускается агент кластера, под другим – рабочие процессы сервера 1С.

Если бы такая настройка была (хотя я редко видел, чтобы ее использовали)


Использование файла swpuser.ini https://its.1c.ru/db/v83doc/bookmark/adm/TI000000418 не позволяет использовать учетки для служб - .
gSMA (без пароля с $ на конце)
9. T_Cold 03.04.26 23:29 Сейчас в теме
Вопрос знатокам. Экземпляр автономного сервера запускается как служба под пользователем, отличным от пользователя ОС. Как ни пробовал, но администрировать его с помощью ibcmd --pid ***** не выходит. Сообщает, что либо доступа нет, либо еще не запущен. В чем секрет?
10. Cyberhawk 135 06.05.26 09:10 Сейчас в теме
dt-файл на 100 ГБ, который еще может и не выгрузиться
А почему?
Для отправки сообщения требуется регистрация/авторизация