Привет! Меня зовут Сергей, я ведущий системный администратор службы эксплуатации в QIWI. Так сложилось, что в нашей компании довольно большое число сотрудников, и часть из них работает в специфических системах.

Например, есть люди, которые в своей работе часто взаимодействуют с бухгалтерией, финансами, единой биометрической системой, Госуслугами, Контуром и прочим добром. Причём от того, насколько комфортно им это делать, на самом деле зависит выполнение их рабочих обязанностей. А вы знаете, что сейчас для многих (если не для большинства) окологосударственных сайтов нужны сертификаты. И чтобы сделать из дефолтного Chrome или Firefox подходящий инструмент для такого сотрудника, приходилось немного костылить — обвешиваться плагинами, настраивать их, потом по отдельности помогать каждому человеку, если что-то вдруг тупило. В общем, так себе история.

Но работать-то надо. И желательно — без заморочек, в централизованном формате «Включил — работаешь». Поэтому мы решили, что хватит это терпеть, и попробовали Яндекс Браузер для организаций.

Под катом я расскажу, что умеет Браузер на сегодня, как именно мы его внедряли, поделюсь нашим скриптом для быстрой миграции (вдруг вам тоже пригодится) и впечатлениями от работы. Вишенкой — о работе Браузера в закрытом контуре без внешней телеметрии.

Почему вообще Яндекс Браузер

Лень — двигатель прогресса. Гм, то есть, нам хотелось отойти от парадигмы, когда для финансиста или бухгалтера надо настраивать специфичное рабочее место в плане сертификатов браузера. Да, если у вас в компании пара таких сотрудников, то это не так уж и сложно. Даже если их 20, тоже можно что-то придумать. 

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

Идеальный процесс я представлял себе примерно так:

  • подобный браузер со всеми из коробки установленными сертификатами можно устанавливать централизованно,

  • есть возможность использования собственных скриптов,

  • можно настраивать много параметров,

  • в итоге получается дать пользователю максимум нужных для работы возможностей в пару кликов,

  • и да, всё это — быстро и безопасно.

Очень уж хотелось избавиться от ситуации «Кто во что горазд» в плане ручной установки плагинов, плюс дать пользователям быстрый и очевидный доступ к корпресурсам, да и вообще — сделать всё красиво.

А тут ещё выяснилось, что ряд сотрудников у нас так и так использует Яндекс Браузер вместо Chrome / Firefox / Safari. Ну вот удобнее и привычнее он им, это из области персонального комфорта.

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

Особенности процесса

Сразу скажу, что надо чётко понимать одну вещь: Яндекс Браузер, которым вы, возможно, пользуетесь повседневно, и Яндекс Браузер для организаций — это разные штуки. То есть не будет такого, что у условного бухгалтера на рабочем ПК стоит Яндекс Браузер со всеми паролями, избранным и красивыми фонами, вы накатите ему поверх Браузер для организаций — и всё в порядке. Увы. Так корпоративная версия просто перезапишется поверх персональной, а вам придётся отвечать на вопросы вида «А где тут у меня папочка с закладками была?».

Варианта здесь два — или перетаскивать всё руками, классический сценарий с экспортом данных наружу —> их локальным сохранением —> импортом в новый браузер работает. Но это долго, когда мы с вами говорим о сотнях или тысячах сотрудников. Второй вариант — автоматизация процесса. Мы хотели сделать установку максимально прозрачной для пользователя, управляемой и кастомизируемой. Никаких странных окошек с подтверждениями, уведомлениями о перезагрузке по два раза в процессе установки и прочего.

Для этого мы написали набор скриптов. Важное: такие скрипты — это стандарт нашего отдела, процесс, которому подвергается каждое новое ПО. Существуют так называемые «пре-скрипты» и «пост-скрипты», эти разделы нужны для предварительных манипуляций на компьютере пользователя перед установкой ПО, и после установки. Пример «пре-скриптов» — бэкапирование файлов и папок. «Пост-скрипты» — обратный перенос этих папок и файлов, проверка целостности установки и другое.

Что делают наши скрипты

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

