Возникла потребность на Ubuntu сервере создать шифрованную партицию. Да не просто шифрованную, а со скрытой областью доступной по второму секретному ключу. Для шифрования воспользуемся кроссплатформенной утилитой TrueCrypt.
Установка TrueCrypt.
Качаем с сайта http://www.truecrypt.org/downloads.php
Распаковываем:
$ tar xfz truecrypt-6.1a-ubuntu-x86.tar.gz
Устанавливаем:
# ./truecrypt-6.1a-setup-ubuntu-x86 TrueCrypt 6.1a Setup ____________________ Installation options: 1) Install truecrypt_6.1a-0_i386.deb 2) Extract package file truecrypt_6.1a-0_i386.deb and place it to /tmp To select, enter 1 or 2: 1 Before you can use, extract, or install TrueCrypt, you must accept the terms of the TrueCrypt License. Press Enter to display the license terms... ......Читаем лицензионное соглашение......... Do you accept and agree to be bound by the license terms? (yes/no): yes Running package installer... (Чтение базы данных... на данный момент установлено 20033 файлов и каталогов.) Подготовка к замене пакета truecrypt 6.1a-0 (используется файл /tmp/truecrypt_6.1a-0_i386.deb)... Распаковывается замена для пакета truecrypt ... dpkg: зависимости пакетов не позволяют настроить пакет truecrypt: truecrypt зависит от dmsetup, однако: Пакет dmsetup не установлен. truecrypt зависит от libsm6, однако: Пакет libsm6 не установлен. truecrypt зависит от libgtk2.0-0, однако: Пакет libgtk2.0-0 не установлен. dpkg: не удалось обработать параметр truecrypt (--install): проблемы зависимостей -- оставляем не настроенным При обработке следующих пакетов произошли ошибки: truecrypt Error: TrueCrypt installation failed
Мда… ошибки… Пробуем удовлетворить зависимости:
# apt-get install dmsetup Чтение списков пакетов... Готово Построение дерева зависимостей Reading state information... Готово Возможно, для исправления этих ошибок вы захотите воспользоваться `apt-get -f install': Пакеты, имеющие неудовлетворённые зависимости: truecrypt: Зависит: libsm6 но он не будет установлен Зависит: libgtk2.0-0 но он не будет установлен E: Неудовлетворённые зависимости. Попытайтесь выполнить 'apt-get -f install', не указывая имени пакета, (или найдите другое решение).
Так и делаем:
# apt-get -f install
Все, процесс инсталляции закончен. Начинаем эксперименты.
Создание стандартного TrueCrypt тома.
Для начала поэкспериментируем с контейнером в файле. И так, создадим ключевой файл, для этого перейдем в папку для экспериментов и выполним следующую команду:
$ truecrypt --random-source=/dev/urandom --create-keyfile ./testkeyfile Keyfile has been successfully created.
Теперь создадим файл контейнер (cryptofile, причем имя может быть любым) используя только что созданный ключ (testkeyfile):
$ truecrypt -k ./testkeyfile -c ./cryptofile [В место файла можно использовать устройство партиции диска, например /dev/sda3, все остальное неизменно] Volume type: 1) Normal (Обычный контейнер) 2) Hidden (Скрытый, находящийся в контейнере Normal) Select [1]: 1 (Так как у нас нет еще не какого контейнера создадим обычный) Enter volume size (sizeK/size[M]/sizeG): 50M (Для экспириментов хватит и 50М) Encryption algorithm: [Алгоритмы шифрования все алгоритмы в TrueCrypt используют 256 бит размер ключа и 128 бит размер блока] 1) AES [читать тут] 2) Serpent [читать тут] 3) Twofish [читать тут] 4) AES-Twofish [Каскадное шифрование (для эстетов и параноиков) AES-Twofish] 5) AES-Twofish-Serpent [Каскадное шифрование AES-Twofish-Serpent] 6) Serpent-AES [Каскадное шифрование Serpent-AES] 7) Serpent-Twofish-AES [Каскадное шифрование Serpent-Twofish-AES] 8) Twofish-Serpent [Каскадное шифрование Twofish-Serpent] Select [1]: 1 (Пока нас не интересует ни защещенность ни быстродействие, используем по умолчанию) Hash algorithm: [хэш-функции для генерации ключей шифрования, соли и ключа заголовка] 1) RIPEMD-160 2) SHA-512 3) Whirlpool Select [1]: 1 (Аналогично предыдущему пункту) Filesystem: 1) FAT 2) None Select [1]: 1 (Пусть будет FAT, хотя можно выбрать 2 None и потом отформатировать как нравится) Enter password: WARNING: Short passwords are easy to crack using brute force techniques! (Ругается что я взял короткий пароль, но нам все равно и мы говорим что нам пойдет "y") We recommend choosing a password consisting of more than 20 characters. Are you sure you want to use a short password? (y=Yes/n=No) [No]: y Re-enter password: Please type at least 320 randomly chosen characters and then press Enter: Сюда пишем минимум 320 любых символов вот например: если не хватит он попросит добавить так что не скупимся на Enter-ы, все это случайный текст :) 982fh98hfuehf9uh978 rhf9uh-e9f8haw84thiegnifn-0g8wj358tjirengou3hq9-38h-89h-8h98-(*_(*&#Y($ IUG)*&309r7r-9ufu -98 93-q98-49c834urt9834-89q43nv-9834y-98rxy9 -438ryf9uefg 978fy948yr9qhouidgf-q38u-q8rhjok;kj-zs8u-8y-927qy4 7y51070guigd-078y-98Y_(~*(*(^[[Z(&&A&&~)@(*&y(37Y-92834YR9-8Y9UASDH-98Y-98 -8-88--8ц478шгашрзцщкер=284рщфшер08ве02й984г50=4г3ещшоу=0е9г8=049ге0шуцщхшопа=ц й09г=04958г=0й9г=09егщшводжлфывоа089г4=09ге=09й4г=0е9г=049егывоапхщзфш=0909u=094u095u=09wqeu Done: 100,000% Speed: 12 MB/s Left: 0 s The TrueCrypt volume has been successfully created.
Контейнер создан. Начинаем эксперименты с созданным контейнером.
Для начала примонтируем контейнер:
# truecrypt ./cryptofile Enter mount directory [default]: /home/rom/test [Указываем папку куда монтировать диск] Enter password for /home/rom/testing/cryptofile: [Вводим пороль который указали при создании cryptofile] Enter keyfile [none]: testkeyfile [Указываем ключевой файл] Enter keyfile [finish]: [Т.к. у нас только один ключевой файл то жмем Enter иначе указали следующий файл и т.д. ] Protect hidden volume? (y=Yes/n=No) [No]: n [Защещать ли скрытый диск, т.к. у нас его нет, то жмем n] Incorrect password or not a TrueCrypt volume. [Вот тебе и раз! ошибся при вводе пароля] Enter password for /home/rom/testing/cryptofile: [Указываем правильный пароль] Protect hidden volume? (y=Yes/n=No) [No]: n
Вот примонтировали, смотрим что получилось:
# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda1 19G 948M 17G 6% / varrun 1009M 184K 1009M 1% /var/run varlock 1009M 0 1009M 0% /var/lock udev 1009M 40K 1009M 1% /dev devshm 1009M 0 1009M 0% /dev/shm /dev/mapper/truecrypt1 50M 0 50M 0% /home/rom/test
Видим диск примонтировался. Кинем туда файлов и отмонтируем:
# truecrypt -d #(я не уверен, но может быть в начале было бы правильно отмонтировать диск через umount)
Создание скрытого TrueCrypt тома.
Создадим скрытый том внутри созданного нами только что. Но для начала разберемся, как в основном размещается срытый раздел.
И так видим, что с начало нам требуется создать стандартный TrueCrypt том, заполнить фиктивными «скрытыми» данными, затем в нем создаем скрытый TrueCrypt том. На рисунке видно структуру:
- зеленая полоска — это заголовок (header) стандартного TrueCrypt тома
- фиолетовая область — это область занятая данными стандартного TrueCrypt тома
- серая область — незаполненная данными область тома
- голубая полоска — это заголовок (header) стандартного скрытого TrueCrypt тома
- синяя область — это область занятая данными скрытого TrueCrypt тома
$ truecrypt -k ./testkeyfile1 -c ./cryptofile Volume type: 1) Normal 2) Hidden Select [1]: 2 IMPORTANT: Inexperienced users should use the graphical user interface to create a hidden volume. When using the text interface, the procedure described in the command line help must be followed to create a hidden volume. Enter hidden volume size (sizeK/size[M]/sizeG): 40M Encryption algorithm: 1) AES 2) Serpent 3) Twofish 4) AES-Twofish 5) AES-Twofish-Serpent 6) Serpent-AES 7) Serpent-Twofish-AES 8) Twofish-Serpent Select [1]: Hash algorithm: 1) RIPEMD-160 2) SHA-512 3) Whirlpool Select [1]: Filesystem: 1) FAT 2) None Select [1]: 2 [В в этот раз отформатируем не FAT-ом] Enter password: WARNING: Short passwords are easy to crack using brute force techniques! We recommend choosing a password consisting of more than 20 characters. Are you sure you want to use a short password? (y=Yes/n=No) [No]: y Re-enter password: Please type at least 320 randomly chosen characters and then press Enter: Опять вводим 320 случайных символов :) г209834872-834508ущшкр-9й8гк-0823г0-8г^_89г-08оащцшу0а89г2=09г09u039u09ij [piuj0-982u0rih[0i)*(_)*Y_#$(*HORHO(IUH)*HOFUIHE()*y-0823085708roiashdf[o i2-9038urt0893uirhaweoh-98c2-5897-345873048957-n089475-n894375-083475-v5 7-438dn75-403875c-n4039875-n38475-0n3489750c83475-08934c5n-089347-58c73- 49857nc-398475-9384c75n-394875-nc394875-n34987c5n-348 Done: 100,000% Speed: 28 MB/s Left: 0 s The hidden TrueCrypt volume has been successfully created and is ready for use. If all the instructions have been followed and if precautions mentioned in the section "Security Precautions Pertaining to Hidden Volumes" in the TrueCrypt User's Guide are followed, it will be impossible to prove that the hidden volume exists, even when the outer volume is mounted. WARNING: IF YOU DO NOT PROTECT THE HIDDEN VOLUME (FOR INFORMATION ON HOW TO DO SO, REFER TO THE SECTION "PROTECTION OF HIDDEN VOLUMES AGAINST DAMAGE" IN THE TRUECRYPT USER'S GUIDE), DO NOT WRITE TO THE OUTER VOLUME. OTHERWISE, YOU MAY OVERWRITE AND DAMAGE THE HIDDEN VOLUME!
Как видим все аналогично. Теперь отформатируем вновь созданный скрытый раздел.
Для начала подцепим срытый раздел. Надо учесть, что сначала TrueCrypt пытается дешифровать введённым паролем заголовок стандартного тома, а если это не получается, то дешифрует заголовок скрытого тома. Поэтому пароли (и ключевые файлы) должны разлечатся. Такой метод сделан для того, что по словам создателей невозможно опроеделить есть ли скрытый том или нет.
# truecrypt --filesystem=none -k ./testkeyfile ./cryptofile Enter password for /home/rom/testing/cryptofile: Protect hidden volume? (y=Yes/n=No) [No]:
# ls /dev/mapper/ control truecrypt1 [как видим появилось устройсво truecrypt1]
Отформатируем раздел
# mkfs.ext3 -v /dev/mapper/truecrypt1
Теперь можно примонтировать как обычный диск, либо отключить через truecrypt -d а потом опять примонтировать через truecrypt.
Сохранение заголовка тома TrueCrypt.
Так как в заголовком шифруется весь остальной диск, то его сохранение поможет востановить изначальный пароль. Допустим мы создали диск используя ключевой файл и парольную фразу, затем отдали диск пользователю, который сменит пароль и парольную фразу, через кто некоторое время он забудет пароль или потеряет ключевой файл и придет к нам. Так вот имея исходный ключевой файл и зная парольную фразу, а так же сохраненный заголовок, мы можем востановить доступ.
И так приступим:
# truecrypt --backup-headers ./cryptofile
For security reasons, you will have to enter the correct password (and/or supply the correct keyfiles) for the volume. Note: If the volume contains a hidden volume, you will have to enter the correct password (and/or supply the correct keyfiles) for the outer volume first. Afterwards, if you choose to back up the header of the hidden volume, you will have to enter the correct password (and/or supply the correct keyfiles) for the hidden volume.
Enter password for the normal/outer volume: [Вводим пароль стандартног тома] Enter keyfile [none]: ./testkeyfile [Указываем ключевой файл стандартного тома] Enter keyfile [finish]: Does the volume contain a hidden volume? (y=Yes/n=No) [No]: y [Говорим, что у нас есть скрытый том] Enter password for the hidden volume: [Вводим пароль cскрытого тома] Enter keyfile [none]: ./testkeyfile1 [Указываем ключевой файл скрытого тома] Enter keyfile [finish]:
Are you sure you want to create volume header backup for /home/rom/testing/cryptofile? After you click Yes, you will prompted for a filename for the header backup. Note: Both the standard and the hidden volume headers will be re-encrypted using a new salt and stored in the backup file. If there is no hidden volume within this volume, the area reserved for the hidden volume header in the backup file will be filled with random data (to preserve plausible deniability). When restoring a volume header from the backup file, you will need to enter the correct password (and/or to supply the correct keyfiles) that was/were valid when the volume header backup was created. The password (and/or keyfiles) will also automatically determine the type of the volume header to restore, i.e. standard or hidden (note that TrueCrypt determines the type through the process of trial and error).
(y=Yes/n=No) [Yes]: y
Enter filename: testheshbackup [Имя файла в который мы сохраним заголовок]
Volume header backup has been successfully created. IMPORTANT: Restoring the volume header using this backup will also restore the current volume password. Moreover, if keyfile(s) are/is necessary to mount the volume, the same keyfile(s) will be necessary to mount the volume again when the volume header is restored. WARNING: This volume header backup may be used to restore the header ONLY of this particular volume. If you use this header backup to restore a header of a different volume, you will be able to mount the volume, but you will NOT be able to decrypt any data stored in the volume (because you will change its master key).
Вот, мы и сокранили копию в файле testheshbackup.
Примонтируем стсндартный том (как мы умеем) и создадим какиенибудь данные, затем отмонтируем.
Примонтируем скрытый том и опять создадим данные, затем отмонтируем.
Смена пароля тома TrueCrypt.
Попробуем сменить пароль и ключевой файл.
# truecrypt -C ./cryptofile Enter password: [Вводим пароль тома] Enter keyfile [none]: ./testkeyfile [Вводим имя ключевого файла] Enter keyfile [finish]: Enter new password: [Вводим новый парль] WARNING: Short passwords are easy to crack using brute force techniques! We recommend choosing a password consisting of more than 20 characters. Are you sure you want to use a short password? (y=Yes/n=No) [No]: y [Соглашаемся с тем что пароль короткий :)] Re-enter password: [Повтаряем новый пароль] Keep current keyfiles? (y=Yes/n=No) [Yes]: no [Говорим, что не будем сохранять ключевой файл] Enter new keyfile [none]: ./testkeyfile2 [Указываем файл который будет новым ключевым файлом] Enter new keyfile [finish]: Password and/or keyfile(s) successfully changed. IMPORTANT: Please make sure you have read the section 'Changing Passwords and Keyfiles' in the chapter 'Security Precautions' in the TrueCrypt User Guide.
Аналогично сменим пароль скрытого тома, на этот раз ключевой файл менять не будем:
# truecrypt -C ./cryptofile Enter password: Enter keyfile [none]: ./testkeyfile1 Enter keyfile [finish]: Enter new password: WARNING: Short passwords are easy to crack using brute force techniques! We recommend choosing a password consisting of more than 20 characters. Are you sure you want to use a short password? (y=Yes/n=No) [No]: yes Re-enter password: Keep current keyfiles? (y=Yes/n=No) [Yes]: Password and/or keyfile(s) successfully changed. IMPORTANT: Please make sure you have read the section 'Changing Passwords and Keyfiles' in the chapter 'Security Precautions' in the TrueCrypt User Guide.
Теперь примонтируем стандартный и срытый тома и по очереди проверим сохранились ли данные. Как видим, что все данные на месте. Добавим или изменим данные, это понадобится для следующего эксперимента.
Восстановление заголовка тома TrueCrypt.
И так начнем восстановление со стандартного тома:
# truecrypt --restore-headers ./cryptofile Please select the type of volume header backup you want to use: 1) Restore the volume header from the backup embedded in the volume [Восстановление заголовока тома из резервной копии встроенной в том] 2) Restore the volume header from an external backup file [Восстановление заголовока тома из внешнего файла] Select: 2 [У нас внешний файл] Are you sure you want to restore volume header of /home/rom/testing/cryptofile? WARNING: Restoring a volume header also restores the volume password that was valid when the backup was created. Moreover, if keyfile(s) were/was necessary to mount the volume when the backup was created, the same keyfile(s) will be necessary to mount the volume again after the volume header is restored. After you click Yes, you will select the header backup file. (y=Yes/n=No) [Yes]: y Enter filename: ./testheshbackup [имя файла содержащий копию заголовка тома] Enter password for the header stored in backup file: [введем первоначальный пароль для сохранненнго заголовка] Enter keyfile [none]: testkeyfile [введем имя исходного ключевого файла] Enter keyfile [finish]: The volume header has been successfully restored. IMPORTANT: Please note that an old password may have been restored as well. Moreover, if keyfile(s) were/was necessary to mount the volume when the backup was created, the same keyfile(s) are now necessary to mount the volume again.
Теперь аналогично восстановим заголовок скрытого тома:
# truecrypt --restore-headers ./cryptofile Please select the type of volume header backup you want to use: 1) Restore the volume header from the backup embedded in the volume 2) Restore the volume header from an external backup file Select: 2 Are you sure you want to restore volume header of /home/rom/testing/cryptofile? WARNING: Restoring a volume header also restores the volume password that was valid when the backup was created. Moreover, if keyfile(s) were/was necessary to mount the volume when the backup was created, the same keyfile(s) will be necessary to mount the volume again after the volume header is restored. After you click Yes, you will select the header backup file. (y=Yes/n=No) [Yes]: y Enter filename: ./testheshbackup Enter password for the header stored in backup file: Enter keyfile [none]: ./testkeyfile1 Enter keyfile [finish]: The volume header has been successfully restored. IMPORTANT: Please note that an old password may have been restored as well. Moreover, if keyfile(s) were/was necessary to mount the volume when the backup was created, the same keyfile(s) are now necessary to mount the volume again.
И вновь проверим данные. Мда… Скрытый том восстановился и все файлы в нем сохнанены и пароль старый. А вот стандартный том, что то не монтируется. Может быть ошибся с паролем, попробуем востановить снова. Ну вот, после второй попытки все встало на свои места. Мы выяснили, что если мы напутаем с паролем, то восстановить заголовок удастся, а вот расшифровать не получится, но это поправимо 🙂
Восстановление тома после не корректного отключения питания.
# truecrypt —filesystem=none ./cryptofile
Enter password for ./cryptofile:
Enter keyfile [none]:
Protect hidden volume? (y=Yes/n=No) [No]:
# fsck -p -t ffs /dev/mapper/truecrypt1
fsck 1.40.8 (13-Mar-2008)
/dev/mapper/truecrypt1: recovering journal
/dev/mapper/truecrypt1 has been mounted 50 times without being checked, check forced.
/dev/mapper/truecrypt1: 5824/28835840 files (17.8% non-contiguous), 74875618/115343328 blocks
Скорость работы разных методов шифрования TrueCrypt.
Я думаю, что не стоит проверять, что каскадное шифрование медленнее. Если вы эстет или параноик, либо это требуется для конкретной задачи, то можете провести опыты самостоятельно.
Описание опыта. Создаем три одинаковых тома размером 100Mb каждый и проведем 4 эксперимента, по 10 опытов в каждом:
- Копирование большого файла на шифрованный диск (90Mb контейнер TrueCrypt)
- Копирование большого файла с шифрованного диска
- Копирование группы мелких файлов на шифрованный диск (10000 ключевых файлов)
- Копирование группы мелких файлов с шифрованного диска
Сразу же оговорюсь, что это не идеальный эксперимент, так как:
- Число экспериментов мало
- На одном комппе (колво памяти, процессоров)
- Копирование будет на одном винчестере (было бы не плохо качать с другого более быстродейстующего источника).
- Экспериметн будет проводится только со стандартным томом и в качестве контейнера будет только файл.
- Размер контейнера будет не изменный
- Хэш алгоритм будет одним и тем же SHA-512 (хотя я думаю на скорость это не влияет)
- Будет использоваться только файловая система FAT
- и т.д. и т.п.
Описание компа:
- Плата Intel D945GCLF2 945GC/ICH7+Atom330(1.6Gh 2x512Kb)
- 2G DDR2-667
- HDD Samsung HD502IJ
Для измерения времени копирования будем использовать команду time.
Файлы для тестирования:
- ./cryptofile0 — файл размером 90М заполненный случайными данными
- ./testkeyfile — файл размером 64b заполненный случайными данными
Эксперимент 1.1. Алгоритм AES. Запись на шифрованный диск TrueCrypt файла 90Mb.
Создадим скрипт while100.sh который 100 раз копирует файл ./cryptofile0 в директорию /home/rom/test в которую мы примонтируем шифрованный том и 100 раз удаляет этот файл после копирования:
#!/bin/sh min_num=1 max_num=100 i=$min_num while [ $i -le $max_num ]; do cp ./cryptofile0 /home/rom/test/ rm /home/rom/test/cryptofile0 i=`expr $i + 1` done
теперь примонтируем шифрованный диск TrueCrypt, шифрованный алгоритмом AES к папке /home/rom/test и запустим скрипт while100.sh сдедующим образом:
$ (time sh while100.sh )&& cp ./cryptofile0 /home/rom/test/
И так скрипт проработал real 9m12.131s
Экспиримент 2.1. Алгоритм AES. Чтение с шифрованного диска TrueCrypt файла 90Мb.
Немно померняем предыдущий скрипт, теперь он наоборот бкдет копировать с шифрованного диска тот же файл:
#!/bin/sh min_num=1 max_num=100 i=$min_num while [ $i -le $max_num ]; do cp /home/rom/test/cryptofile0 ./ rm ./cryptofile0 i=`expr $i + 1` done
Запустим скрипт аналогичным способом:
$ (time sh while100.sh )&& cp /home/rom/test/cryptofile0 ./
Время работы real 1m14.392s
Эксперименты 3.1, 4.1, 5.1, 6.1.
Аналогичные первому и второму эксперименты:
Алгоритм Serpent 90Мb*100 запись: 8m18.001s
Алгоритм Serpent 90Мb*100 чтение: 1m17.042s
Алгоритм Twofish 90Мb*100 запись: 7m10.816s
Алгоритм Twofish 90Мb*100 чтение: 1m13.138s
Эксперимент 1.2, 2.2, 3.2, 4.2, 5.2, 6.2. Запись на шифрованный диск TrueCrypt 10000 файлов по 64b каждый.
Для начала создадим 10000 файлов из ключевого файла. Для этого скопируем ключевой файл в отдельную папку. Затем создадим там скрипт:
#!/bin/sh min_num=1 max_num=10000 i=$min_num mkdir t while [ $i -le $max_num ]; do cp testkeyfile t/testkeyfile$i i=`expr $i + 1` ] done
Затем будем заливать файлы на шифрованный диск. Получилось 40Mb мелких файлов. Выполним команды:
$ time (cp -r /home/rom/t /home/rom/test/) #для проверки записи $ rm -r /home/rom/t && time (cp -r /home/rom/test/t /home/rom/)
Алгоритм AES 10000 файлов запись: 2m23.424s
Алгоритм AES 10000 файлов чтение: 1m29.314s
Алгоритм Serpent 10000 файлов запись: 2m20.157s
Алгоритм Serpent 10000 файлов чтение: 1m28.919s
Алгоритм Twofish 10000 файлов запись: 2m20.051s
Алгоритм Twofish 10000 файлов чтение: 1m29.280s
Как видим на мелких файлах разница в скорости работы не заметна.
Резюме по скорости работы криптования.
Как видим самый медленный AES, немного быстрее Serpent и фоварит теста Twofish.
Шифрование SWAP с помощью СryptSetup.
Инсталируем cryptsetup для шифрации SWAP-a:
#apt-get install cryptsetup
Добавляем загружаемые модули:
#echo aes >> /etc/modules #echo dm_mod >> /etc/modules #echo dm_crypt >> /etc/modules
Запускаем cfdisk
#cfdisk
И смотрим какой раздел у нас SWAP, у меня это /dev/sda2
mkswap /dev/hde2
Перезагружаемся
#shutdown -r now
Добавляем строку создания шифрованного диска для swap
#echo "cryptoswap /dev/sda2 /dev/random swap" >> /etc/crypttab
Отключаем SWAP
#swapoff -a
Забиваем случайными числами партицию swap-а:
#dd if=/dev/urandom of=/dev/sda2 count=100
Запускаем cryptdisks
#/etc/init.d/cryptdisks start
Заменяем строку swap-а в файле /etc/fstab:
/dev/mapper/cryptoswap none swap sw 0 0
Подключаем SWAP:
#swapon -a
Размещение раздела /tmp в памяти.
Для того что бы важные данные не остались на диске в случае экстренного выключения питания, поместим директорию /tmp в память, для этого в файл /etc/fstab следующую строку:
tmpfs /tmp tmpfs defaults,nosuid,mode=1777,size=200M 0 0
Теперь при каждой загрузке в памяти будет создаватся диск и туда помещать директорию /tmp
Locate.
Что нас может еще выдать, так это locate.
Первый путь (не наш путь) либо удалить файл /etc/cron.daily/mlocate, либо в начале его поставить exit 0. А при необходимости запускать скрипт в ручную, при отмонтированном диске.
Второй путь (наш путь), это отредактировать файл /etc/updatedb.conf, добавив в него исключения (что может нас выдать), либо монтируя шифрованный раздел в стандартные исключения, либо использовать файловые системы с исключениями. Вот оригенальный файл /etc/updatedb.conf:
PRUNE_BIND_MOUNTS=»yes»
PRUNEPATHS=»/tmp /var/spool /media»
PRUNEFS=»NFS nfs nfs4 afs binfmt_misc proc smbfs autofs iso9660 ncpfs coda devpts ftpfs devfs mfs shfs sysfs cifs lustre_lite tmpfs usbfs udf rpc_pipefs»
отсюда видно, что например можно безбоязненно монтировать в /tmp, /var/spool и /media. Мы так же в безопастности если шифрованные партиции унас имеют одну из файловых систем параметра PRUNEFS.
Послесловие.
Помните, какой бы совершенной ни была бы ваша система шифрования, все пароли всрвыаются в течении одной минуты с помощью термоанального криптосканирования 🙂
Вот тут ошиПка:
/dev/mapper/cryptoswap none swap sw 0 0