"Контур Толк" - импортозамещение Zoom для параноика на OpenBSD

Опубликовано 13.08.2024 в OpenBSD

Здравствуйте, мои маленькие любители безопасности!

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

До пандемии коронавируса, чудовищной прежде всего тем, что болели и умирали на этот раз не только бедняки и не только в странах Третьего мира, подобные решения, конечно, существовали, но были не то чтобы слишком востребованы. Эпоха Удалёнки, которую многие, я знаю, вспоминают с тихой ностальгией (а я так вовсе в этой эпохе и застрял, в офисе так и не появляюсь) кардинально изменила расклад и привела к тому, что всего за несколько месяцев число пользователей решения корпорации Zoom Video Communications Inc. подскочило с 10 до более чем 200 миллионов человек по всему миру (а потом и еще больше), и Zoom стал практически стандартом де-факто в этой отрасли.

Но мир меняется. В связи с вероломным нападением Израиля и военной аннексией им территорий соседнего суверенного государства - Голанских высот, решительно осужденной Совбезом ООН и вызвавшей беспрецедентные экономические санкции всего Западного мира против страны-агрессора... А. Ну да. Вечно я путаю, это же совсем, совсем другое! В общем, в связи с сами знаете чем, в России потребовалось импортозамещение решения корпорации, чья штаб-квартира расположена в городе Сан-Хосе, штат Калифорния. И таких решений есть изрядно - здесь не будет перечня и сравнения, потому что выбирать обычно не приходится, чем работодатель импортозаместится - то и будешь использовать.

Речь сегодня пойдет об одном из таких решений - "Контур Толк" от СКБ Контур. Решении по функциональности своей вполне ынтырпрайзно-типовым, настолько, что на подробностях я останавливаться не буду (мне забыли приплатить за пиар), сосредоточусь лишь на функциях, значимых для "конченого пользователя".

Итак, нативного клиента под *BSD у СКБ Контур нет в принципе (достаточно традиционно поддерживают только Windows, MacOS, Linux и мобилки) но есть web-интерфейс, достаточно удобоваримый в браузере - умеет в аудио- и видеосозвоны, шэринг экрана... да что еще нужно-то? Всякие там разные способы аутентификации и интеграции с календарями-планировщиками тоже в наличии, конечно, в общем, скукота.

Но как пользоваться этой скукотой под OpenBSD не привлекая внимание санитаров?

Прежде всего, в опёнке по умолчанию на уровне ядра запрещен доступ к устройствам аудио-видеозахвата. Так что можете не заклеивать синей изолентой вебкамеру (я, кстати, реально наблюдал опытного iOS-разработчика, сидящего в офисе (!) с макбуком, камера которого была заклеена синей изолентой - вероятно, он знал что-то такое...). Но вы можете не заклеивать. Поверили? Зря! Есть ведь еще аппаратные закладки от злобного АНБ и доброго ФСБ, есть возможность подглядеть, как вы ковыряетесь в носу через анализ похрустывания клавиш и резонанс в оконных стёклах от случайного попукивания... Боже, как страшно жить!

В общем, снять запрет на доступ к аудио-видеозахвату в OpenBSD можно однократно, введя:

doas sysctl kern.video.record=1
doas sysctl kern.audio.record=1

а можно и на постоянной основе, добавив это же самое в /etc/sysctl.conf - но какой же нормальный параноик будет так делать?

Далее, как пишет Таймс^W FAQ, по умолчанию доступ к вебкамере предоставляется только root, поэтому (ну не сидеть же в браузере под рутом, свят-свят-свят!) имеет смысл сделать:

doas chown $USER /dev/video*

Ну и теперь можно запускать в любимом браузере "Контур Толк", но есть нюансы.

В Firefox благополучно заработает аудио- и видеосвязь, а вот при попытке включить демонстрацию экрана процесс firefox вылетит, ругаясь на "... pledge "", syscall ...". Ибо в сборке Firefox для OpenBSD давно уже реализована поддержка механизма изоляции системных вызовов Pledge. Как оное отключить, написано в /usr/local/share/doc/pkg-readmes/firefox, но опять же, какой нормальный параноик станет это отключать?

Мы пойдем другим путем: установим браузер Chromium, который сдаст вас с телеметрией и всеми потрохами корпорации Google, это ведь не ФСБ, корпорации они не хотят вам зла! Шучу (хотя и в Chromuim это будет работать). Лучше поставим Iridium (doas pkg_add iridium), который тоже сдаст вас с потрохами, но чуть-чуть поменьше.

Ну и для пущей параноидальности, создадим скрипт для запуска оного Iridium сугубо в целях использования с сервисом видеоконференций "Контур Толк" следующим образом. Во-первых, добавим в /etc/doas.conf следующие строчки для обеспечения возможности установки/снятия ядрёного запрета на доступ к аудио-видеозахвату (оцените, кстати, простоту и лаконичность конфигурации doas в сравнении с sudo):

permit nopass нашюзер as root cmd sysctl args kern.audio.record=0
permit nopass нашюзер as root cmd sysctl args kern.audio.record=1
permit nopass нашюзер as root cmd sysctl args kern.video.record=0
permit nopass нашюзер as root cmd sysctl args kern.video.record=1

во-вторых, собственно, сам скрипт:

#!/bin/sh

doas sysctl kern.video.record=1
doas sysctl kern.audio.record=1

iridium --incognito --user-data-dir="/tmp" ;

doas sysctl kern.video.record=0
doas sysctl kern.audio.record=0

ну и не забываем chmod +x на файлик со скриптом сделать.

Результат: в Iridium (даром, что там тоже поддерживается pledge), корректно работает и аудио, и видео, и демонстрация экрана (отдельной вкладки браузера, окна отдельного приложения или экрана целиком - поддерживается любой из вариантов). Теперь вы можете участвовать в унылых рабочих конфколлах не покидая зоны параноидального комфорта!

P.S. Не забывайте также носить шапочку из фольги и прятать под подушкой назначенные врачами-отравителями таблетки.