6

Мне нужен веб-сервер (LAMP), работающий внутри виртуальной машины (# 1), работающей в качестве службы (# 2) в режиме без заголовка (# 3) с зашифрованной частью или всей файловой системой (# 4).

Виртуальная машина будет запущена без вмешательства пользователя и предоставит доступ к веб-приложению для пользователей на хост-машине. Точки № 1, № 2 и № 3 проверены и работают нормально с Sun VirtualBox, поэтому мой вопрос к № 4:

Могу ли я зашифровать всю файловую систему и по-прежнему получать доступ к веб-серверу (используя браузер), или GRUB запросит у меня пароль?

Если шифрование всей файловой системы не вариант, могу ли я шифровать только /home и /var/www? Сможет ли Apache/PHP использовать файлы в /home или /var/www не запрашивая пароль или не монтируя эти разделы вручную?

2 ответа2

11

Если вам нужно полное шифрование диска, вы должны ввести пароль во время начальной загрузки, что, вероятно, не то, что вам нужно. Я бы порекомендовал вам создать зашифрованный раздел, используя 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

а затем смонтировать раздел.

1

cryptsetup и dm-crypt недоступны в стандартных дистрибутивах linux, и это довольно экзотическое решение, вы должны попытаться сделать это обычным способом:

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 где угодно - надежное шифрование, все сделано правильно; Вы даже можете настроить свой fstab таким образом, чтобы ключ шифрования можно было прочитать с USB-карты, которую нужно подключить к @ boot ... более гибко и безопасно -> Никогда не следуйте инструкциям, которые используют "twofish" или что-то подобное шифрованию ... этот алгоритм еще не полностью проанализирован, никто не знает, безопасен ли он.

О и: если вы хотите, чтобы безопасность выходила за рамки и возможности секретных агентств: используйте

/dev/random

вместо. Демон сбора энтропии в Linux выдает статистически "хорошие" значения, но он очень медленный.

А если вы действительно параноик, купите себе устройство, способное принимать и измерять космическое фоновое излучение, подключить его к компьютеру и разрешить запись в /dev /random :-D

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .