1. Устанавливаем патчи cryptoapi и cryptoloop http://www.kernel.org/pub/linux/kernel/crypto/
2. dd if=/dev/zero if=/usr/testfs bs=1M count=50
3. modprobe cryptoloop; modprobe cryptoapi; modprobe cipher-des
4. losetup -e des /dev/loop0 /usr/testfs
5. mkfs -t ext3 /dev/loop0
6. mount -t ext3 /dev/loop0 /mnt/testfsURL: http://securityfocus.com/infocus/1685
Обсуждается: http://www.opennet.me/tips/info/481.shtml
'modprobe loop' before 'modprobe cryptoloop' if loop-support is NOT compiled in.at RH9.0 ALL cryptoAPI modules already there.
DES is a weak cipher.So
'modprobe cipher-aes' and
'losetup -e aes -k 256' instead!!
And here is a simple bash-script. Change it to feet it in your sys.#!/bin/bash
case "$1" in
start)
echo "Mounting encrypted file system - [crypto]"
/sbin/losetup -e aes -k 256 /dev/loop0 /dev/hdc1
/bin/mount -t ext2 /dev/loop0 /cfs
/bin/chmod 770 /cfs
echo "OK"
;;
stop)
echo "Unmounting encrypted file system - [crypto]"
/bin/umount /cfs
/sbin/losetup -d /dev/loop0
echo "OK"
;;
*)
echo "Usage: cfs {start|stop}"
exit 1
esacexit $RETVAL
http://www.linuxshop.ru/forum/viewtopic.php?p=4190#4190
вот это:
dd if=/dev/zero if=/usr/testfs bs=1M count=50
заменить на:
dd if=/dev/zero of=/usr/testfs bs=1M count=50
=))
сриптик от меня) сырой, но рабоиает) есть немножко другой для блочных устройств. пользуйте
#!/bin/bash
[[ ! -n $1 ]] || [[ -n `echo $* |grep '-help'` ]] && \
echo '
Script for create, open ore close crypto-loop filecryptloop.sh create loop_file size(M) [key=/path/]
cryptloop.sh open loop_file [key=/path_to_key/]
cryptloop.sh close loop_file
' && exitloop=$2
size=$3
name="${loop##*/}"
crypt_opt=for i in `ls -1 /dev/loop{0,1,2,3,4,5,6,7}` ;do
losetup $i >/dev/null 2>&1 || break ;
done;
dev=$imount_fs() {
[[ -d /mnt/$name ]] || mkdir /mnt/$name
mount /dev/mapper/$name /mnt/$name && \
echo "Encrypted device mounted in /mnt/$name" && return 0
cryptsetup remove $name && losetup -d $dev
echo "Encrypted device don't mount"
}case $1 in
create)
if [[ -n `echo $4 |grep key` ]] ;then
key="${4#*=}${name}-k"
dd if=/dev/urandom of=$key count=1
chmod 600 $key
crypt_opt="-v -d $key"
echo "Key: $key"
fi
dd if=/dev/urandom of=$loop bs=1M count=$size
chmod 600 $loop
losetup $dev $loop
cryptsetup $crypt_opt -c aes-cbc-essiv:sha256 -h sha512 --key-size 256 create $name $dev
mkfs.reiserfs /dev/mapper/$name
mount_fs
;;
open)
if [[ -n `echo $3 |grep key` ]] ;then key="${3#*=}${name}-k" ; crypt_opt="-v -d $key" ;fi
losetup $dev $loop
cryptsetup $crypt_opt -c aes-cbc-essiv:sha256 -h sha512 --key-size 256 create $name $dev
mount_fs
;;
close)
for j in `ls -1 /dev/loop{0,1,2,3,4,5,6,7}` ;do
if [[ -n `losetup $j | grep $loop` ]] ;then dev=$j ; break ;fi ;
done
umount -f /mnt/$name && rm -rf /mnt/$name
cryptsetup remove $name
losetup -d $dev
echo "Encrypted file closed"
# test, may remove:
for i in `ls -1 /dev/loop{0,1,2,3,4,5,6,7}` ;do losetup $i 2>/dev/null ;done
;;
esac