(ALT, Ubuntu)
apt-get install cryptsetup
modprobe dm-crypt
modprobe aes
modprobe cryptoloop
также прописываем их в файл /etc/modules:
echo "" >> /etc/modules
echo "dm-crypt" >> /etc/modules
echo "aes" >> /etc/modules
echo "cryptoloop" >> /etc/modules
вставляем флэшку, и смотрим как она определилась системой:
# ls -all /dev/disk/by-id/ | grep Flash
lrwxrwxrwx 1 root root 9 Feb 9 09:58 ~usb-JetFlash-0:0 -> ../../sdc
lrwxrwxrwx 1 root root 10 Feb 9 09:58 ~usb-JetFlash-0:0-part1 -> ../../sdc1
если она смотрировалась, отмонитруем ее:
umount /dev/sdc1
разбиваем:
fdisk /dev/sdc
используем d для удаления всех партиций
используем p для просмотра наличия партиций
если все удаленно используем n для создания новой партиции
используем w для сохранения новой партиции и выхода из программы fdisk
форматируем флэшку(я форматил ее в etx3):
mkfs.ext3 /dev/sdc1
еще раз смотрим как она определилась системой:
# ls -all /dev/disk/by-id/ | grep Flash
lrwxrwxrwx 1 root root 9 Feb 9 09:58 ~usb-JetFlash-0:0 -> ../../sdc
lrwxrwxrwx 1 root root 10 Feb 9 09:58 ~usb-JetFlash-0:0-part1 -> ../../sdc1
создаем линк, куда будет монтироватся флэшка с ключом:
mkdir /mnt/key
монтируем флэшку:
mount /dev/usb-JetFlash-0:0-part1 /mnt/key
даем команду:
rm -f /mnt/key/key.key ; for ((i=0; i< 128; i++)) ; do pwgen -cny | tr -d '\n' >> /mnt/key/key.key ; done
# ls -all /mnt/key/key.key
-rw-r--r-- 1 root root 1024 Feb 9 11:37 /mnt/key/key.key
* – для создания ключ используется программа pwgen, которая есть в стандартных репозиториях ALT и Ubuntu
для установки используем команду:
apt-get install pwgen
dd if=/dev/zero of=/secure/sdisk bs=1024 count=50000
где count – размер контейнера в килобайтах
подключаем файл к loop устройству и криптуем его нашим ключом:
echo $(</mnt/key/key.key) | losetup -e aes -p0 /dev/loop0 /secure/sdisk
форматируем в нужный тип fs:
mkfs.ext3 /dev/loop0
отключаем закриптованный файл:
losetup -d /dev/loop0
создаем точку монтирования:
mkdir /mnt/secure_disk
проверяем монтирование диска:
echo $(</mnt/key/key.key) | mount -p0 -o loop,encryption=aes /secure/sdisk /mnt/secure_disk
отмонтируем все партиции
umount /mnt/key
umount /mnt/secure_disk
echo "KERNEL==\"sd*\", RUN+=\"/root/bin/m.sh\"" >> /etc/udev/rules.d/10-local.rules
echo "KERNEL!=\"sd*\", RUN+=\"/root/bin/u.sh\"" >> /etc/udev/rules.d/10-local.rules
перезапускаем udev
ALT:
service udevd restart
/etc/init.d/udev restart
скрипт для монтирования /root/bin/m.sh:
#!/bin/bash
mount /dev/disk/by-id/usb-JetFlash-0:0-part1 /mnt/key
echo $(</mnt/key/key.key)| mount /secure/sdisk /mnt/secure_disk -o loop,encryption=aes -p0
umount /mnt/key
скрипт для размонтирования /root/bin/u.sh:
#!/bin/bash
umount /mnt/secure_disk