web-dev-qa-db-ja.com

暗号化されたファイルシステム(その全部または一部)を使用してWebサーバーを実行する

ファイルシステムの一部または全体を暗号化(#4)して、ヘッドレスモード(#3)でサービス(#2)として実行されている仮想マシン(#1)内で実行されているWebサーバー(LAMP)が必要です。

仮想マシンはユーザーの介入なしに起動され、ホストマシンのユーザーにWebアプリケーションへのアクセスを提供します。ポイント#1、#2、#3がチェックされ、Sun VirtualBoxで正常に機能していることが証明されたので、私の質問は#4です。

すべてのファイルシステムを暗号化しても(ブラウザを使用して)Webサーバーにアクセスできますか、それともGRUBパスワードを要求されますか?)

すべてのファイルシステムを暗号化するオプションがない場合、/home/var/wwwのみを暗号化できますか? Apache/PHPは、パスワードを要求したり、これらのパーティションを手動でマウントしたりせずに、/homeまたは/var/wwwのファイルを使用できますか?

7
user36159

フルディスク暗号化が必要な場合は、ブートフェーズ中にパスワードを入力する必要がありますが、これはおそらく必要なものではありません。 luksを使用して暗号化されたパーティションを作成し、そのパーティションにすべての適切なデータを配置することをお勧めします。マシンが起動したら、ボックスにSSHで接続して、パーティションのロックを解除できます。

暗号化の方法については、非常に簡単です。

  • 必要に応じてパーティションを作成します
  • Luksでパーティションをフォーマットします。

    cryptsetup -c twofish -y luksFormat /dev/sda4
    
  • Luksでパーティションのロックを解除します。

    cryptsetup luksOpen /dev/sda4 encwww
    
  • 暗号化されたパーティションを任意のfsでフォーマットします。

    mkfs.ext3 /dev/mapper/encwww
    
  • これで完了です。/dev/mapper/encwwwをマウントできます。

再起動後にパーティションのロックを再度解除するには、次の手順を実行する必要があります。

cryptsetup luksOpen /dev/sda4 encwww

次に、パーティションをマウントします。

11
Tim Schumacher

cryptsetupとdm-cryptはstandard-linux-distributionsでは利用できず、非常にエキゾチックなソリューションです。通常の方法で試してみてください。

modprobe loop
modprobe cryptoloop
modprobe aes

dd if=/dev/urandom of=/yourContainerFile bs=`expr 1024 \* 1024 \* 1024` count=yourSizeInGigaBytes

losetup -e aes-256 /dev/loop0 /yourContainerFile

mkfs.ext3 /dev/loop0

これで、/ dev/loop0を好きな場所にマウントする準備が整いました。強力な暗号化が正しく行われ、 @bootに接続する必要があるUSBスティックから暗号化キーを読み取れるようにfstabを構成することもできます...はるかに柔軟で安全です->「twofish」を使用するガイドには絶対に従わないでくださいまたは暗号化に似たもの...このアルゴリズムはまだ完全には分析されておらず、安全かどうかは誰にもわかりません。

ああ、:秘密機関の範囲と力を超えたセキュリティが必要な場合:使用

/dev/random

代わりに。 Linuxのエントロピー収集デーモンは、統計的に「適切な」値を提供しますが、非常に低速です。

そして、あなたが本当に妄想的であるならば、宇宙背景放射を受信して​​測定することができるデバイスを自分で購入し、それをあなたのコンピュータに接続して、それをwrite to/dev/random :-D

2
specializt