GNU/Linux >> Linux の 問題 >  >> Linux

Linuxで暗号化されたディスクのロックを自動的に解除する

セキュリティの観点から、機密データを暗号化して、詮索好きな目やハッカーから保護することが重要です。 Linux Unified Key Setup(LUKS)は、Linuxディスク暗号化の優れたツールであり一般的な標準です。関連するすべてのセットアップ情報がパーティションヘッダーに保存されるため、データの移行が容易になります。

LUKSで暗号化されたディスクまたはパーティションを設定するには、cryptsetupユーティリティを使用する必要があります。残念ながら、ディスクを暗号化することの欠点の1つは、システムを再起動するか、ディスクを再マウントするたびに、手動でパスワードを入力する必要があることです。

その他のLinuxリソース

  • Linuxコマンドのチートシート
  • 高度なLinuxコマンドのチートシート
  • 無料のオンラインコース:RHELの技術概要
  • Linuxネットワーキングのチートシート
  • SELinuxチートシート
  • Linuxの一般的なコマンドのチートシート
  • Linuxコンテナとは何ですか?
  • 最新のLinux記事

ただし、ネットワークバウンドディスク暗号化(NBDE)は、ユーザーの介入なしに暗号化されたディスクのロックを自動的かつ安全に解除できます。これは、Red Hat Enterprise Linux 7.4、CentOS 7.4、Fedora 24以降のいくつかのLinuxディストリビューション、およびそれぞれのそれ以降のバージョンで利用できます。

NBDEは、次のテクノロジーで実装されています。

  • クレビスフレームワーク: LUKSボリュームを自動的に復号化してロック解除するプラグイン可能なフレームワークツール
  • 唐サーバー: 暗号化キーをネットワークプレゼンスにバインドするためのサービス

Tangは、Clevisクライアントに暗号化キーを提供します。 Tangの開発者によると、これはキーエスクローサービスに代わる安全でステートレスな匿名の代替手段を提供します。

NBDEはクライアントサーバーアーキテクチャを使用するため、クライアントとサーバーの両方を構成する必要があります。 Tangサーバー用にローカルネットワーク上の仮想マシンを使用できます。

サーバーのインストール

sudoを使用してTangをインストールします:

sudo yum install tang -y

Tangサーバーを有効にします:

sudo systemctl enable tangd.socket --now

Tangサーバーはポート80で動作するため、firewalldに追加する必要があります。適切なfirewalldルールを追加します:

sudo  firewall-cmd --add-port=tcp/80 --perm
sudo firewall-cmd --reload

これでサーバーがインストールされます。

クライアントのインストール

この例では、/dev/vdcという名前の新しい1GBディスクを追加したと仮定します。 システムに。

fdiskまたはpartedを使用してプライマリパーティションを作成します:

sudo fdisk /dev/vdc

次の手順を実行して、クライアントをインストールします。

Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0x4a6812d4.

Command (m for help):

nと入力します 新しいパーティションを作成するには:

Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended  
Select (default p):

Enterを押します プライマリパーティションを選択するためのキー:

Using default response p
Partition number (1-4, default 1):

Enterを押します キーを押してデフォルトのパーティション番号を選択します:

First sector (2048-2097151, default 2048): 
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-2097151, default 2097151):

Enterを押します 最後のセクターを選択するためのキー:

Using default value 2097151
Partition 1 of type Linux and of size 1023 MiB is set

Command (m for help): wq

wqと入力します 変更を保存してfdiskを終了するには:

The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

partprobeを実行します パーティションテーブルの変更をシステムに通知するには:

sudo partprobe

sudoを使用してcryptsetupパッケージをインストールします:

sudo yum install cryptsetup -y

cryptsetup luksFormatを使用します ディスクを暗号化するコマンド。 はいと入力する必要があります プロンプトが表示されたら、ディスクを暗号化するためのパスフレーズを選択して入力します。

sudo cryptsetup luksFormat /dev/vdc1
WARNING!
========
This will overwrite data on /dev/vdc1 irrevocably.

Are you sure? (Type uppercase yes):

Enter passphrase for /dev/vdc1:
Verify passphrase:

cryptsetup luksOpenを使用します 暗号化されたパーティションを論理デバイスにマップするコマンド。たとえば、encryptedvdc1を使用します 名前として。また、パスフレーズをもう一度入力する必要があります:

sudo cryptsetup luksOpen /dev/vdc1 encryptedvdc1
Enter passphrase for /dev/vdc1:

暗号化されたパーティションは、/dev/mapper/encryptedvdc1で利用できるようになりました。 。

暗号化されたパーティションにXFSファイルシステムを作成します:

sudo mkfs.xfs /dev/mapper/encryptedvdc1

暗号化されたパーティションをマウントするためのディレクトリを作成します:

sudo mkdir /encrypted

cryptsetup luksCloseを使用します パーティションをロックするコマンド:

cryptsetup luksClose encryptedvdc1

sudoを使用してクレビスパッケージをインストールします:

sudo yum install clevis clevis-luks clevis-dracut -y

/ etc / crypttabを変更して、起動時に暗号化されたボリュームを開きます:

sudo vim /etc/crypttab

次の行を追加します:

encryptedvdc1       /dev/vdc1  none   _netdev

/ etc / fstabを変更して、再起動中または起動時に暗号化されたボリュームを自動的にマウントします。

sudo vim /etc/fstab

次の行を追加します:

/dev/mapper/encryptedvdc1   /encrypted       xfs    _netdev        1 2

この例では、TangサーバーのIPアドレスが192.168.1.20であると想定しています。 。必要に応じて、ホスト名またはドメインを使用することもできます。

次のclevisを実行します コマンド:

sudo clevis bind luks -d /dev/vdc1 tang '{"url":"http://192.168.1.20"}'
The advertisement contains the following signing keys:

rwA2BAITfYLuyNiIeYUMBzkhk7M

Do you wish to trust these keys? [ynYN] Y
Enter existing LUKS password:

Yと入力します Tangサーバーのキーを受け入れ、初期セットアップ用の既存のLUKSパスワードを提供します。

ルート以外のパーティションのパスフレーズの入力を求められないようにするには、systemctlを介してclevis-luks-askpass.pathを有効にします。

sudo systemctl enable clevis-luks-askpass.path

クライアントがインストールされます。これで、サーバーを再起動するたびに、Tangサーバーからキーを取得することで、暗号化されたディスクが自動的に復号化されてマウントされるようになります。

なんらかの理由でTangサーバーが利用できない場合は、パーティションを復号化してマウントするために、パスフレーズを手動で提供する必要があります。


Linux
  1. 組み込みLinuxでリカバリパーティションを作成しますか?

  2. Linuxクラウドサーバーでデータディスクを準備する

  3. Linux で Windows スパン ディスク (LDM) を復元しますか?

  1. Linuxでディスクをパーティション分割する方法

  2. Linuxでスワップパーティションを管理する方法

  3. GNU/Linux でパーティションを移動するには?

  1. Linux でコマンドを自動的に繰り返す

  2. データを保持しながら Linux の既存のパーティションを暗号化する

  3. 単一のパスフレーズを使用して、起動時に複数の暗号化ディスクのロックを解除する