Ubuntu Weekly Recipe

第776回UrBackupでお手軽ランサムウェア対策(Ubuntuでもイメージバックアップ編)

今回はUrBackupでUbuntuでもイメージバックアップを取る方法を紹介します。

ランサムウェア対策の重要性

ランサムウェア対策として第722回UrBackupを紹介しました。もう1年以上前のことになります。

大変残念なことに、この1年の間に具体的に大きなランサムウェアの被害が報告されています。具体的には述べませんが、大きな医療機関や業界における随一のSaaS提供業者、港を管理するシステムは大きく報道されたのでご存じの方も多いでしょう。そして報道されないだけで、さまざまな組織が大小を問わず被害に遭っています。

きっかけはネットワーク上の問題であったとして、各サーバーや端末が迅速に復旧可能であれば、心強いというものです。そこで、Ubuntuでもシステムまるごとバックアップを取得する方法を紹介することにしました。

UrBackupのおさらい

第722回ではUrBackupのインストール方法と、Windowsでのイメージバックアップ取得方法、リストア方法、Ubuntuでのファイルバックアップ方法を説明しました。UrBackupのバージョンは2.4.15でした。

イメージバックアップのいいところは、OSまるごとバックアップが取れているので復元して使用再開できるまでの時間が最短であるところです。ただし、これから詳細を述べますが、当時のUrBackup(2.4.15)ではUbuntuでのイメージバックアップは大きな制限があります。

その後まもなくリリースされたUrBackupのバージョン2.5.25からは、Linux(Ubuntu)でのイメージバックアップがサポートされました。少し間が悪かったようです。

イメージバックアップを取るための条件

Ubuntuでイメージバックアップを取るための条件は、フォーラムの書き込みによるとサーバークライアントともに2.5系列であることと、dattobdまたはDevice mapperを使用することがわかります。今回は前者を使用します。

dattobdことDatto Block Driverは、簡単に解説すればファイルシステムのスナップショットを作成するための仕組みです。なおDattoは企業名です。Dattoが自社製品のために開発した仕組みが、いろいろなところで使われているようです。

余談ですが、いくつかの派生版もあってelastio-snapはかなりアグレッシブに開発されているものの、UrBackupでの使用はうまく行ってないようです。またSynologyが自社向けNASに展開しているActive Backup for BusinessはLinux対応版もありますが、ここではsynosnapというフォーク版を採用しているようです。

dattobdの注意点としては、最新版のカーネルに対応しないことです。Ubuntu 22.04 LTSを最新の状態にアップデートするとカーネルのバージョンは6.2.0になりますが、執筆時点でのリリース版である0.11.2では5.15、開発版の0.11.3でも5.19までの対応です。

Ubuntu 22.04 LTS Serverはデフォルトでバージョン5.15のカーネルがインストールされるので特に問題ありませんが、デスクトップは前述のとおり6.2.0になるので、dattobdが使用できません。もう少し具体的には、カーネルモジュールのビルドに失敗します。

ということは、Ubuntu 22.04 LTS(デスクトップ版)でdattobdを使用する場合は、カーネルのバージョンを5.15まで落とすというリスクのあることを行わないといけません。どのようなリスクがあるのか不明な場合は、行わないほうがいいでしょう。

カーネルのバージョンを下げる方法は詳しく紹介しませんが、⁠linux-image-generic」「linux-headers-generic」パッケージをインストールして「linux-image-generic-hwe-22.04」「linux-headers-generic-hwe-22.04」パッケージと、それに依存しているパッケージを削除するのが基本です。腕に自身がない場合は、仮想マシンでテスト環境を作って試してみるといいでしょう。GRUBのメニューを表示するためには第743回も参考になります。

dattobdのビルド

dattobdはパッケージも用意も用意されていますが、パッケージを自分でビルドするのがオススメです。dattobdは比較的リリースタイミングが長いため、開発版を即試したいことになりえるのと、比較的ビルドが簡単だからです。

パッケージのビルドにはdebbuildというUbuntuのリポジトリにはないパッケージが必要なので、事前に取得しておきましょう。

debbuildをダウンロードしたフォルダーにビルド環境を作ると仮定して、次のコマンドを実行してください。

$ sudo apt install rsync git
$ sudo apt install ./debbuild_(バージョン)_all.deb
$ git clone https://github.com/datto/dattobd.git
$ cd dattobd
$ make deb

通常rsyncパッケージがインストールされていないという自体は想定しにくいのですが、何らかの事情でクリーンな環境でビルドする場合には必要なパッケージです。

