Видео смотреть бесплатно

Смотреть русское с разговорами видео

Официальный сайт filipoc 24/7/365

Смотреть видео бесплатно

07.12.2009 18:17

ginzШифруем файлораздел через LUKS + делаем контекст меню в KDE

Параноя или не параноя, но такая вещь мне все таки понадобилась. В сети over 9000 статей публикаций и ХАВТУ для создание шифрованых файлов, разделов и др. У меня же задача простая: создать файл, примонтировать его и использовать как папку.

Минусов у этого способа скрыть информацию я не нашел, поэтому и пользуюсь именно им. А делаем это все с помощью LUKS. В скорости работы данного способа особо не заморачивался ибо работа в основном с мелкими файлами. А заодно сделаем интеграцию в меню KDE для ленивых мышкофилов. Итак:

Дистрибутив arch x86. Впрниципе вся информация ниже из Arch Wiki - System Encryption with LUKS for dm-crypt



UPD... Чуть подправил скрипт, теперь создаеться папка с именем шифрованого файла и автоматически подбираеться пустая node. Опцию losetup -e не стал использовать, чтобы поймать этап ошибки. Мб кто подскажет как сделать проверку доступности sudo и запрашивать для него пароль?


Первым делом создаем сам файлик

1
$ dd if=/dev/urandom of=QQ bs=1M count=1024



Файлик с бредом весом в 1Гб.

"лупим" его, нужно это для того что бы наш файлик выступал в роли железной части компа. (требуеться модуль loop "modprobe loop")

1
# losetup /dev/loop0 ~/QQ



Теперь делаем из него зашифрованый файлик и задаем пароль для открытия. Для этого понадобиться модуль ядра "dm_mod"

1
# cryptsetup luksFormat /dev/loop0



Впринципе все, теперь наш файлик готов для пользовательских манипуляций. Сначала открываем его.

1
# cryptsetup luksOpen /dev/loop0 QQ

- в конце указаываем имя под которым файл будет доступен.

Теперь создаем файловую систему.

1
# mkfs.ext2 /dev/mapper/QQ



И наконец подключаем ее.


1
2
#mkdir /mnt/QQ
mount -t ext2 /dev/mapper/QQ /mnt/QQ

- не забываем выставить права на папку чтобы из под обычного пользователя был доступ.


Впринципе все, теперь можно закидывать файлы, а потом просто закрываем файл:

1
2
3
umount /mnt/QQ
cryptsetup luksClose QQ
losetup -d /dev/loop0 # освобождаем loop0 девайс



Чтобы снова вызвать раздел делаем это 3 командами.

1
2
3
losetup /dev/loop0 ~/QQ
cryptsetup luksOpen /dev/loop0 QQ
mount -t ext2 /dev/mapper/QQ /mnt/QQ




Тут ничего нового нету, этот метод описывается везде как самый простой. Но тут появилась надобность интегрировать все в меню KDE, кликнул по файлику выбрал "подключить" ввел пароль и вот оно щастье. Тут многие наверно вспомнять велосипеды и EncFS. Но мне было интересно сделать это через LUKS. Долго искал готовые скрипты, но ничего не нашел (если кто владеет просьба поделиться). Итак оговорю сразу: в bash я во второй раз (пример из encSF лежал открытый), поэтому просьба все ляпы и как их исправить показать.

Для начала делаем сам скрипт который будет делать все манипуляции с подключением:

 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#! /bin/sh
action="${1}"
shift
encname=`basename $1`
mount () {

###### get freenode
freeloop=`losetup -f`


sudo losetup $freeloop $1
if < $? != 0 >; then
kdialog --title "Error" --error "Ошибка при выполнении losetup, скорее всего нод не освобожден."
exit
fi

passwd=`kdialog --title "Password!" --icon document-decrypt --password "Введите пароль:"`
if < $? != 0 >; then
kdialog --error ' ..::WRONG PASSWORD::.. '
sudo losetup -d $freeloop
exit
fi
echo $passwd | sudo cryptsetup luksOpen $freeloop $encname
##### Creating mounting dir

sudo mkdir /mnt/$encname
sudo chmod 660 /mnt/$encname

sudo mount /dev/mapper/$encname /mnt/$encname
if < $? != 0 >; then
kdialog --title "Error mounting" --error "Неудалось подключить ${freeloop}."
sudo cryptsetup luksClose $encname
sudo losetup -d ${freeloop}
exit
fi
kdialog --title "Goooooood." --msgbox "Все в порядке босс :3"

}

