保存データの暗号化
はじめに
DocSpaceが提供するデータの静止時暗号化機能は、DocSpace内の機密データのセキュリティを確保することができます。
暗号化とは、ディスク上に保存されたデータの機密性を維持するために情報を可逆的に変換することです。したがって、侵入者がハードディスクに保存されたデータにアクセスできたとしても、それが暗号化されているため、読むことはできません。
暗号化は、ONLYOFFICEインスタンス内のデータ全体に対してEncrypt-then-MAC型の暗号化(AES-256-CBC + HMAC-SHA256)に基づいており、AES-256国際データ暗号化標準に準拠しています。DocSpace内のデータの暗号化には、CipherMode.CBC対称アルゴリズムを使用したAES-256暗号化タイプが使用され、SHA256ハッシュ関数とHMACメッセージ認証コードのスクリーニングがペアになって、暗号化データの整合性と真正性を検証します。
この機能はサーバーバージョンのみで利用可能です。DiscDataStore(ローカルディスクのみ。s3や他のクラウドサービスには実装されていません)でのみ動作します。
SSHFSを使用したリモートマシンディスクのマウント
DocSpaceがDEBパッケージを使用してインストールされている場合に、Linuxでディスクをマウントするオプションを考えてみましょう。
SSHFS(Secure SHell FileSystem)は、SSHプロトコル(正確にはそのSFTP拡張)を介してリモートでファイルを管理するために使用されるLinux(およびFUSE(Filesystem in Userspace)実装がある他のオペレーティングシステム)のクライアントプログラムで、ローカルコンピュータ上にあるかのように動作します。
- HostAはDocSpaceを持つアプリケーションサーバーホストです
- HostBはファイルストレージホストです
- /var/www/onlyoffice/Data/はHostA上のデータフォルダーへのパスです
- /app/onlyoffice/dataはHostB上のデータフォルダーへのパスです
- docspaceはHostA上の非特権ユーザーの名前です
- datauserはHostB上の非特権ユーザーの名前です
ステップ1. HostBの設定
システムの更新をインストールし、再起動します:
sudo su
apt update
apt upgrade
reboot
非特権ユーザーとターゲットフォルダーを作成して設定します:
sudo su
adduser datauser
mkdir /app/onlyoffice/data
chown datauser:datauser /app/onlyoffice/data
ステップ2. HostAの設定
システムの更新と必要なパッケージをインストールし、再起動します:
sudo su
apt update
apt upgrade
apt install sshfs
reboot
DocSpaceサービスを停止します:
sudo systemctl stop 'docspace-*' --all
DocSpaceデータを一時ディレクトリに移動し、マウント前にソースディレクトリを空にします:
mkdir /var/www/onlyoffice/tmp
mv /var/www/onlyoffice/Data/* /var/www/onlyoffice/tmp/
非特権ユーザーを作成し、キーを生成し、マウントポイントを準備します:
sudo su
adduser docspace
ssh-keygen -t ed25519 -f /root/.ssh/id_ed25519 -C "key_for_hostb_connection"
HostAの画面に公開鍵を表示し、HostBにコピーします:
sudo su
cat /root/.ssh/id_ed25519.pub
出力例:
root@sftp-test-01:~# cat /root/.ssh/id_ed25519.pub
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBsDV25Pg8yB1QHeTZXJGphGTDhfqQQKVetcqvhk0dkf key_for_hostb_connection
catコマンドで出力されたキーをHostBの/home/datauser/.ssh/authorized_keysファイルにコピーして貼り付けます。
HostAからHostBへのキーを使用して接続をテストします:
ssh -i /root/.ssh/id_ed25519 datauser@hostB
前のステップを正しく完了した場合、HostBへの接続が開かれます。exitコマンドで閉じることができます。
マウントをテストします:
sshfs -o reconnect,ServerAliveInterval=15,ServerAliveCountMax=3 datauser@hostB:/app/onlyoffice/data/ /var/www/onlyoffice/Data/
touch /var/www/onlyoffice/Data/test.txt
umount /var/www/onlyoffice/Data
これらのコマンドを実行した後、HostBの/app/onlyoffice/dataフォルダーにtext.txtファイルが表示されるはずです。ファイルが表示された場合、マウントは正しく動作しており、最終設定に進むことができます。
非特権ユーザーのIDを確認し、/etc/fstabファイルに変更を加えます:
sudo id -u docspace
このコマンドはdocspaceユーザーのuidを表示し、マウント行のuidとgidパラメーターに代入する必要があります:
sshfs#datauser@hostB:/app/onlyoffice/data /var/www/onlyoffice/Data fuse _netdev,users,allow_other,IdentityFile=/root/.ssh/id_ed25519,ServerAliveInterval=15,ServerAliveCountMax=3,reconnect,uid=1000,gid=1000,umask=0022 0 0
この行を/etc/fstabファイルに追加する必要があります。行を追加した後、/etc/fstabを介してフォルダーをマウントし、テストします:
sudo su
systemctl daemon-reload
mount -a
su docspace
touch /var/www/onlyoffice/Data/test2.txt
すべての手順が正しく実行された場合、HostBの/app/onlyoffice/dataフォルダーにtest2.txtファイルが作成されます。
テストファイルを削除し、DocSpaceデータを復元します:
rm /var/www/onlyoffice/Data/test*.txt
mv /var/www/onlyoffice/tmp/* /var/www/onlyoffice/Data/
rmdir /var/www/onlyoffice/tmp
DocSpaceサービスを開始します:
sudo systemctl start 'docspace-*' --all
アプリケーションを起動した後、インターフェースでの動作(ファイルのダウンロード、開く、アバターの変更、ライセンスのアップロード)を確認してください。
暗号化プロセスの準備
暗号化手順を開始する前に、いくつかの準備を行う必要があります。
- DocSpaceで、左下の
メニューをクリックし、左側のパネルでスペース -> スペース管理メニュー項目を選択します。 - 設定 -> バックアップセクションに切り替え、自動データバックアップ機能を無効にします。
- ハードドライブに十分な空き容量があることを確認します。
DocSpaceがDEBパッケージを使用してインストールされている場合、/etc/onlyoffice/docspace/appsettings.production.jsonファイル内のcore.machinekey値を見つけます。
準備が整ったら、次のステップに進むことができます。
ストレージの暗号化
- スペース管理 -> 設定 -> ストレージセクションに切り替えます。
-
暗号化プロセスが開始されるときにすべてのアクティブユーザーにメールで通知するために、スペースが利用できなくなることをユーザーに通知するチェックボックスをオンにします。
暗号化プロセスが正常に完了すると、すべてのアクティブユーザーにもメール通知が送信されます。 暗号化プロセス中にエラーが発生した場合、すべての管理者(ユーザーに通知オプションに関係なく)に暗号化プロセスの失敗がメールで通知されます。
- ストレージを暗号化ボタンをクリックし、OKをクリックして暗号化プロセスを開始します。
手順の完了に必要な時間はデータ量に依存します。暗号化プロセス中はすべてのスペースが利用できません。暗号化が終了すると、DocSpaceデータは作業可能になります。
UPDATE tenants_tenants SET status='0' WHERE status='6';ストレージの復号化
DocSpaceでデータを復号化するには、
- スペース管理 -> 設定 ストレージセクション。
-
スペースが利用できなくなることをユーザーに通知するチェックボックスをオンにして、復号化プロセスが開始されるときにすべてのアクティブユーザーにメールで通知します。
復号化プロセスが正常に完了すると、すべてのアクティブユーザーにもメール通知が送信されます。復号化プロセス中にエラーが発生した場合、ユーザーに通知オプションに関係なく、すべての管理者に復号化失敗の通知がメールで送信されます。
-
ストレージを復号化ボタンをクリックし、OKをクリックして復号化プロセスを開始します。
手続きの完了に必要な時間はデータ量に依存します。暗号化プロセス中はすべてのスペースが利用できません。暗号化が終了すると、DocSpaceデータは作業可能になります。