他のサーバーのキーを使用して起動時に暗号化されたLVMを自動的にマウントする

他のサーバーのキーを使用して起動時に暗号化されたLVMを自動的にマウントする

暗号化されたパーティションとネットワーク上の他のサーバーに格納されているキーファイルを使用して、Linuxサーバー上のデータを物理的な盗難から保護したいと思います。他のサーバーは実際に私のルーターです。非常に小さく、サーバーと物理的な場所が異なり、SSH経由でアクセスできます。

誰かがある場所からサーバーを盗み、2番目の場所に侵入してルーターを見つけて盗んだ後、同じネットワークに設定することはほとんどないと思います。つまり、私のサーバーが自分のネットワークに接続されている限り、常に再起動してすべてのサービスを開始しますが、私の重要なデータが建物から出ると保護されます。

開始順序は次のようになります。

  • 暗号化されていない論理パーティション(など)の/マウント/var/tmp
  • ネットワーキング開始
  • SSH経由で別のサーバーからキーを取得する
  • 暗号化された物理パーティションのロック解除
  • 暗号化された論理パーティションのマウント(/homeなど/opt
  • Dockerなどの暗号化されたパーティションを使用するように構成された別のサービスを開始します。

キーを取得するためのスクリプトを挿入するためにLVM /暗号化された起動シーケンスを接続する方法、またはその手順の前にネットワークが起動するように起動シーケンスを変更する方法がわかりません。

Linuxシステムのrootユーザーは、パスワードなしでSSHを実行できるようにルーターにSSHキーを設定します。

PASSPHRASE=$(ssh router cat /config/disk-passphrase.txt)
cryptsetup luksOpen /dev/sda6 sda6_crypt <<< $PASSPHRASE

必要に応じて変更する意向がありますが、これまでのディスクレイアウトは次のとおりです。

NAME                         FSTYPE    LABEL UUID                                   MOUNTPOINT
sda
├─sda2
├─sda5                       LVM2_memb       fjRt18-XKFm-z3RN-1D7t-zkuw-sMal-KyOZ6Z
│ ├─garage--main--vg-tmp     ext4            e90a6186-bf09-41f7-b8bc-392e0fba2207   /tmp
│ ├─garage--main--vg-var     ext4            ee878d29-3b44-463f-adba-083155ea29da   /var
│ └─garage--main--vg-root    ext4            f4fa0962-3c2c-456c-9ee0-84c47d6c12c9   /
├─sda1                       ext4            60d06dea-a07b-4af3-bf30-70fa3f82267d   /boot
└─sda6                       crypto_LU       31b7b643-188c-4ae9-bac6-75316b37d562
  └─sda6_crypt               LVM2_memb       ynUOJB-iRsP-djql-Tzrl-nfHh-Smga-ji4OcT
    ├─garage--enc--vg-opt    ext4            2f149989-f64c-4cab-8a47-fea80ebf4c8e   /opt
    ├─garage--enc--vg-swap_0 swap            bab96476-7209-42c7-9f2a-113dd5c4da67   [SWAP]
    └─garage--enc--vg-home   ext4            c73b9432-ec32-412c-baa4-1329adef9c56   /home

関連情報