umount () {
sync
###### Get node by enc file
need_free=`losetup -a | grep -w $1 | sed 's/\(.\{10\}\).*/\1/g' `
sudo umount /mnt/$encname
if < $? != 0 >; then
kdialog --title "Error umounting" --error "Ошибка при отключении. Устройство используеться."

fi
sudo cryptsetup luksClose /dev/mapper/$encname
if < $? != 0 >; then
kdialog --title "luksClose ERROR!!" --error "Ошибка при закрытии устройства!!!! Не забудь закрыть его вручную!"

fi
sudo losetup -d $need_free
if < $? != 0 >; then
kdialog --title "Error free losetup" --error "Не омогу освободить нод '$need_free'"
exit
fi
kdialog --title '===Все Ок BOSS===' --msgbox '********Диск отключен Босс, все в порядке********'
sudo rm -rf /mnt/$encname
exit

}

#######################

"${action}" "${@}"



Срипт впринципе простейший но писался буквально пару часов назад и на скорую руку чтоб работало, просьба поругать =)

Создаем файлик enc.sh с этим содержимым и кидаем в папку "/usr/bin" не забываем его сделать испольняемым.

Теперь делаем меню для Dolphin.
В папке "/usr/share/kde4/services/ServiceMenus" создаем файл с следущим содержимым.

 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<desktop entry="Entry">
Type=Service
ServiceTypes=KonqPopupMenu/Plugin
MimeType=application/octet-stream;
Icon=folder-locked
TryExec=enc.sh
Actions=mount;umount;
Name=enc

</desktop><desktop action="Action" mount="mount">
Icon=document-decrypt
Name=Mount Crypt Disk
Exec=enc.sh mount "%f"

################################################################################

</desktop><desktop action="Action" umount="umount">
Icon=document-encrypt
Name=Umount crypt Disk
Exec=enc.sh umount "%f"</desktop>



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

PS первый пост после долгого ридонли


Тэги: arch kde LUKS KDE
+ 2 -
Похожие Поделиться

Username 07.12.2009 18:21 #
+ 1 -
пост зачот, параноикам приветдля себя наконец нашел коротенькое хауту для пунктов контекстного меню - руки никогда не доходили гуглить
exelens 07.12.2009 18:39 #
+ 0 -
PS первый пост после долгого ридонли

очень хорошо, что оно прошло.
lockie 07.12.2009 18:49 #
+ 0 -
truecrypt уже не в моде?
exelens 07.12.2009 18:55 #
+ 1 -
А чем он лучше?
ginz 07.12.2009 18:56 #
+ 0 -
да была идея. Но помниться пробегала статья что там толи не кашерные методы используються то ли с лиценизей у них не чисто. Прозрачность интеграции там есть? Просто не хотело загружать программу указывать файлы и т.д. Хочеццо 1 кликом мышки.
lockie 07.12.2009 23:07 #
+ 1 -
В truecrypt'е всё так и делается, исключительно мышеклацаньем. Создаётся файл-хранилище и монтируется на произвольную точку ФС после вбивания пароля. И да, за что он мне нравится - за кросплатформенность ^_^
ginz 08.12.2009 01:29 #
+ 0 -
Но тут появилась надобность интегрировать все в меню KDE, кликнул по файлику выбрал "подключить" ввел пароль и вот оно щастье. Тут многие наверно вспомнять велосипеды и EncFS. Но мне было интересно сделать это через LUKS.

Просто не хотело загружать программу указывать файлы и т.д.


Кросплатформа конечно хорошо, но куда? =) Win32 не пользуюсь, прости...

данные операции выполняюца без доп софта.
zivot_je_cudo 07.12.2009 23:53 #
+ 2 -
Когда дело касается loop, можно шифровать на этапе "losetup /dev/loop0 ~/QQ", путем добавления опции -e, это проще, чем LUKS и не требует dm_mod. Без всякого излишества.
ginz 08.12.2009 01:30 #
+ 0 -
Спасибо. Сейчас посерьезнее займусь, в более божеский вид скрипт привести надо и маны покурить.

В хорошем качестве hd видео

Онлайн видео бесплатно


Смотреть русское с разговорами видео

Online video HD

Видео скачать на телефон

Русские фильмы бесплатно

Full HD video online

Смотреть видео онлайн

Смотреть HD видео бесплатно

School смотреть онлайн