Как лучше всего зашифровать и расшифровать каталог с помощью командной строки или сценария?


8

У меня есть каталог текстовых файлов под управлением версией Bazaar, и я храню копию (на самом деле, ветку) на каждом из моих компьютеров. Я хочу зашифровать и расшифровать каталог через командную строку.

В идеале я также мог бы запустить скрипт при выходе из системы, чтобы проверить, зашифрован ли каталог, и зашифровать его, если нет, и все это без вмешательства пользователя. Однако я не хочу расшифровывать каталог при входе в систему. (Я хочу, чтобы сценарий защищал вас от необходимости зашифровывать вручную. Это особенно важно для нетбуков.)

Я работаю ubuntu 10.04.1и две версии crunchbang linux, одна из которых является производной от ubuntu 9.04репозитория Debian Squeeze в конце июня.

Каков наилучший способ сделать это?

(Я пытался пометить с помощью encryptionи directories, но не хватает представителя для создания тега.)

Ответы:


5

У вас есть административный доступ к машинам? Можно использовать зашифрованное петлевое устройство. Пример:

сделать файл контейнера для зашифрованного фс:

dd if=/dev/urandom of=container bs=1024k count=100 

привязать файл контейнера к устройству обратной связи 0:

losetup container /dev/loop0

создать зашифрованное устройство (-y дважды запрашивает фразу-пароль; строка разделяется на \):

cryptsetup -c serpent-xts-essiv:sha256 -b 512 \
   -y create container /dev/loop0 

создать файловую систему ext2 на зашифрованном устройстве (на самом деле может использовать все что угодно):

mkfs.ext2 /dev/mapper/container

монтирует зашифрованную файловую систему в каталог crypt:

mount /dev/mapper/container crypt

Для справки:

man cryptsetup && man losetup

Также ознакомьтесь с рекомендациями по криптографии, ознакомьтесь с информацией о выборе шифра и длины ключа для использования и т. Д.


4

Похоже, что вы ищете не способ шифрования и дешифрования каталогов, а способ прозрачной работы с зашифрованным хранилищем. Обратите внимание, что предложенная вами схема с фактическим массовым дешифрованием и шифрованием не очень безопасна: она оставляет незашифрованные вещи, если вы не выходите из системы нормально (сбой питания, сбой системы, украденный ноутбук ...); и он оставляет следы ваших конфиденциальных данных, которые может найти решительный злоумышленник (данные из удаленных файлов все еще находятся на диске, их трудно найти).

Современные системы Linux предлагают несколько способов достижения прозрачного шифрования. Вы можете зашифровать весь том с помощью dm-crypt или одной из его альтернатив. Есть несколько инструментов, доступных для шифрования определенного дерева каталогов, включая ecryptfs (который работает на уровне ядра) и encfs (который работает исключительно в пользовательской среде через fuse). (Три, о которых я упоминаю, доступны в Debian lenny и должны предлагаться всеми вашими дистрибутивами.)

Вы можете настроить зашифрованные каталоги для монтирования при входе в систему либо через PAM ( libpam-mountпакет; рекомендуемая опция для ecryptfs), либо через скрипты вашего профиля (рекомендуемая опция для encfs). Обратите внимание, что с «забыванием шифрования вручную» проблем не возникает, поскольку на диск ничего не записывается в незашифрованном виде.

Для лучшей защиты вы должны шифровать не только ваши конфиденциальные файлы, но и другие места, где конфиденциальные данные могут храниться программами. По крайней мере, вы должны зашифровать свой раздел подкачки. Другие места для просмотра включают /tmp(лучше всего решить, сделав это tmpfs), /var/spool/cupsесли вы печатаете конфиденциальные документы, и файлы для приложений в вашем домашнем каталоге, такие как веб-кеши / истории (например ~/.mozilla).


3

Как насчет использования gpgdir ? Это должно быть сценарием для входа и выхода. Вы также можете выбрать подкаталоги, которые должны быть зашифрованы (например, вы можете захотеть, чтобы такой файл .bash_rcоставался дешифрованным).

Другой альтернативой может быть Truecrypt . Вы можете создать контейнер для ваших данных и зашифровать / расшифровать его с помощью сценариев оболочки.


2

Вы также можете использовать ecryptfs, стандартную для Ubuntu и его производных. Это то, что используется, когда процесс установки спрашивает вас, хотите ли вы зашифровать свой домашний каталог (http://www.linuxjournal.com/article/9400). Преимущество ecryptfs в том, что вам не нужен отдельный раздел или монтированный в петлю файл для его использования.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.