Linux で「Cryptsetup」ツールを使用して暗号化されたファイルシステムとスワップ領域をセットアップする方法 - パート 3
LFCE (Linux Foundation Certified Engineer の略) は訓練を受けており、Linux システムでのネットワーク サービスのインストール、管理、トラブルシューティングを行うための専門知識を備えており、システム アーキテクチャの設計、実装、および継続的なメンテナンス。
Linux Foundation 認定プログラム (LFCE) の紹介。
暗号化の背後にある考え方は、信頼できる人のみが機密データにアクセスできるようにし、マシンやハードディスクの紛失または盗難の際に機密データが不正な手に渡らないように保護することです。
簡単に言うと、キーは情報へのアクセスを「ロック」するために使用され、システムの実行中に情報が利用可能になり、承認されたユーザーがロックを解除できるようになります。これは、ユーザーがディスクの内容を調べようとすると (自分のシステムに接続するか、LiveCD/DVD/USB でマシンを起動して)、実際のファイルではなく、読み取り不能なデータしか見つからないことを意味します。
この記事では、標準のカーネル レベルの暗号化ツールであるdm-crypt (デバイス マッパーと暗号の略) を使用して暗号化されたファイル システムをセットアップする方法について説明します。 dm-crypt はブロック レベルのツールであるため、デバイス全体、パーティション、またはループ デバイスの暗号化にのみ使用できることに注意してください (通常のファイルやディレクトリでは機能しません)。
ドライブ/パーティション/ループデバイスの暗号化の準備
選択したドライブ (/dev/sdb) にあるすべてのデータを消去するため、まず、そのパーティションに含まれる重要なファイルのバックアップを前に実行する必要があります。 > さらに進みます。
/dev/sdb からすべてのデータを消去します。ここでは dd コマンドを使用しますが、shred などの他のツールを使用して実行することもできます。次に、LFCS シリーズのパート 4 – Linux でのパーティションとファイルシステムの作成の説明に従って、このデバイスにパーティション /dev/sdb1 を作成します。
dd if=/dev/urandom of=/dev/sdb bs=4096
暗号化サポートのテスト
先に進む前に、カーネルが暗号化サポートを使用してコンパイルされていることを確認する必要があります。
grep -i config_dm_crypt /boot/config-$(uname -r)
上の図で説明したように、暗号化を設定するには dm-crypt カーネル モジュールをロードする必要があります。
Cryptsetup のインストール
Cryptsetup は、dm-crypt を使用して暗号化されたファイル システムを作成、構成、アクセス、管理するためのフロントエンド インターフェイスです。
aptitude update && aptitude install cryptsetup [On Ubuntu]
yum update && yum install cryptsetup [On CentOS]
zypper refresh && zypper install cryptsetup [On openSUSE]
暗号化パーティションのセットアップ
cryptsetup のデフォルトの動作モードは LUKS (Linux Unified Key Setup) なので、そのまま使用します。まず、LUKS パーティションとパスフレーズを設定します。
cryptsetup -y luksFormat /dev/sdb1
上記のコマンドは、デフォルト パラメータを使用して cryptsetup を実行します。デフォルト パラメータは次のようにリストできます。
cryptsetup --version
暗号、ハッシュ、またはキーパラメータを変更したい場合は、–cipher、< b>–hash フラグと –key-size フラグ。それぞれ、/proc/crypto から取得した値を使用します。
次に、LUKS パーティションを開く必要があります (前に入力したパスフレーズの入力を求められます)。認証が成功すると、暗号化されたパーティションが指定された名前で /dev/mapper 内で利用可能になります。
cryptsetup luksOpen /dev/sdb1 my_encrypted_partition
次に、パーティションを ext4 としてフォーマットします。
mkfs.ext4 /dev/mapper/my_encrypted_partition
暗号化されたパーティションをマウントするためのマウント ポイントを作成します。最後に、マウント操作が成功したかどうかを確認したい場合があります。
mkdir /mnt/enc
mount /dev/mapper/my_encrypted_partition /mnt/enc
mount | grep partition
暗号化されたファイル システムへの書き込みまたは読み取りが完了したら、単にアンマウントします。
umount /mnt/enc
そして、次を使用して LUKS パーティションを閉じます。
cryptesetup luksClose my_encrypted_partition
暗号化のテスト
最後に、暗号化されたパーティションが安全かどうかを確認します。
1. LUKS パーティションを開きます
cryptsetup luksOpen /dev/sdb1 my_encrypted_partition
2. パスフレーズを入力します
3. パーティションをマウントする
mount /dev/mapper/my_encrypted_partition /mnt/enc
4. マウントポイント内にダミーファイルを作成します。
echo “This is Part 3 of a 12-article series about the LFCE certification” > /mnt/enc/testfile.txt
5. 作成したファイルにアクセスできることを確認します。
cat /mnt/enc/testfile.txt
6. ファイルシステムをアンマウントします。
umount /mnt/enc
7. LUKS パーティションを閉じます。
cryptsetup luksClose my_encrypted_partition
8. パーティションを通常のファイル システムとしてマウントしてみます。エラーを示すはずです。
mount /dev/sdb1 /mnt/enc
セキュリティを強化するためにスワップスペースを暗号化する
暗号化されたパーティションを使用するために前に入力したパスフレーズは、RAM メモリが開いている間はそのメモリに保存されます。誰かがこのキーを入手できれば、データを復号化できるでしょう。ラップトップの場合、休止状態の間 RAM の内容がスワップ パーティションに保持されるため、これは特に簡単に実行できます。
キーのコピーが窃盗者にアクセスできる状態で残されるのを防ぐには、次の手順に従ってスワップ パーティションを暗号化します。
1 スワップとして使用するパーティションを適切なサイズ (この例では /dev/sdd1) で作成し、前に説明したように暗号化します。便宜上、「swap 」という名前を付けてください。
2.スワップとして設定し、アクティブ化します。
mkswap /dev/mapper/swap
swapon /dev/mapper/swap
3. 次に、/etc/fstab 内の対応するエントリを変更します。
/dev/mapper/swap none swap sw 0 0
4. 最後に、/etc/crypttab を編集して再起動します。
swap /dev/sdd1 /dev/urandom swap
システムの起動が完了したら、スワップ領域のステータスを確認できます。
cryptsetup status swap
まとめ
この記事では、パーティションとスワップ領域を暗号化する方法について説明しました。この設定により、データはかなり安全になるはずです。ご自由にお試しください。ご質問やコメントがございましたら、お気軽にお問い合わせください。以下のフォームをご利用ください。ご意見をお待ちしております。