nixosから休止状態に切り替えてスワップを暗号化する方法はありますか?

nixosから休止状態に切り替えてスワップを暗号化する方法はありますか?

暗号化されたスワップ+休止状態を有効にする方法がありますUbuntu。 nixosで暗号化された交換を実行する方法(randomEncryption.enable = trueを使用)と休止状態で交換を実行する方法もあります。暗号通貨取引所を休止状態にする方法はありますか?

答え1

つまり、暗号化されたスワップで休止状態モードを使用するには、キーファイルを生成してからそのファイルを使用してLUKS暗号化スワップパーティションをロック解除する必要があります。これは、休止状態と互換性のないランダム暗号化キーの使用とは対照的です。

もちろん、この方法を使用するときは、キーファイルの場所が重要です。最善の方法は、ルートファイルシステムを暗号化し、ここにキーファイルを保存することです(例:/root/swap.key)。この場合、起動中にルートファイルシステムパスワードの入力を求められます。これにより、起動プロセスでキーファイルが使用可能になり、スワップLUKSコンテナのロックを解除し、デバイスをスワップデバイスに「ロック解除」できます。

説明する

メモ: この手順は、単にコピーして貼り付けることができるものではなく、一般的な手順と考えてください。

インストールメディアを起動した後...

パーティション、LUKSコンテナ、ファイルシステムを作成してマウントします。

キーファイルの生成:dd count=1 bs=512 if=/dev/urandom of=/mnt/root/swap.key

キーファイルを使用して暗号化された交換用のLUKSコンテナを作成します。

交換LUKSコンテナのロックを解除し、にフォーマットしてmkswap有効にしますswapon

引き続きNixOS設定を作成します。これまでは、通常のNixOSインストールと同じです。

キーファイルの生成:dd count=1 bs=512 if=/dev/urandom of=/mnt/root/swap.key

swapDevices設定をからに/mnt/etc/nixos/hardware-configuration.nix移動します/mnt/etc/nixos/configuration.nix。注:再実行するには、この手順を繰り返す必要がありますnixos-generate-config

swapDevices暗号化を有効にするには編集してください/mnt/etc/nixos/configuration.nix。例は次のとおりです。

swapDevices =
[ {
    device = "/dev/disk/by-uuid/..."; #This is already done for you. Leave as-is.
    encrypted = {
      enable = true;
      keyFile = "/mnt-root/root/swap.key"; #Yes, /mnt-root is correct.
      label = "..."; The name used with `cryptsetup` when unlocking the LUKS container. It can be whatever you want, ex "luksswap".
      blkDev = "/dev/disk/by-uuid/[UUID of the LUKS partition]";
    };
  }
];

を使用してLUKSパーティションのUUIDを取得できますlsblk -o name,uuid

最後nixos-rebuild bootにシステムを再起動します。再起動後、NixOSは暗号化されたスワップパーティションのロックを解除して有効にします。そうでない場合は、journalctl -b関連するエラーを確認してください。

答え2

だから私のアプローチは次のとおりです。

  1. デフォルトデバイスと同じパスワードでluksデバイスを作成します。
    sudo cryptsetup -y -v luksFormat /dev/nvme0n1p1
    
  2. 再起動してUUIDが正しく更新されたことを確認します(最初の再起動後になぜ変更されたのかわかりません)。
  3. initrdにデバイスをマウントするための設定を追加します。
    boot.initrd.luks.devices."swap".device = 
    "/dev/disk/by-uuid/936542de-2068-41b7-b804-741ec80a59c6";
    
  4. デバイスの電源が正しく入るように再起動してください。パスワードが同じ場合、luksは一度だけ尋ねられ、同じパスワードを使用するすべてのデバイスを開こうとします。
  5. 以下で取得したオープンボリュ​​ームのUUIDを使用して純粋な設定を追加しますblkid
      swapDevices =
        [{ device = "/dev/disk/by-uuid/772a37e9-c010-4942-8f3d-b7f645092b02"; }];
    
  6. 休止状態とpm-hibernate

関連情報