Во-вторых, полностью и начисто удаляют действующую версию браузера (включая всякого рода «хвосты», временные папки, логи, служебные файлы и прочее). После чего запускается чистка реестра.

В-третьих, запускают чистую установку нашего браузера. Я тут пишу «нашего», потому что для корпоративных клиентов Яндекс предоставляет своеобразный конструктор, в котором можно быстро создать нужную именно вашей компании версию Яндекс Браузера. Имеется в виду набор корпоративных вкладок, какие-нибудь нескучные фоны, подборку полезных расширений и прочее, прочее, прочее. После того как вы создаёте в конструкторе подобную сборку, вы можете выгрузить её и использовать для развёртывания.

В-четвёртых, скрипты разворачивают эту сборку у пользователя, добавляя в неё все данные, скопированные локально на первом этапе.

Итого сотрудник получает сразу из коробки последнюю версию Браузера со всеми корпоративными сервисами под рукой. Кажется мелочью, но в больших организациях на самом деле важно держать где-то поблизости и наглядно все эти сервисы — self service, страницы саппорта и заказа услуг, внутренние базы знаний, таск-трекеры и прочее. 

Что понадобится для развёртывания

  1. Веб-сервис Яндекса «Конструктор сборок», о котором я уже писал выше. Вот как он выглядит.

Он даёт вам предварительно наполнить браузер контентом — прописать нужные папки (закладки) со ссылками на корпоративные сайты и порталы, установить брендовый задний фон, поставить базовый набор плагинов, выбрать архитектуру приложения (х86-х64), создать набор быстрых ссылок на пустой странице, а также настроить домашнюю страницу.

Сейчас конструктор позволяет клонировать уже созданные вами сборки, чтобы не повторять процесс с нуля каждый раз, а лишь вносить изменения, экономя свое время и силы. Это может показаться довольно очевидным, но на практике полезность такого конструктора сложно переоценить.

  1. Средства развертывания приложений PowerShell App Deployment Toolkit — это набор функций для выполнения задач развёртывания приложений и взаимодействия с пользователем в процессе. 

  1. Комплект средств автоматизации и управления клиентской инфраструктуры. Подойдет любой используемый в компании инструмент, приведу пример от Microsoft, Microsoft MDT или System Center Configuration Manager (SCCM/MEM)

  2. Также нам понадобится консоль PowerShell и любой редактор кода, например, Microsoft VS Code.

Эти четыре инструмента помогли нам решить целый спектр задач, включая:

  • предварительную подготовку установочного файла (MSI);

  • написание скрипта для автоматизации задач развертывания и настройки;

  • сборку приложения в System Center Configuration Manager и добавление в каталог приложений;

  • тестирование развертывания Яндекс Браузера на пилотную группу

  • планирование и развертывание Яндекс Браузера на всех пользователей;

  • настройку шаблонов групповых политик, ограничивающих возможности и функциональность (GPO);

  • проверку результатов и подведение итогов перехода на Яндекс Браузер для организаций.

Баги, с которыми мы столкнулись

В общем и целом Яндекс Браузер для организаций активно развивается и не менее активно допиливает шероховатости. Но дело в том, что компаний-то много, у каждой свои представления о прекрасном, процессы, любимый софт и необходимые интеграции, так что какие-то более или менее уникальные баги пока ещё встречаются. К чести саппорта на стороне Браузера, решаются эти проблемы оперативно.

Вот несколько подводных камней, которые удалось нащупать нам.

  1. Проблема. У пользователей с уже установленным браузером директория приложения располагается не только в профиле пользователя Windows, но и в общей директории приложений Program Files. 

Как решили. На этапе предустановки проводилась проверка расположения файла «browser.exe»

  1. Проблема. Перед удалением необходимо было скопировать профиль пользователя Яндекс Браузера и перенести во временное расположение.

Как решили. Простым копированием из стандартной директории с последующим возвращением после установки. Корректное удаление старой версии с очисткой реестра и стандартных путей для временных файлов.

  1. Проблема. Корректное удаление старой версии с очисткой реестра и стандартных путей для временных файлов и установка с заданными параметрами и настройками. Всё это должно происходить в фоне и без каких-либо действий со стороны пользователя.

