背景
クライアントには、外部ドライブの自動バックアップソリューション(毎週実行)が必要でした。通常お勧めしますスナップ写真(またはカスタムスクリプトをリリースすることもできますがrsync
)問題はもう少し複雑です。
Arch Linuxベースのシステム首のないしたがって、解決策は次のとおりです。いっぱい自動化され、ユーザーの介入は必要ありません。
理想的な状況は次のとおりです。
- ユーザーがUSBハードドライブを挿入します。
- 完全増分バックアップの作成
- ハードドライブがマウント解除されました。
- ハードドライブを取り外すことができることをユーザーに通知します。
提案
私が提案した解決策は次のとおりです。
udev
ルールドライバの自動インストールバックアップは次から始まります。
- 同じルールもスクリプトを
udev
トリガーします。rsnapshot
- 一つinotify 作るイベントは新しいマウントポイントを検出して実行されます。
rsnapshot
- 同じルールもスクリプトを
rsnapshot
シャットダウン後にumount
ドライブで実行削除の準備ができたことをハードドライブに通知する方法は次のとおりです。
- CDドライブが開いている
- PCスピーカーで音を再生
いつでもエラーが発生した場合は、ユーザーに電子メールを送信してドライブをマウント解除してください。
質問
- 私の提案は実現可能に見えますが、明らかな欠陥はありますか?どうすれば丈夫にできますか?
- セキュリティ上の理由から、挿入されたハードドライブがユーザーのものであることをどのように確認できますか?
ssh
キー?ドライブラベル? - 既存の(Linux)ソリューションにこれが含まれていますか?
答え1
しかし、あなたのソリューションは比較的適しているようです。
rsnapshot
スクリプトがブロックデバイスに関する知識を想定していないことを確認してください。理想的には、破損を防ぐためにUUIDまたはラベルでファイルシステムを指定するのが最善です。- タイムアウトを追加します。これにより、私たちが認識しない問題が発生した場合、またはスクリプトが完了しない問題が発生した場合は、無制限に続行するのではなくエラーとして扱うことができます。
- 最後に、「いつでもエラーが発生した場合は、ユーザーに電子メールを送信してドライブをマウント解除してください」と述べます。ドライブをマウント解除できない場合、またはマウント解除に失敗した場合はどうなりますか?メールが失敗した場合はどうなりますか?システムに安全装置を構築します。
- デフォルトセキュリティの場合、UUIDは問題ありませんが(攻撃者がUUIDを知らない場合)、セキュリティに興味がある場合は、MBRのコード領域(バイト0〜440)にいくつかのデータを書き込むことを検討し、最初にバックアップする前にスクリプトを確認してください。この方法はあいまいなので、他の方法よりも安全ですが、この場合は使いやすい優れた方法はありません。ただし、よく知りたい場合は、ディスクに保存されている暗号化証明書を分析して、ドライブが認証されていることを確認できます。
udev
ドライブが検出されると、スクリプトはそのキーを使用して証明書を復号化します。証明書には、ドライブのシリアル番号、モデル、容量などのドライブに関連するパラメータが含まれています。その後、暗号化された証明書から抽出されたパラメータは、ドライブの分析時に表示されるパラメータと比較されます。パラメータが一致した場合、ドライブは物理であると判断され、そうでなければドライブは拒否され、スクリプトは終了します。
この範囲に属するいくつかの既存のLinuxソリューションがありますが、特定の要件に応じて他のプログラムのソースコードを操作して目的のタスクを実行するよりもカスタムソリューションを作成する方が良いと思います。
MBRのコード領域(次に確認できます)にランダムなデータを書き込むには、同様の作業を行いますdd if=/dev/urandom of=/dev/sdX bs=440 count=1
。