Zoom のLinuxクライアントをFirejail経由で利用する

最近みんなよく使うようになった Zoom ですがみんなが使うようになっていろいろとプライバシーやセキュリティの問題が表層化してきている感じです．

Linux関連だとパッケージング周りがあまりよろしくない感じです（◞‸◟）

Zoom: You should hire an appropriate package maintainer

Linux用zoomパッケージ：お粗末なメンテナスクリプト – ゲストブログ

それ以外にもLinux版は利用者が少なく見つかっていないだけで問題がありそうな気がします．

とりあえず手元の環境ではpkg版は削除してなるべくウェブブラウザで利用をしておこうかと思っています．Linux版ChromiumではUA偽装が必要という記事も見かけましたが，

Louis-Philippe Véronneau – Using Zoom’s web client on Linux

2020-04-03 に Version 80.0.3987.162 (Developer Build) built on Debian bullseye/sid, running on Debian bullseye/sid (64-bit) で試したところUA偽装せずに使えました．

$ chromium --temp-profile https://zoom.us/……

でもリソースはデスクトップ版より余計に食いそうです．デスクトップ版にはbinary tar ball もあるのでそれならバッケージングの問題は回避できると思います．
これを試してみます．

少し手間な気がしますが，pkg版の方もリポジトリはないのでアップデート毎にインストールし直しが必要なのであまり手間は代わりません．

Download Center – Zoom

ダウンロードしたアーカイブを /opt 以下に展開します．

$ tar tvf ~/Downloads/zoom_x86_64.tar.xz
$ tar xvf ~/Downloads/zoom_x86_64.tar.xz -C /opt

これで，` /opt/zoom/zoom` で起動しようとすると Segmentation fault になってしまいます．zoom.sh かな?と思ったけど中を見ると debug用のようです．/opt/zoom/zoomlinux で実行すればokのようです．

次にアプリケーションをサンドボックス内で動かしてセキュリティリスクを軽減できる Firejail 経由で動くか試してみます．

先ずは Firejail を導入します．

$ sudo apt install firejail firejail-profiles

これでとりあえず，firejail /opt/zoom/zoomlinux で Firejail 経由で起動できます :)

$ firejail /opt/zoom/zoomlinux

Firejail の管理下にあるものは firejail --list で確認できます．firejail --tree で pstree のようにプロセスツリーが確認できます．負荷状況は firejail --top で topやvirtop 的な感じで確認できます．

Firejail のプロファイルを確認すると Zoom のものもありました．

$ dpkg -L firejail-profiles | grep zoom
/etc/firejail/zoom.profile

せっかくなのでこれを使います．pkg版のときは zoom という名前で起動するのでそのままでこのプロファイルを使うようですが，zoomlinux で起動すると認識してくれないようなので，zoomlinux 用のプロファイルを用意します．といってもコピーするだけです．

$ mkdir -p ~/.config/firejail
$ cp /etc/firejail/zoom.profile ~/.config/firejail/zoomlinux.profile

/opt/zoom/zoomlinux のようにパスが付いていると認識してくれないので，パスを通して起動します．

$ PATH=/opt/zoom:$PATH firejail zoomlinux
Reading profile /home/matoken/.config/firejail/zoomlinux.profile
:

若しくは --profile オプションでプロファイルを指定します．(こっちのほうがいいかな?)

$ firejail --profile=zoom /opt/zoom/zoomlinux
Reading profile /etc/firejail/zoom.profile
:

zoom プロファイル経由で起動できました :)

この状態だとファイルの共有をしようとすると共有するものが何もなかったり，チャットログの保存が出来なかったりします．

firejail のプロファイルを編集して許可したいファイルやディレクトリを設定します．以下は ~/Documtnts/Zoom を許可する例です．

$ diff -u /etc/firejail/zoom.profile ~/.config/firejail/zoomlinux.profile
--- /etc/firejail/zoom.profile 2020-01-21 03:53:34.000000000 +0900
+++ /home/matoken/.config/firejail/zoomlinux.profile 2020-04-09 06:35:43.591973723 +0900
@@ -7,6 +7,7 @@

noblacklist ${HOME}/.config/zoomus.conf
noblacklist ${HOME}/.zoom
+noblacklist ${HOME}/Documents/Zoom

include disable-common.inc
include disable-devel.inc
@@ -16,9 +17,11 @@
mkdir ${HOME}/.cache/zoom
mkfile ${HOME}/.config/zoomus.conf
mkdir ${HOME}/.zoom
+mkdir ${HOME}/Documents/Zoom
whitelist ${HOME}/.cache/zoom
whitelist ${HOME}/.config/zoomus.conf
whitelist ${HOME}/.zoom
+whitelist ${HOME}/Documents/Zoom
include whitelist-common.inc

caps.drop all

ということで少しは安全になったかな?
しばらくはこまめに Zoom の情報はアップデートしておこうと思います．

環境

$ /opt/zoom/zoom 2>&1 | grep Version
Linux Client Version is 3.5.382995.0407
$ dpkg-query -W firejail*
firejail 0.9.62-3
firejail-profiles 0.9.62-3
$ lsb_release -dr
Description: Debian GNU/Linux bullseye/sid
Release: unstable
$ uname -m
x86_64

wiki

linux:zoom [wiki.matoken.org]