Как решили. В случае сбоев комплект PSADT ведет логирование установки, можно отследить, на каком этапе произошла ошибка.

А теперь про телеметрию

Думаю, это довольно важный аспект, если мы с вами говорим про работу в корпоративной среде. В одном из больших обновлений Браузера для организаций кроме прочих плюшек появится и локальный личный кабинет, on-premise-решение с DLP-системами, фильтрами контента, логированием и мониторингом в периметре. 

Что это значит для компаний? Что теперь можно будет развернуть этот личный кабинет на серверах в закрытом контуре компании и установить всё необходимое для работы такого ЛК. После чего вся аналитика, отслеживание переходов, клики по ссылкам, время, проведенное на ресурсах, в общем, вся подобная телеметрия останется только внутри вашего периметра.

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

Так что прямо сейчас мы очень ждём этого обновления, чтобы сразу же начать активно его тестировать. Если вам интересно, как оно всё работает — напишите в комментариях, тогда постараемся написать отдельный пост про работу Браузера в периметре организации.

Полезные ссылки

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

Комментарии (15)


  1. Redduck119
    04.12.2023 08:28
    +3

    алису, алису можно отключить навсегда! И что бы она не кушала ресурсы.
    Зачем алиса оператору ЧПУ.
    Нет, я знаю зачем Алиса (Наташа) токарю нужна.
    Я про другое.


    1. WinLin2
      04.12.2023 08:28
      -1

      На каждой вкладке рекламный баннер. Вроде отечественный, но ведет себя как ...


      1. jackcrane
        04.12.2023 08:28

        Нидерланды его отечество. и вроде бы до сих пор. я давно не проверял ЕГРЮЛ.


  1. nitro80
    04.12.2023 08:28
    +4

     И чтобы сделать из дефолтного Chrome или Firefox подходящий инструмент для такого сотрудника, приходилось немного костылить — обвешиваться плагинами

    Но ведь и в этом браузере наверняка надо ставить плагины для Контур\Сбис\Эдо\КриптоПро и пр.?

    Чем сборка Я.Браузера отличается от Хромиум.Гост? Телеметрией в пользу Я?


    1. SSviryakin Автор
      04.12.2023 08:28
      +4

      Спасибо за ваши вопросы! Все необходимые плагины можно добавить на этапе предварительной сборки дистрибутива в "Конструкторе сборок", и при установке весь набор будет присутствовать сразу. Не могу прокомментировать про Хромиумю.Гост, т.к. обычно в корпоративном сегменте используется Google Chrome Enterpise, а вот его нужно допиливать 100%. В достаточно ближайшем будущем новый браузер от Яндекс получит дополнительные плюшки, это написано в статье, личный кабинет on-prem, и вся Ваша телеметрия будет находиться в контуре Вашей компании, и не в пользу третьих лиц.


      1. nitro80
        04.12.2023 08:28
        +1

        Конструктор сборок платный же?


        1. SSviryakin Автор
          04.12.2023 08:28
          +2

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


  1. temnikov_vasiliy
    04.12.2023 08:28
    +2

    msiexec /qn /i "Yandex_Browser.msi"
    taskkill /f /im browser.exe
    sc config YandexBrowserService start= disabled
    sc stop YandexBrowserService
    sc delete YandexBrowserService
    schtasks /delete /tn "Обновление Браузера Яндекс" /f
    del /q /f "%SystemRoot%\Tasks\*Яндекс*.job"
    
    for /D %%a in ("%ProgramFiles%\chrome_BITS_*") do echo %%a & rd /s /q "%%a"
    for /D %%a in ("%ProgramFiles%\chrome_url_fetcher_*") do echo %%a & rmdir /s /q "%%a"
    rd /s /q "%ProgramData%\Yandex\"
    rd /s /q "%ProgramFiles%\Yandex\YandexBrowser\Application\23.9.1.1024\Installer"
    del /q /f "%ProgramFiles%\Yandex\YandexBrowser\Application\23.9.1.1024\service_update.exe"
    del /q /f "%ProgramFiles%\Yandex\YandexBrowser\Application\23.9.1.1024\Locales\cs.pak"
    del /q /f "%ProgramFiles%\Yandex\YandexBrowser\Application\23.9.1.1024\Locales\de.pak"
    del /q /f "%ProgramFiles%\Yandex\YandexBrowser\Application\23.9.1.1024\Locales\en-US.pak"
    del /q /f "%ProgramFiles%\Yandex\YandexBrowser\Application\23.9.1.1024\Locales\es.pak"
    del /q /f "%ProgramFiles%\Yandex\YandexBrowser\Application\23.9.1.1024\Locales\fr.pak"
    del /q /f "%ProgramFiles%\Yandex\YandexBrowser\Application\23.9.1.1024\Locales\it.pak"
    del /q /f "%ProgramFiles%\Yandex\YandexBrowser\Application\23.9.1.1024\Locales\ja.pak"
    del /q /f "%ProgramFiles%\Yandex\YandexBrowser\Application\23.9.1.1024\Locales\kk.pak"
    del /q /f "%ProgramFiles%\Yandex\YandexBrowser\Application\23.9.1.1024\Locales\pt-BR.pak"
    del /q /f "%ProgramFiles%\Yandex\YandexBrowser\Application\23.9.1.1024\Locales\pt-PT.pak"
    del /q /f "%ProgramFiles%\Yandex\YandexBrowser\Application\23.9.1.1024\Locales\tr.pak"
    del /q /f "%ProgramFiles%\Yandex\YandexBrowser\Application\23.9.1.1024\Locales\uk.pak"
    del /q /f "%ProgramFiles%\Yandex\YandexBrowser\Application\23.9.1.1024\Locales\uz.pak"
    del /q /f "%ProgramFiles%\Yandex\YandexBrowser\Application\23.9.1.1024\Locales\zh-CN.pak"
    del /q /f "%ProgramFiles%\Yandex\YandexBrowser\Application\23.9.1.1024\Locales\zh-TW.pak"
    rd /s /q "%ProgramFiles%\Yandex\YandexBrowser\Application\SetupMetrics"
    del /q /f "%ProgramFiles%\Yandex\YandexBrowser\Application\debug.log"
    rd /s /q "%ProgramFiles%\Yandex\TempResources"
    rd /s /q "%AppData%\Yandex\"
    
    del /q /f "%USERPROFILE%\Desktop\*Yandex*.lnk"
    rd /s /q "%LOCALAPPDATA%\Yandex\YandexBrowser\"
    mkdir "C:\Temp\YandexBrowser"
    mklink /d "%LOCALAPPDATA%\Yandex\YandexBrowser" "c:\Temp\YandexBrowser"
    
    mkdir "%LOCALAPPDATA%\Yandex\YandexBrowser\User Data\Default"
    copy /y "Copy_Yandex\master_preferences" "%ProgramFiles%\Yandex\YandexBrowser\Application\"
    copy /y "Copy_Yandex\Local State" "%LOCALAPPDATA%\Yandex\YandexBrowser\User Data\"
    copy /y "Copy_Yandex\Tablo" "%LOCALAPPDATA%\Yandex\YandexBrowser\User Data\Default\"
    copy /y "Copy_Yandex\Yandex.lnk" "%PUBLIC%\Desktop\"


    1. jackcrane
      04.12.2023 08:28

      прекрасно ! и без всяких там повершеллов / SCCM / whateverMSBS


  1. Johan_Palych
    04.12.2023 08:28

    Очень уж хотелось избавиться от ситуации «Кто во что горазд»

    Все финики, бухи и закупцы сидят на тонких клиентах в обособленной ферме Windows Server RDS(2 сервера RDSH и третий RDSH, RDWA, RDCB, RD License).
    Используется Chromium-Gost с GPO
    https://www.cryptopro.ru/products/chromium-gost


  1. Abyss777
    04.12.2023 08:28

    Один раз сделать сборку и настроить её разворачивание это маленькая часть задачи.

    Как организовано постоянное обновление браузера?
    Человек-RSS при появлении новой версии тыкает создание новой сборки в "Конструкторе сборок" ?


    1. SSviryakin Автор
      04.12.2023 08:28
      +1

      Все зависит от процессов Вашей службы ИБ, штатный механизм обновления вполне справляется с этой задачей, но есть нюанс со стихийностью такого обновления. Делать свежую сборку имеет смысл в том случае, если Вы собираетесь вносить изменения в разрезе контента (добавить/убрать плагины, добавить корпоративных ссылок, изменить фон), чтобы актуальная сборка была доступна в Вашем каталоге, или в качестве регламентной задачи по поддержанию Вашего каталога приложений в актуальном состоянии. Ко всему прочему в каталоге с установленным браузером имеется сервис апдейтер, который без труда можно вызывать консольно, централизованно, например, в установленные в Вашей компании "окна обслуживания".
      Всегда есть способы улучшить процесс, а самое главное автоматизировать его, например, есть замечательный командлет "Invoke-WebRequest", помощью которого можно скачивать файлы с веб-ресурсов, складываем во временное расположение, проверяем версию файла
      "$FileVersion = (Get-Item -Path($YandexBrowserExe.FullName)" -ErrorAction SilentlyContinue).VersionInfo.FileVersionRaw" (в переменную в параметре Path подставляете название файла с полным путем), полученное значение сравниваете с текущей версией, и если версия более свежая, то копируете с заменой новый файл в каталог с дистрибутивом, конечно же не забываем оповестить о выходе новой версии, например, с этой задачей справляется командлет "Send-MailMessage". Очень много зависит от используемого инструментария, тоже SCCM отлично управляется из консоли Powershell, в скрипт можно сразу добавить создание нового деплоя в ближайшее "окно обслуживания".
      Как говорится, совершенству нет предела. Если у Вас есть интересный опыт по процессу патчменеджмента, с удовольствием с ним ознакомлюсь.


      1. Abyss777
        04.12.2023 08:28

        Пускать козла в огород разрешать браузеру обновляться самому это непозволительная роскошь. К тому же не всегда у компьютеров есть права на выход в интернет через прокси (есть только у пользователей).

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

        Проблема в том, как узнать что вышла новая версия, сформировать новую сборку. Я же не могу чистый msi поверх сборки накатить? Как узнать что не сломался ли плагин какого-нибудь клиент-банка в новой версии. И при этом не пропустить вспышку zero-day какой-нибудь.


        1. SSviryakin Автор
          04.12.2023 08:28
          +1

          Одной установкой не закрыть все вопросы, к сожалению. Естественно применяется комплексный подход. Обязательно должен быть тестовый стенд или тестовая группа, где Вы проверяете результаты обновления, на тот самый случай, если есть вероятность поломать работу плагинов. Есть традиционные шаблоны групповых политик, которые помогают приводить браузер к эталонному виду. Ранее упоминал про будущую фитчу ЛК on-prem, там можно будет создавать свои каталоги с плагинами и предоставить пользователям возможность их установки/удаления, там же можно будет продублировать необходимые настройки, если по каким-то причинам не отработало GPO. Пока этого функционала нет, можно переложить эту задачу поддержания нужных настроек на свои инструменты автоматизации, на том же SCCM это легко делается бейзлайнами (в случае не комплаенс, выполняется правка реестра).
          А про zero-day уязвимости мы с Вами всегда узнавали и узнаем из ИТ пабликов и интернет ресурсов, посвящённых тематике ИБ, некоторые из которых позволяют оформлять подписку на рассылку новых публикаций.
          Не все подзадачи стоит полностью отдавать на откуп автоматизации, например, есть такой замечательный инструмент "Patch Connect Plus", который позволяет полностью поставить на поток процесс обновления стороннего ПО и строго по заданному графику, но иногда это может привести к тяжелым последствиям, связанным с массовым откатом к прежней версии. Процесс нужно инициировать и контролировать, иначе проблем не избежать.


      1. temnikov_vasiliy
        04.12.2023 08:28

        открой для себя wpkg )