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


15

2017警告!受け入れられた答えは機能しているように見えますが、最近のカーネルでは、システムがスワッピングを開始するとすぐにハングすることがわかりました。暗号化されたスワップファイルを使用する場合は、実際に正しくスワップされることを確認してください。明らかな理由もなくシステムがロックし続ける理由を理解するのに長い時間がかかりました。正しく機能する暗号化されたスワップパーティションの使用に戻りました。


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

ディスクへのサスペンドのサポートは必要ないので、ブートごとにランダムキーを使用したいと思います。

既にデータにTrueCryptファイルホストボリュームを使用していますが、そのボリュームにスワップを入れたくありません。より良い解決策があれば、スワップファイルにTrueCryptを使用するつもりはありません。

それが重要な場合、デフォルトのカーネルでArch Linuxを使用しています。


そのポイントは正確に何でしょうか?使用中に復号化する必要があり、使用しない場合は空になります。
tkbx

1
encrypted swapfile最初の結果を検索すると、rayslinux.blogspot.de
2011/01 /…に

@ottは、タイトルで「スワップファイル」と言っているにも関わらず、その投稿の指示を読むと、スワップパーティションを明確に説明している。
cjm

@tkbx、ポイントは、私がコンピューターの電源を切った後、誰かがスワップファイルから機密データを回復するのを防ぐことです。(または誰かが私のパスワードを推測できなかったため、ライブCDなどで再起動しています。)
cjm

2
@tkbx、私はそうは思わない。それには、コンピューターの電源を切るたびにギガバイトのデータを書き込む必要があります。スワップファイル内のデータは、再起動時には使用されませんが、ディスクから消去されるわけではありません。
cjm

回答:


14

実際、このページではパーティションのセットアップについて説明していますが、スワップファイルの場合も同様です。

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は実パーティションです。


loop-AES.READMEは、セクション7.1で次のように述べています。「ファイルバックアップループはスワップに使用できません。」それは真実ではありませんか(またはループAESに対してのみ真実ですか)。
cjm

デバイスマッパーがありません。
ott--

私はあなたのcryptsetupコマンドを使用して改定openの代わりにcreate(manページが時代遅れであると言います)、および代わりに、パスワードの入力を求めるのランダムなキーを使用します。動作しているようです。
cjm

これは再起動時に持続しないようです:「swapon:/ dev / mapper /
swapfileを開け

5

この構成では、起動時にランダムに生成されたキーを使用し、ハードディスクへの休止状態をサポートしません!尊敬するDE電源管理ユーティリティを使用してハイバネーションを無効にし、データの損失を防ぐために「緊急時にシャットダウン」に設定する必要があります!

必ず以下を実行sudo -sするsu前に実行してください。

  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
    

1

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

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

man mkswapおよびman swaponを参照してください。


...私はそのような私の暗号化されたホームディレクトリに、このようなスワップファイルを作成してみました、そして、それは暗号化されたスワップファイルが行ったよう墜落
fifaltra

ホームディレクトリは、システム起動時またはログイン時にロック解除されていますか?ログイン時にのみロックが解除される場合は、スワップファイルをそこに入れることはできません。スワップはロックを解除し、システムの起動時に使用可能にする必要があります。それに加えて、ユーザーのホームディレクトリにシステムを配置する必要はありません。それはユーザーのもののために予約されています。
澪凛
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.