andgera (andgera) wrote,
andgera
andgera

Category:

Шифрованые файловые системы

Ранно или позно но наверняка приходиться задумываться о сохранности конфиденциальных данных.  И я не стал исключением. Права доступа 600 меня перестали устраивать. В связи с этим свои особо ценные данные стал хранить на виртуальной шифрованной файловой системе.  Для  этой  цели  написал  простенький скриптик приведенный ниже. Можно использовать и программку TrueCrypt  Интересную на мой взгляд информацию на эту тему можно почерпнуть вот здесь.

Код:

#!/bin/bash
#
#----------------------------------------------------------------------
# Configure section:
#
# Путь к шифрованной файловой системе
FS_NAME="encFS2"

# Точка монтирования
M_NAME="/media/crypt"

# Размер в MB
SIZE="10"

# Тип файловой системы (vfat/ext3)
FS_TYPE=ext3
#----------------------------------------------------------------------


use_help()
{
    echo " 
	
    make 		 Создать шифрованую файловую систему
			 на основании параметров в скрипте.
			 
    start		 Монтировать файловую системму в $M_NAME
    stop		 Отмонтировать файловую системму.
	 "
}

mod()
{

LOOP=`lsmod | grep -v grep | grep -w loop | awk '{print $1}' | grep -c loop`
CPLOOP=`lsmod | grep -v grep | grep -w cryptoloop | awk '{print $1}' | grep -vx loop | grep -c cryptoloop`
AES=`lsmod | grep -v grep | grep -w aes | awk '{print $1}' | grep -c aes`


    # Загрузка модуля loop
    if [ $LOOP != "1" ];then
	sudo modprobe loop || echo "Не найден модуль 'loop'" && exit 1
    fi
    # Загрузка модуля cryptoloop
    if [ $CPLOOP != "1" ];then
	sudo modprobe cryptoloop || echo "Не найден модуль 'cryptoloop'" &&  exit 2
    fi
    # Загрузка модуля aes
    if [ $AES != "1" ];then
	sudo modprobe aes || echo "Не найден модуль 'aes'" &&  exit 3
    fi
}    


start_mnt()
{
    echo "Монтирую файловую систему"
    echo "Введите пароль"
    sudo losetup -e aes -k 256 /dev/loop0 $FS_NAME
    sudo mount -t $FS_TYPE /dev/loop0 $M_NAME 
    sudo chmod 777 $M_NAME
    echo "OK"
}

stop_mnt()
{
    echo "Отмонтирование файловой системы"
    sudo umount $M_NAME
    sudo rm -fr $M_NAME
    sudo losetup -d /dev/loop0
    echo "OK"
}

make_fs()
{
    PASS=`head -c6 /dev/random | uuencode -m - | sed -n '2s/=*$//;2p' | col -x `
    echo "Создаю новую шифрованую файловую систему"
    dd if=/dev/zero of=$FS_NAME bs=1M count=$SIZE 
    echo -en "Введите пароль, или используйте этот {\33[33m $PASS \33[0m}" 
    echo 
    sudo losetup -e aes -k 256 /dev/loop0 $FS_NAME 
    sudo mkfs -t $FS_TYPE /dev/loop0 && echo "Создана файловая система $FS_TYPE размером $SIZE MB"
    echo "OK"
}

mod

# Проверка точки монтирования
if !( [ -d $M_NAME ] ); then
    echo "Создаю $M_NAME" 
    sudo  mkdir $M_NAME
fi

case "$1" in
	start)
	    start_mnt             
            ;;
	stop)
            stop_mnt
            ;;
     	make)
	    make_fs	 
	    ;; 
     	help)
            echo "Usage: $0 {start|stop|make}"
            use_help
            exit 1
            ;;
    	*)
	    echo "Usage: $0 {start|stop|make}"
            use_help
            exit 1
esac

exit 0 



P.S Для работы скрипта должна быть установлена и настроена программа `sudo`
Tags: Линукс
Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 0 comments