2026年6月16日
2026年6月16日
サーバーのディスクを暗号化する方法(LUKS)
はじめに
サーバーのディスク暗号化は、データ漏洩や不正アクセスを防ぐ上で重要です。LUKS(Linux Unified Key Setup)を使用すると、物理的なアクセスが制限されない限り、デジタル的かつ物理的なセキュリティを強化できます。この記事では、基本から応用まで、サーバーのディスクをLUKSで暗号化する手順について詳しく解説します。
症状・背景
このテーマが必要になる主な場面は以下の通りです:
- データ保護: 顧客情報や機密情報を含むサーバーが不正アクセスに遭った場合
- コンプライアンス: 法令や業界規制によりデータ暗号化が求められるケース
- 物理セキュリティ: サーバーの物理的な持ち出しを防止するため
手順・設定方法
ステップ1: ユニットキーとパーティション作成
# インストールが必要な場合は実行
sudo apt-get install cryptsetup
# ディスクまたはパーティションを指定(例:/dev/sdb)
sudo cryptsetup luksFormat /dev/sdb
# パスフレーズの入力が要求されます。適切なパスフレーズを選択し、入力してください。
ステップ2: ユニットキーのマウントと設定
# シャドウパスフレーズを作成(オプション)
sudo cryptsetup luksAddKey /dev/sdb
# パスフレーズを追加し、再度マウントを行います。
ステップ3: ユニットキーのマウント設定とファイルシステム作成
# ディスクのマウントポイントを作成します(例:/mnt/cryptodisk)
sudo mkdir /mnt/cryptodisk
# 暗号化されたパーティションをマウントします。
sudo cryptsetup open /dev/sdb cryptodisk
# 新しいファイルシステムを構築します(例:ext4)。
sudo mkfs.ext4 /dev/mapper/cryptodisk
ステップ4: マウント設定の永続化と実践的な使用
# 暗号化されたパーティションとマウントポイントをファイルシステムテーブルに追加します。
echo "/dev/mapper/cryptodisk /mnt/cryptodisk ext4 defaults 0 2" | sudo tee -a /etc/fstab > /dev/null
# サーバーの再起動後に自動でマウントされるように設定します。
sudo mount -a
注意事項
- パスフレーズ管理: パスフレーズは安全な場所に保管し、失われるとデータが復元不可能になる可能性があります。
- パフォーマンスへの影響: 暗号化/非暗号化処理により、I/O性能がわずかに低下する場合があります。
- セキュリティ上の注意: パスフレーズは長さと複雑性を考慮し、定期的に更新することをお勧めします。
- バックアップ: 暗号化前のデータバックアップを作成し、必要な場合は復元用に保全することが重要です。
まとめ
1. LUKSのインストール: 必要なパッケージをインストールします。
2. ユニットキーの設定: ディスクまたはパーティションを暗号化するためにパスフレーズを作成します。
3. マウントポイントとファイルシステム作成: パーティションをマウントポイントにマウントし、必要なファイルシステムを作成します。
4. 永続的なマウント設定: /etc/fstab に記述することで、再起動時に自動的に暗号化されたディスクがマウントされます。
関連記事: