Продължи към съдържанието

Малки HOWTO-та

Encryption mini-HOWTO

Това е леко променена версия на предишна публикация, обясняваща как се криптира домашната директория. Обясненията са специфични за Linux. В края съм сложил някои полезни връзки, включително такива, които обясняват как се прави същото под Windows с Truecrypt. В MacOS 10.3 и по-нови има FileVault.

На всички места, където се появява потребител, заместете със съответното потребителско име (gosho, pesho,…). Аналогично заместете /dev/sdXY, /dev/hdXY с истинските имена на използваните устройства.

I. Архивиране. Направете си архив на всички важни файлове. На практика това е най-важната част от целия процес.

II. Криптиране на домашната директория. Създайте дял на диска с подходяща големина. За целта има fdisk, cfdisk, sfdisk, parted и т.н. Инсталирайте си пакетите cryptsetup и/или cryptsetup-luks. Добавете потребител в групата wheel. Редактирайте съответно /etc/sudoers с visudo. Ако дадете право на потребител да изпълнява всички команди без да иска паролата на root, уверете се, че потребител-ската парола е сигурна.После от конзолата:

su -

cd /

# Изтрива всичко от дяла и го запълва с произволни данни.
# Операцията се повтаря 5 пъти, макар че за по-голяма
# сигурност е препоръчително 25-30 пъти. Може да отнеме доста
# време.
shred -n 5 /dev/sdXY

# Криптира дяла с избран симетричен шифър. AES256 е доволно
# сигурен.
cryptsetup -c aes-cbc-essiv:sha256 -s 256 luksFormat /dev/sdXY
cryptsetup luksOpen /dev/sdXY encdev

# Създава файлова система в/у криптирания дял и я прави
# достъпна за запис.
mkfs.ext3 -m0 /dev/mapper/encdev
mount /dev/mapper/encdev /mnt

# Копира файловете.
rsync -av /home/потребител/ /mnt

# Затваря криптирания дял.
umount /mnt
cryptsetup luksClose encdev

Хубаво е тези операции да се изпълнят преди домашната директория да се запълни с файлове, защото дори след като ги изтриете от първоначалното им местоположение, те могат да бъдат възстановени (с малко зор, но все пак може). Изтрийте всичко от /home/потребител и сложете там файл .profile със следното съдържание:

#!/bin/sh
PATH=/bin:/sbin:/usr/bin:/usr/sbin
unset HISTORY
unset HISTFILE
cd /
sudo cryptsetup luksOpen /dev/sdXY sdXY && \
sudo fsck /dev/mapper/sdXY && \
sudo mount /dev/mapper/sdXY /home/потребител && \
sleep 5 && \
exec sudo telinit 5

III. Редактиране на /boot/grub/menu.lst

Редактирайте и /boot/grub/menu.lst. Ако там има примерно

title Linux
        root (hd0,0)
        kernel /boot/vmlinuz ro root=/dev/sda1
        initrd /boot/initrd.img

добавете

title Linux (VT100)
        root (hd0,0)
        kernel /boot/vmlinuz ro root=/dev/sda1 3
        initrd /boot/initrd.img

Когато ще работите като потребител, при стартиране на компютъра изберете Linux (VT100) от менюто. Малко е тромаво, но поне до момента не съм имал никакви проблеми (което не значи, че вие няма да имате — но нали затова сте си направили архив :) ).

IV. Полезни връзки

  1. Linux:
    1. Loop-AES: http://loop-aes.sourceforge.net/loop-AES.README, http://wiki.cacert.org/wiki/LoopAES
    2. LUKS и dm-crypt: http://luks.endorphin.org, http://www.saout.de/misc/dm-crypt, http://www.saout.de/tikiwiki, http://www.howtoforge.com/ubuntu_dm_crypt_luks
    3. EncFS: http://www.arg0.net/encfs, http://xlife.zuavra.net/index.php/66, http://www.linux.com/feature/114147, http://www.howtoforge.com/encrypting_encfs_pam_script
  2. NetBSD:
    1. CGD: http://www.netbsd.org/docs/guide/en/chap-cgd.html
  3. FreeBSD
    1. GBDE: http://www.freebsd.org/doc/en/books/handbook/disks-encrypting.html
  4. Windows:
    1. TrueCrypt: http://www.truecrypt.org, http://www.howtoforge.com/truecrypt_data_encryption
    2. FreeOTFE: http://www.freeotfe.org

* * * * *

Follow

Get every new post delivered to your Inbox.