ビルドしたパッケージは、pkgbuild/DEBS以下にあります。

~/dattobd/pkgbuild/DEBS$ find .
.
./all
./all/dattobd-dkms_0.11.3-1ubuntu22.04_all.deb
./amd64
./amd64/dattobd-utils_0.11.3-1ubuntu22.04_amd64.deb
./amd64/libdattobd1_0.11.3-1ubuntu22.04_amd64.deb
./amd64/libdattobd-dev_0.11.3-1ubuntu22.04_amd64.deb

このうち、3つのパッケージを、次のコマンドを参考にしてバックアップしたいUbuntuにインストールしてください。バージョンが違う場合は適宜読み替えてください。

$ sudo apt install ./all/dattobd-dkms_0.11.3-1ubuntu22.04_all.deb ./amd64/dattobd-utils_0.11.3-1ubuntu22.04_amd64.deb ./amd64/libdattobd1_0.11.3-1ubuntu22.04_amd64.deb

UrBackupサーバー

UrBackupサーバーのインストールについては、第722回ではOBSからパッケージを取得する方法を紹介しましたが、現在はPPAがありますので、こちらを利用するのが簡単です。次のコマンドを実行してください。

$ sudo add-apt-repository ppa:uroni/urbackup
$ sudo apt install urbackup-server

バックアップを置くフォルダーを指定するのは、OBSからインストールした場合と同様です。

Ubuntuでイメージバックアップを取得する

では実際にバックアップを開始しましょう。まずはバックアップしたいUbuntuでUrBackupサーバーに接続します図1⁠。

図1 UrBackupのWebメニュー
図1

「Add new client」をクリックします。そして「Add new Internet/active client」の選択を確認して下の欄に名称を入力し、⁠Add client」をクリックします図2⁠。

図2 クライアントの追加
図2

クライアントをインストールするコマンドラインが表示されるので、⁠Install it directory in the terminal via:」にある1行を端末に入力し、実行します図3⁠。

図3 クライアントをインストールするコマンドが表示される
図3

スナップショットを取得する方法を質問されるので、⁠1」を選択してください図4⁠。なおdattobdのインストールはこの前後のどちらでも構いません。換言すると、dattobdをインストールしていなくても「1」を入力してください。

図4 クライアントのインストール中にスナップショットの作成方法を質問される
図4

ただし、この状態だとクライアントの起動に失敗しています図5⁠。クライアントといいつつ、デーモンが動作しています。

図5 systemctl statusで確認すると、起動に失敗している
図5

設定が足りないからで、次のコマンドでサーバーのホスト名を追加すると起動するようになります。

$ sudo sed -i 's/internet_server=/internet_server=(サーバーのホスト名)/' /usr/local/var/urbackup/data/settings.cfg

dattobdをインストールしていなければここでインストールして、再起動するか次のコマンドを実行してください。

$ sudo systemctl restart urbackupclientbackend.service
$ sudo modprobe dattobd

UrBackupサーバーを確認し、先ほど追加したクライアントの「Online」「Yes」になっていることを確認します。この状態だと、UrBackupサーバーとクライアントが通信できています。

そしてバックアップしたいクライアントの左側にチェックを入れ、⁠Withe Selected」「Full image backup」をクリックします図6⁠。これでバックアップが開始します。

図6 バックアップを開始する
図6

バックアップは(Windowsでも同様ですが)圧縮したVHD形式です。バックアップにかかる時間は、おおむねサーバークライアント両方のPCスペックに依存します。

バックアップが完了すると、⁠Last image backup」に時間が追加され、⁠Image backup status」「Ok」になります図7⁠。

図7 バックアップが完了したところ
図7

リストア方法

リストア方法に関しては、第722回を参考にしてください。ファイル単位でリストアしたい場合は、上部の「Backups⁠⁠-⁠Computer name」にあるクライアント-表示したいバックアップをクリックします図8⁠。

図8 表示したいバックアップを選択し、詳細を表示する
図8

そしてその下部にある「Mount image」をクリックし、しばらく待つとファイル一覧が表示されます図9⁠。

図9 しばらく待つとファイル一覧が表示される
図9

なお、この機能はあまり行儀がいいといえず、ファイルシステムにマウントするもののアンマウントする機能はなく、再起動しない限りマウントしたままとなります。使用は最低限に抑えるのがいいでしょう。

おすすめ記事

記事・ニュース一覧