Linuxで暗号化されたスワップファイルを設定するには?

Linuxで暗号化されたスワップファイルを設定するには?

2017警告!許可された答えはうまくいくようですが、最近のカーネルでは、システムがスワップを開始するとすぐに中断されることがわかりました。暗号化されたスワップファイルを使用する場合は、実際に正しくスワップされていることを確認してください。システムが理由なく継続的に停止する理由を特定するのに長い時間がかかりました。暗号化されたスワップパーティションを使用して戻ってきたので、正常に動作します。


Linuxで暗号化されたスワップファイル(パーティションではない)を設定するには?可能ですか?私が見つけたすべてのガイドでは、スワップパーティションの暗号化について説明していますが、スワップパーティションがなく、ディスクを再パーティションしたくありません。

ディスクの一時停止のサポートは必要ないので、起動するたびに任意のキーを使用したいと思います。

すでに使っています。真の秘密私のデータ用のファイルホスティングボリュームですが、そのボリュームにスワップを入れたくありません。より良い解決策がある場合は、TrueCryptを使用してファイルを交換しません。

私はそれを使用していますアーキテクチャLinux重要な場合は、デフォルトのカーネルを使用してください。

答え1

もちろん、このページパーティション設定について説明していますが、スワップファイルに似ています。

dd if=/dev/urandom of=swapfile.crypt bs=1M count=64
loop=$(losetup -f)
losetup ${loop} swapfile.crypt
cryptsetup open --type plain --key-file /dev/urandom ${loop} swapfile
mkswap /dev/mapper/swapfile
swapon /dev/mapper/swapfile

結果:

# swapon -s
Filename                                Type            Size    Used    Priority
/dev/mapper/swap0                       partition       4000176 0       -1
/dev/mapper/swap1                       partition       2000084 0       -2
/dev/mapper/swapfile                    partition       65528   0       -3

swap0とswap1は物理パーティションです。

答え2

この設定は起動時にランダムに生成されたキーを使用し、ハードドライブの休止状態をサポートしません。データ損失を防ぐために、DE電源管理ユーティリティを使用して休止状態を無効にして終了するには、重要に設定する必要があります。

次のコマンドを実行する前に、またはを実行してくださいsudo -ssu

  1. スワップを無効にします。

    # swapoff -a
    
  2. 既存のスワップパーティションの検索

    # lsblk
    

    あなたは次のようなものを得るでしょう:

    sda3    8:3    0     8G  0 part [SWAP]
    
  3. 以前のスワップを上書き

    # dd if=/dev/zero bs=1024000 of=/dev/sda<#>
    

    たとえば、

    # dd if=/dev/zero bs=1024000 of=/dev/sda3
    
  4. fstab設定

    # vim /etc/fstab
    

    古い SWAP デバイスを crypttab マッパー名に置き換えます。/dev/mapper/cswap

    #<file system>      <mount point>   <type>  <options>   <dump>  <pass>
    /dev/mapper/cswap   none            swap    pri=1,defaults  0   0
    
  5. 暗号化設定

    # ls -lF /dev/disk/by-id
    

    たとえば、

    ata-HGST_HTS545050A7E680_TEK55D4F0BU3GV-part3 -> ../../sda3
    
    # vim /etc/crypttab
    
    # <name>    <device>                            <password>  <options>
      cswap     /dev/disk/by-id/ata-HGST_HTS545050A7E680_TEK55D4F0BU3GV-part3   /dev/urandom    swap,cipher=aes-cbc-essiv:sha256,size=256
    
  6. アクティブな暗号通貨取引所

    # reboot
    
  7. 暗号化された交換操作の確認

    たとえば、

    # dmsetup -C info 
    cswap      253   0 L--w    2    1      0 CRYPT-PLAIN-cswap  
    # lsblk
    ├─sda3                8:3    0     8G  0 part  
    │ └─cswap             253:0    0     8G  0 crypt [SWAP]
    # cat /proc/swaps 
    Filename                Type        Size    Used    Priority
    /dev/dm-0               partition   8385532 0       -1
    

答え3

dd if=/dev/zero of=/swapfile bs=8G count=1、およびをmkswap /swapfile使用する場合は、swapon /swapfileルートファイルシステムで使用できるスワップファイルが必要です。 (ddスワップファイルに穴がないことを確認するためにこれを使用します)

これにより、ループデバイスおよび/またはcrypttabを台無しにする必要がなくなり、スワップファイルをすでに暗号化されたファイルシステムに配置するだけです。 (ここではドライブ全体で暗号化を使用しているとします。/swapfile暗号化ディレクトリが別の場所にある場合は、パラメータの前に暗号化ディレクトリパスを追加します。)

詳しく見て知っman mkswapてくださいman swapon

関連情報