Linuxで外付けハードディスクを暗号化する方法

ページ名:Linuxで外付けハードディスクを暗号化する方法

内蔵ハードディスクや外付けハードディスクを暗号化することで、個人データへの不正アクセスを防ぐことができます。Linuxでハードドライブを暗号化するのは難しいので、コマンドを順を追って説明します。

パート1

外付けハードドライブの暗号化

  1. cryptsetupがあるかどうかを確認する:ターミナルに「sudo cryptsetup --version」と入力する。バージョン番号が表示される代わりに「command not found」と表示される場合は、cryptsetupをインストールする必要がある。
    • sudoを使用する必要があることに注意。sudoを使用せずにcryptsetupを実行しようとすると、 プログラムがインストールされていても「command not found」となる。
  2. どのデバイスが接続されているかを確認する:sudo fdisk -l。
  3. 外付けハードディスクを接続する。
  4. どのデバイスが接続されているか再度確認する。sudo fdisk -lをもう一度実行し、異なる部分を探します。それが接続したハードディスクです。そのデバイス名(例:/dev/sdb)を覚えておいてください。本記事では/dev/sdXと表記します。必ず実際のパスに置き換えてください。
  5. 残しておきたいデータをバックアップする。次のステップでは、ハードディスク・ドライブからすべてのデータを消去します。
  6. 外付けハードディスク・ドライブをアンマウントします。取り外すのではなく、アンマウントするだけです。ファイルマネージャーを使うか、sudo umount /dev/sdXでアンマウントできます。
  7. ハードドライブからすべてのファイルシステムとデータを消去する。これは暗号化のセットアップには必要ありませんが、推奨されます。
    • ファイルシステムのヘッダーのみを素早く消去するには、次のようにします: sudo wipefs -a /dev/sdX
    • ハードドライブ上のすべてのデータを上書きするには、次のようにします: sudo dd if=/dev/urandom of=/dev/sdX bs=1M。プログレス・バーやその他の出力は表示されませんが、外付けハードディスク・ドライブに書き込み時に点滅するランプが付いていれば、点滅し始めるはずです。
      • 外付けハードディスク・ドライブが大きい場合は、長時間待つ必要があります。デバイスやハードディスク・ドライブにもよりますが、256GBの場合、1秒間に30MB、約2時間半かかることがあります。
      • 進捗状況を確認したい場合は、ddのプロセスIDを調べ、別のターミナルを開いてsudo kill -USR1 pid(pidはプロセスID)を使用する。これはプロセスを終了させるのではなく(-USR1パラメーターなしでkillするとそうなる)、何バイトコピーしたかを表示させるだけである。
      • sudo dd if=/dev/zero of=/dev/sdX bs=1Mを使用して、代わりにゼロで上書きすると、高速になる可能性があるが、ランダムデータで上書きするよりも多少安全性が低くなる。
  8. cryptsetupを実行する: sudo cryptsetup --verbose --verify-passphrase luksFormat /dev/sdX
    • cryptsetupは、データが取り消し不能に上書きされることを警告します。YES」と入力して上書きすることを確認し、続行する。パスフレーズを選択するよう促される。パスフレーズを選択すると、暗号化のセットアップにしばらく時間がかかる。
    • cryptsetup が既存のパーティションについて警告する場合(WARNING: Device /dev/sdX contains already ...... partition signature という形式のメッセージ)、既存のファイルシステムを適切に消去していません。ファイルシステムとデータを消去するステップを参照すべきですが、警告を無視して続行することも可能です。
  9. 暗号化パーティションを開く: sudo cryptsetup luksOpen /dev/sdX sdX (sdX を先ほどセットアップした暗号化パーティションに置き換えます)。
    • パスフレーズの入力を求められます。前のステップで選んだパスフレーズを入力します。
  10. 暗号化パーティションがどこにマッピングされているか確認してください。通常は /dev/mapper/sdX ですが、sudo fdisk -l で再確認してください。
  11. 暗号化されたパーティションに新しいファイルシステムを作成します。暗号化をセットアップすることで、以前存在したものは消去されます。コマンドを使います: sudo mkfs.ext4 /dev/mapper/sdX
    • dev/mapper/sdX を指定することが重要です。dev/sdXを指定すると、暗号化されていないEXT4パーティションとしてフォーマットされます。
    • sudo mkfs.ext4 -L MyEncryptedDisk /dev/mapper/sdX のように、-L オプションでファイルシステムにラベルを付けることができます。
  12. 予約領域を削除する。デフォルトでは、いくつかのスペースが予約されていますが、ハードドライブからシステムを実行するつもりがない場合は、ハードドライブに少し広いスペースを確保するためにそれを削除することができます。 コマンドを使用します: sudo tune2fs -m 0 /dev/mapper/sdX
  13. 暗号化されたデバイスを閉じる: sudo cryptsetup luksClose sdX
    • これで外付けハードドライブを安全に取り外すことができます。外付けハードドライブを再び開いて使用する方法については、「暗号化された外付けハードドライブを開く」を参照してください。
パート2

暗号化された外付ハードディスク・ドライブを開く

  1. 外付ハードディスク・ドライブを接続します。
  2. プロンプトが表示されるまで待ちます。システムによっては、自動的にパスフレーズの入力を求められます。パスフレーズを正しく入力すると、デバイスがマウントされます。
  3. プロンプトが開かない場合は、手動でドライブをマウントする。
    • デバイス名を検索する: lsblk
    • 初めてマウントする場合は、マウントするディレクトリを作成します。例えば、sudo mkdir /mnt/encrypted。そうでなければ、以前作成したディレクトリを使います。
    • 暗号化パーティションを開く: sudo cryptsetup luksOpen /dev/sdX sdX
    • 暗号化パーティションをマウントする: sudo mount /dev/mapper/sdX /mnt/encrypted
  4. 初めてドライブをマウントする場合は、パーミッションを調整してください。初めてドライブをマウントする場合、ドライブへの書き込みにはsudoが必要です。これを変更するには、そのフォルダの所有権を現在のユーザーに移します: sudo chown -R `whoami`:users /mnt/encrypted
    • ハードドライブが自動的にマウントされた場合は、lsblkを使ってマウントされた場所を調べることができます。多くの場合、以下のようなパスにあります:/メディア/ユーザー名/ドライブラベル
  5. ハードドライブを使う。暗号化されたハードドライブを他のハードドライブと同じように使用することができます。
  6. 暗号化されたハードドライブをアンマウントしてください。これは安全に切断するために必要です。ファイルマネージャやターミナルから行うことができます:
    • 暗号化パーティションをアンマウントする: sudo umount /mnt/encrypted
    • 暗号化パーティションを閉じる: sudo cryptsetup luksClose sdX
      • Device sdX is not active. "というエラーメッセージが表示される場合、暗号化パーティションは別の名前でオープンされています(手動でマウントする代わりにプロンプトでパスフレーズを入力した場合などに起こりえます)。lsblk コマンドで見つけることができます。cryptタイプのエントリーを探してください。
この記事は、CC BY-NC-SAの下で公開された「 How to Encrypt an External Hard Drive on Linux 」を改変して作成されました。特に断りのない限り、CC BY-NC-SAの下で利用可能です。

シェアボタン: このページをSNSに投稿するのに便利です。

コメント

返信元返信をやめる

※ 悪質なユーザーの書き込みは制限します。

最新を表示する

NG表示方式

NGID一覧