Я использую Ubuntu в корпоративной среде, и наша политика безопасности указывает, что мы должны использовать полное шифрование диска.
Я также получил ноутбук с mSATA SSD на 32 ГБ и 750 ГБ вращающейся ржавчины. Моя текущая установка использует bcache для усиления этого, установленное использование этой процедуры. Это обеспечивает очень желанное повышение производительности без меня имеющий необходимость волноваться о заполнении SSD.
Это будет bountied вопросом. Щедрость будет награждена за:
Уже попробовали метод за Debian Jessie выше, но он отказывается загружаться для меня. До сих пор не попробовали метод, описанный в комментариях здесь.
Отправленные решения будут протестированы на VirtualBox VM с двумя пустыми виртуальными дисками и копией выпуска 15,04 рабочих столов (amd64 выпуск). Щедрость переходит к первому решению, которое я принимаю для переустановки моих фактических аппаратных средств.
Запишите свое решение, как будто оно входило в общественную Wiki.
Я наградил щедрость - я думаю, что там является все еще потенциальным для "LUKS-on-LVM" решения, которое комбинирует простоту утвержденного ответа только в наличии одного пароля только с использованием компонентов картопостроителя устройства.
Здесь российская игра куклы немного глубже с 3 стеками/слоями...
Моя начальная идея об этом вопросе состояла в том, чтобы использовать установку Ubuntu по умолчанию с LVM на LUKS и преобразовать его в bcache отступающее устройство с блоками, но это не работало на меня на моем тесте с LVM.
Кроме того, установщик человечности (повсеместность) слишком ограничен для установки в bcache устройстве, подготовленном заранее (по крайней мере, с LUKS на LVM), таким образом, мы нейтрализация к методу выполнения вещей вручную.
Начальная загрузка в живой CD/USB и выбирает "Try Ubuntu" и открывает терминал
sudo -i
# Define some variable to avoid confusion and error
luks_part=/dev/sda3
boot=/dev/sda2 # boot partition
caching_bcache=/dev/sdb # SSD or partition in SSD
# Do secure erase of encrypted backing and caching device (see Notes [1])
dd if=/dev/urandom of=$luks_part || dd if=/dev/urandom of=$caching_bcache
# Go and grab some coffe, this will take a while...
apt-get install bcache-tools
# Setup bcache caching and backing devices
make-bcache -C $caching_bcache -B $luks_part
# (Optional) Tweak bcache
echo writeback > /sys/block/bcache0/bcache/cache_mode
# Below we now create manually what ubiquity should have done for us
# Setup LUKS device on bcache device
cryptsetup --key-size 512 luksFormat /dev/bcache0
cryptsetup luksOpen /dev/bcache0 crypted
# Setup LVM on LUKS
# You can skip that part if you don't want to use a swap
# or don't want to use multiple partition. Use /dev/mapper/crypted
# as you root latter on
pvcreate /dev/mapper/crypted
vgcreate vg /dev/mapper/crypted
lvcreate -L 1G vg -n swap
lvcreate -l 100%FREE vg -n root
Сохраните терминал открытым и теперь выполните установку. Выберите "Something else" при разделении и укажите
/dev/sda2
)/dev/mapper/vg-root
)/dev/mapper/vg-swap
)и проверьте флажок для форматирования разделов
В конце установки не перезагружайте, но просто нажимайте "Continue trying ubuntu"
В нашем открытом терминале
# Install bcache-tools to add bcache module to initramfs
mount /dev/mapper/vg-root /mnt
mount $boot /mnt/boot
mount -o bind /sys /mnt/sys
mount -o bind /proc /mnt/proc
mount -o bind /dev /mnt/dev
chroot /mnt
# To get apt-get running in the chroot
echo 'nameserver 8.8.8.8' > /run/resolvconf/resolv.conf
apt-get install bcache-tools
# Create /etc/crypttab to add crypted bcached partition
echo "crypted UUID=`blkid -o value /dev/bcache0|head -1` none luks" > /etc/crypttab
exit
sync
umount /mnt/sys
umount /mnt/proc
umount /mnt/dev
umount /mnt/boot
umount /mnt
vgchange -an /dev/mapper/crypted
cryptsetup luksClose crypted
sync
# Reboot & enjoy
Существует известная ошибка перезагрузки Ubuntu 15.04 с Живого CD/USB, таким образом, Вам, возможно, придется вызвать перезагрузку/завершение работы
После того, как загруженный, можно проверить это /dev/bcache0
на самом деле раздел LUKS с
if sudo cryptsetup isLuks /dev/bcache0; then \
echo "crypted";\
else echo "unencrypted";\
fi
Это вызвано тем, что это - кэш Вашего раздела LUKS, и Вы теперь получаете доступ к своим данным через устройство /dev/bcache0
и никогда от исходного устройства поддержки (/dev/sda3
здесь)
http://bcache.evilpiepirate.org/
https://wiki.archlinux.org/index.php/Bcache
https://wiki.archlinux.org/index.php/Dm-crypt
bcache-состояние официально не объединяется в bcache-инструменты, еще. У Вас может быть он здесь: https://gist.github.com/djwong/6343451
[1] Могли бы быть лучшие способы сделать это стирание
Установщик Ubuntu использует LVM на конфигурации LUKS, поскольку это - полное шифрование диска.
Если Вы захотите также использовать dm-кэш / lvmcache для повышения производительности, то необходимо будет поместить объединение кэша в зашифрованный том для поддержания безопасности данных.
Шаги
/etc/crypttab
Сценарий ниже обеспечивает пример и добавит зашифрованный пул кэша к существующей корневой файловой системе. Это было разработано для систем, которые использовали опцию шифрования диска по умолчанию в установщике Ubuntu - т.е.; целый диск разделен и зашифрованный, никакие пользовательские разделы и т.д.
Обратите внимание на то, что существует очень мало проверки или безопасного программирования в этом сценарии. Если это уничтожает Вашу рабочую систему, которая является Вашей ответственностью.
Звоните таким образом:
# 1 2 3 4 5 6
sudo bash lvmcryptocache /dev/sdb 32M 1968M
Параметры размера находятся по умолчанию в МБ: Вам будет нужно отношение 1:1000 пространство метаданных для кэширования пространства (например, если диск кэша составляет 180 ГБ, Вам нужны 180 МБ пространства метаданных и 179820 МБ пространства данных - можно хотеть округлить в большую сторону метаданные немного, чтобы быть осторожными. Существует нижний предел для метаданных 8M.)
Вам предложат пароль для Вашего объема кэша - Вам предложат пароли для ОБОИХ из Ваших дисков во время начальной загрузки.
#!/bin/bash # # lvmcryptocache # # Add an LVM cache pool on and attach it to the root volume # Including LUKS encryption # Assumes you are using an "all on root" setup # If you are not, adapt it if you like # # Script licensed GPL3 or later # © Adrian Wilkins May 2015 # # Pass the name of the disk device you are using as a cache # This should ideally be totally blank, so run # # dd if=/dev/zero of=/dev/${DISK} # # over it for a short while to nuke the partition table CACHE_DISK=$1 META_SIZE=$2 DATA_SIZE=$3 DISK_NAME=$(basename $CACHE_DISK) CRYPT_VOLUME=${DISK_NAME}_crypt CACHE_PV=/dev/mapper/${CRYPT_VOLUME} # Create LUKS volume in raw disk cryptsetup luksFormat $CACHE_DISK cryptsetup open --type luks $CACHE_DISK $CRYPT_VOLUME # Started to try and work out disk size stuff but it's complex # Have a go if you like, I kept running out of extents # # DISK_SIZE=$(fdisk -l | grep "Disk ${CACHE_DISK}" | awk ' { print $5 } ') # # META_SIZE=$(( DISK_SIZE / 1000 )) # META_SIZE=$(( META_SIZE + 512 )) # MOD=$(( META_SIZE % 512 )) # MOD_OFFSET=$((512 - MOD)) # META_SIZE=$((META_SIZE + 512)) # META_SIZE=$((META_SIZE + MOD_OFFSET)) # # DATA_SIZE=$(( DISK_SIZE - META_SIZE)) # # Create new PV inside encrypted volume pvcreate $CACHE_PV vgextend ubuntu-vg $CACHE_PV lvcreate -L ${META_SIZE} -n cachemeta ubuntu-vg $CACHE_PV lvcreate -L ${DATA_SIZE} -n cachedata ubuntu-vg $CACHE_PV lvconvert --type cache-pool --poolmetadata ubuntu-vg/cachemeta --cachemode writethrough ubuntu-vg/cachedata --yes lvconvert --type cache --cachepool ubuntu-vg/cachedata ubuntu-vg/root # Now add the UUID of the cache pool PHYSICAL DRIVE (/dev/sdb) to /etc/crypttab DISK_UUID=$(ls -al /dev/disk/by-uuid/ | grep $DISK_NAME | awk '{ print $9 }') echo "${CRYPT_VOLUME} UUID=${DISK_UUID} none luks,discard" >> /etc/crypttab apt-get install --yes thin-provisioning-tools HOOK=$(tempfile) # Add a hook script to initramfs to add the right tools and modules echo "#!/bin/sh" > $HOOK echo "PREREQ="lvm2"" >> $HOOK echo "prereqs()" >> $HOOK echo "{" >> $HOOK echo " echo \"$PREREQ\"" >> $HOOK echo "}" >> $HOOK echo "case $1 in" >> $HOOK echo "prereqs)" >> $HOOK echo " prereqs" >> $HOOK echo " exit 0" >> $HOOK echo " ;;" >> $HOOK echo "esac" >> $HOOK echo "if [ ! -x /usr/sbin/cache_check ]; then" >> $HOOK echo " exit 0" >> $HOOK echo "fi" >> $HOOK echo ". /usr/share/initramfs-tools/hook-functions" >> $HOOK echo "copy_exec /usr/sbin/cache_check" >> $HOOK echo "manual_add_modules dm_cache dm_cache_mq dm_persistent_data dm_bufio" >> $HOOK cp $HOOK /etc/initramfs-tools/hooks/lvmcache chmod +x /etc/initramfs-tools/hooks/lvmcache echo "dm_cache" >> /etc/initramfs-tools/modules echo "dm_cache_mq" >> /etc/initramfs-tools/modules echo "dm_persistent_data" >> /etc/initramfs-tools/modules echo "dm_bufio" >> /etc/initramfs-tools/modules # Update initramfs update-initramfs -u echo Now reboot!