zyxmon Posted July 3, 2016 Share Posted July 3, 2016 Собран пакет encfs (EncFS — свободная криптографическая файловая система, основанная на FUSE, прозрачно шифрующая файлы, используя произвольную директорию в качестве места для хранения зашифрованных файлов. Распространяется под лицензией GPL.) Необходимо, чтобы Была установленная система пакетов Entware-keenetic - viewtopic.php?f=4&t=333 Был установлен модуль ядра fuse - viewtopic.php?f=3&t=471 1. Установка opkg install http://pkg.entware-keenetic.ru/binaries/keenle/t/encfs_1.9-20160630-1_keenle.ipk 2. Использование (в интернете много подробных статей). 2.1 Создадим две папки. Первая, где хранятся "секретные данные", вторая "точка монтирования" Например (используйте свои названия) mkdir -p /opt/crypto mkdir -p /opt/mcrypto 2.2 Запустим шифрование encfs /opt/crypto/ /opt/mcrypto/ Внимание! В команде нужно указывать полные пути к папкам. У Вас спросят тип шифрования (я проверял на стандартном) и пароль (если потеряете, данные не восстановите). Creating new encrypted volume. Please choose from one of the following options: enter "x" for expert configuration mode, enter "p" for pre-configured paranoia mode, anything else, or an empty line will select standard mode. ?> Standard configuration selected. Configuration finished. The filesystem to be created has the following properties: Filesystem cipher: "ssl/aes", version 3:0:2 Filename encoding: "nameio/block", version 4:0:2 Key Size: 192 bits Block Size: 1024 bytes Each file contains 8 byte header with unique IV data. Filenames encoded using IV chaining mode. File holes passed through to ciphertext. Now you will need to enter a password for your filesystem. You will need to remember this password, as there is absolutely no recovery mechanism. However, the password can be changed later using encfsctl. New Encfs Password: Verify Encfs Password: Проверяем, что все "сработало", командой mount. mount rootfs on / type rootfs (rw) /dev/root on / type squashfs (ro,relatime) tmpfs on /dev type tmpfs (rw,nosuid,noexec,relatime) none on /dev/pts type devpts (rw,nosuid,noexec,relatime,mode=600) proc on /proc type proc (rw,nosuid,nodev,noexec,relatime) tmpfs on /tmp type tmpfs (rw,nosuid,nodev,relatime) sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime) /dev/mtdblock/7 on /storage type jffs2 (rw,nosuid,relatime) none on /proc/bus/usb type usbfs (rw,nosuid,noexec,relatime) /dev/sda1 on /tmp/mnt/entware type ext2 (rw,relatime) /dev/sda1 on /opt type ext2 (rw,relatime) encfs on /opt/mcrypto type fuse.encfs (rw,nosuid,nodev,relatime,user_id=0,group_id=0,default_permissions) Как видим у нас появилась точка монтирования /opt/mcrypto. Именно в эту папку и следует помещать секретные данные. А в папке /opt/crypto Вы увидите, как они будут отображаться в зашифрованном виде. 2.3 Закончили. Отключаем зашифрованную папку fusermount -u /opt/mcrypto 2.4 Снова нужен доступ encfs /opt/crypto/ /opt/mcrypto/ Вводим пароль - все отобразиться расшифрованным в /opt/mcrypto. На параметрах шифрования по умолчанию у меня на медленную флешку скорость записи была около 1.5 МБ/с. Отписываемся о проблемах (на ядре 2.6.22 прошивка v1 все повисло). Отписываемся - устраивает ли скорость? Подбираем оптимальные для скорости параметры. По результатам Ваших ответов решим, нужно ли включать encfs в репозиторий. Quote Link to comment Share on other sites More sharing options...
emlen Posted July 3, 2016 Share Posted July 3, 2016 Эм, а модуль fuse есть у кого-нить, чтоб на ndms v2.05(AAFS.5)C4 подкинуть его? Или это надо разработчикам писать, или кому, чтобы стабильная прошивка начала поддерживать? Quote Link to comment Share on other sites More sharing options...
zyxmon Posted July 3, 2016 Author Share Posted July 3, 2016 Эм, а модуль fuse есть у кого-нить, чтоб на ndms v2.05(AAFS.5)C4 подкинуть его? Или это надо разработчикам писать, или кому, чтобы стабильная прошивка начала поддерживать? По модулям отдельный топик! Там и спрашивайте. Может для 2.05 fuse в ядре или в основной прошивке. Не могу сказать. что encfs - верх стабильности. Вчерашняя сборка периодически вылетала в segfault. Сегодня обновил сырцы - заработала. На 2.6.22 и ndms v1 fuse есть в ядре. Там завис при попытке просмотреть даже пустую смонтированную папку. Может на v2 и будет лучше, но гарантий нет! PS Если `cat /proc/filesystems` выдает fuse в поддрживаемых файловых системах, можете попробовать encfs. cat /proc/filesystems nodev sysfs nodev rootfs nodev bdev nodev proc nodev tmpfs nodev sockfs nodev usbfs nodev pipefs nodev anon_inodefs nodev devpts squashfs nodev ramfs nodev mtd_inodefs ext3 ext2 ext4 fuseblk nodev fuse nodev fusectl Quote Link to comment Share on other sites More sharing options...
TheBB Posted July 3, 2016 Share Posted July 3, 2016 GIGA II fw. v2.06(AAFS.3)B4 (ядро - 2.6.22)+ HDD 1TB NTFS Quote Link to comment Share on other sites More sharing options...
zyxmon Posted July 3, 2016 Author Share Posted July 3, 2016 Немного тестов. Extra. Была попытка немного оптимизировать шифрование. Большого эффекта не дало. Выполнялись операции: (1) запись файла 164МБ на флешку. (2) запись аналогичного файла в зашифрованную FS. (3) чтение файла с зашифрованной FS. Результаты: [Extra@~]>dd if=/dev/zero of=/opt/test bs=16k count=10000 10000+0 records in 10000+0 records out 163840000 bytes (164 MB) copied, 22,753 s, 7,2 MB/s [Extra@~]>dd if=/dev/zero of=/opt/mcr/test bs=16k count=10000 10000+0 records in 10000+0 records out 163840000 bytes (164 MB) copied, 56,8658 s, 2,9 MB/s [Extra@~]>dd if=/opt/mcr/test of=/dev/null 320000+0 records in 320000+0 records out 163840000 bytes (164 MB) copied, 31,8112 s, 5,2 MB/s Загрузка CPU 100%. Аналогичные операции на arm роутере ((Broadcom BCM4708 ARMv7, 800Mhz, 2 ядра) с флешкой usb3 дали 23.3 MB/s, 6.7 MB/s и 11.2 MB/s. Загрузка cpu превышает 90% но маршрутизатор остается "отзывчивым". А теперь UltraII. Использовалась флешка usb2, прошивка Падавана, загрузка не превышала 25%, скорости 7,9 MB/s, 4,6 MB/s и 7,5 MB/s. Примечание. Загрузка CPU считывалась с морды. Поскольку три разные прошивки,..... неизвестно что там они показывают.... Quote Link to comment Share on other sites More sharing options...
TheBB Posted July 3, 2016 Share Posted July 3, 2016 То же, на GIGA II (см. выше) Диск с NTFS ~ # dd if=/dev/zero of=/tmp/mnt/hdd/test/test bs=16k count=10000 10000+0 records in 10000+0 records out 163840000 bytes (164 MB) copied, 4,63578 s, 35,3 MB/s ~ # dd if=/dev/zero of=/tmp/mnt/hdd/mycrypt/test bs=16k count=10000 10000+0 records in 10000+0 records out 163840000 bytes (164 MB) copied, 72,8121 s, 2,3 MB/s ~ # dd if=/tmp/mnt/hdd/mycrypt/test of=/dev/null 320000+0 records in 320000+0 records out 163840000 bytes (164 MB) copied, 31,3866 s, 5,2 MB/s Диск c ext2 ~ # dd if=/dev/zero of=/tmp/mnt/hdd/test bs=16k count=10000 10000+0 records in 10000+0 records out 163840000 bytes (164 MB) copied, 5,0803 s, 32,3 MB/s ~ # dd if=/dev/zero of=/tmp/mnt/hdd/mycrypt/test bs=16k count=10000 10000+0 records in 10000+0 records out 163840000 bytes (164 MB) copied, 64,5946 s, 2,5 MB/s ~ # dd if=/tmp/mnt/hdd/mycrypt/test of=/dev/null 320000+0 records in 320000+0 records out 163840000 bytes (164 MB) copied, 44,0339 s, 3,7 MB/s Диск с ext3 ~ # dd if=/dev/zero of=/tmp/mnt/hdd/test bs=16k count=10000 10000+0 records in 10000+0 records out 163840000 bytes (164 MB) copied, 6,06516 s, 27,0 MB/s ~ # dd if=/dev/zero of=/tmp/mnt/hdd/mycrypt/test bs=16k count=10000 10000+0 records in 10000+0 records out 163840000 bytes (164 MB) copied, 72,1289 s, 2,3 MB/s ~ # dd if=/tmp/mnt/hdd/mycrypt/test of=/dev/null 320000+0 records in 320000+0 records out 163840000 bytes (164 MB) copied, 43,408 s, 3,8 MB/s На флешке с ext2 ~ # dd if=/dev/zero of=/opt/tmp/test bs=16k count=10000 10000+0 records in 10000+0 records out 163840000 bytes (164 MB) copied, 29,3155 s, 5,6 MB/s ~ # dd if=/dev/zero of=/opt/mycrypto/test bs=16k count=10000 10000+0 records in 10000+0 records out 163840000 bytes (164 MB) copied, 60,6527 s, 2,7 MB/s ~ # dd if=/opt/mycrypto/test of=/dev/null 320000+0 records in 320000+0 records out 163840000 bytes (164 MB) copied, 43,2835 s, 3,8 MB/s до кучи (Ultra II+hdd c ext4 USB3) CPU ~25-30% ~ # dd if=/dev/zero of=/tmp/mnt/hdd/test bs=16k count=10000 10000+0 records in 10000+0 records out 163840000 bytes (164 MB) copied, 1,61661 s, 101 MB/s ~ # dd if=/dev/zero of=/tmp/mnt/hdd/mycrypt/test bs=16k count=10000 10000+0 records in 10000+0 records out 163840000 bytes (164 MB) copied, 51,1632 s, 3,2 MB/s ~ # dd if=/tmp/mnt/hdd/mycrypt/test of=/dev/null 320000+0 records in 320000+0 records out 163840000 bytes (164 MB) copied, 30,7169 s, 5,3 MB/s Quote Link to comment Share on other sites More sharing options...
emlen Posted July 3, 2016 Share Posted July 3, 2016 По результатам Ваших ответов решим, нужно ли включать encfs в репозиторий. Лично меня вроде все устраивает, ИМХО нужно однозначно! Попытаюсь сейчас запускать шифрование через телеграм.. еще бы davfs прикрутить к стабильной ndms v2.05(AAFS.5)C4. Есть такая возможность? Quote Link to comment Share on other sites More sharing options...
zyxmon Posted July 3, 2016 Author Share Posted July 3, 2016 Лично меня вроде все устраивает, ИМХО нужно однозначно! Попытаюсь сейчас запускать шифрование через телеграм.. еще бы davfs прикрутить к стабильной ndms v2.05(AAFS.5)C4. Есть такая возможность? Нужно не спрашивать, а проверять. davfs2 это же fuse - должно работать. Quote Link to comment Share on other sites More sharing options...
zyxmon Posted July 3, 2016 Author Share Posted July 3, 2016 Обращаю внимание, что у encfs куча, да-да целая куча опций. Начиная от опций шифрования (алгоритмы, типы и длины ключей) и заканчивая опциями монтирования. Для embeded устройств следует подбирать оптимальные. Опции монтирования: >encfs -H encfs [options] rootDir mountPoint -- [FUSE Mount Options] valid FUSE Mount Options follow: usage: ... mountpoint [options] general options: -o opt,[opt...] mount options -h --help print help -V --version print version FUSE options: -d -o debug enable debug output (implies -f) -f foreground operation -s disable multi-threaded operation -o allow_other allow access to other users -o allow_root allow access to root -o auto_unmount auto unmount on process termination -o nonempty allow mounts over non-empty file/dir -o default_permissions enable permission checking by kernel -o fsname=NAME set filesystem name -o subtype=NAME set filesystem type -o large_read issue large read requests (2.4 only) -o max_read=N set maximum size of read requests -o hard_remove immediate removal (don't hide files) -o use_ino let filesystem set inode numbers -o readdir_ino try to fill in d_ino in readdir -o direct_io use direct I/O -o kernel_cache cache files in kernel -o [no]auto_cache enable caching based on modification times (off) -o umask=M set file permissions (octal) -o uid=N set file owner -o gid=N set file group -o entry_timeout=T cache timeout for names (1.0s) -o negative_timeout=T cache timeout for deleted names (0.0s) -o attr_timeout=T cache timeout for attributes (1.0s) -o ac_attr_timeout=T auto cache timeout for attributes (attr_timeout) -o noforget never forget cached inodes -o remember=T remember cached inodes for T seconds (0s) -o nopath don't supply path if not necessary -o intr allow requests to be interrupted -o intr_signal=NUM signal to send on interrupt (16) -o modules=M1[:M2...] names of modules to push onto filesystem stack -o max_write=N set maximum size of write requests -o max_readahead=N set maximum readahead -o max_background=N set number of maximum background requests -o congestion_threshold=N set kernel's congestion threshold -o async_read perform reads asynchronously (default) -o sync_read perform reads synchronously -o atomic_o_trunc enable atomic open+truncate support -o big_writes enable larger than 4kB writes -o no_remote_lock disable remote file locking -o no_remote_flock disable remote file locking (BSD) -o no_remote_posix_lock disable remove file locking (POSIX) -o [no_]splice_write use splice to write to the fuse device -o [no_]splice_move move data while splicing to the fuse device -o [no_]splice_read use splice to read from the fuse device Module options: [subdir] -o subdir=DIR prepend this directory to all paths (mandatory) -o [no]rellinks transform absolute symlinks to relative [iconv] -o from_code=CHARSET original encoding of file names (default: UTF-8) -o to_code=CHARSET new encoding of the file names (default: UTF-8) Для опций шифрования в режиме эксперта следует задавать минимальные длины ключей. Очень важной величиной может оказаться block size. Quote Link to comment Share on other sites More sharing options...
emlen Posted July 3, 2016 Share Posted July 3, 2016 Нужно не спрашивать, а проверять. ок, попробую. Пока что мои пять копеек к тесту, с практической точки зрения, без цифр) Запустил с зашифрованной флешки кино по dlna и пошло - поехало, играет и не тупит. Супер! <?xml version="1.0" encoding="UTF-8"?> 20100713 EncFS 1.9.0 ssl/aes 3 0 nameio/block32 4 0 128 1024 0 0 0 0 0 1 36 Quote Link to comment Share on other sites More sharing options...
emlen Posted July 3, 2016 Share Posted July 3, 2016 А что насчет google-docs-fs или какого-нибудь fuse-google-drive? griv не устраивает, т.к. нужно не синхронизировать а монтировать как шару. Quote Link to comment Share on other sites More sharing options...
zyxmon Posted July 4, 2016 Author Share Posted July 4, 2016 Для вопросов по entware и заявок на пакеты есть другие места. Не будем увеличивать вселенскую энтропию и разводить offtopic!!! Quote Link to comment Share on other sites More sharing options...
vasek00 Posted July 4, 2016 Share Posted July 4, 2016 Может лучше не нагружать CPU роутера, а имея раздел (на диске) доступный из инета для клиента использовать ПО на клиентах например - https://www.boxcryptor.com/ru он есть и для Windows и для Android Quote Link to comment Share on other sites More sharing options...
Александр Рыжов Posted July 4, 2016 Share Posted July 4, 2016 Может лучше не нагружать CPU роутера, а имея раздел (на диске) доступный из инета для клиента использовать ПО на клиентах например - https://www.boxcryptor.com/ru он есть и для Windows и для AndroidЭто зависит от вашей задачи, в частности, от возможностей клиентов. encfs всего лишь один из ваших инструментов, как и любой другой инструмент, его надо использовать правильно. Quote Link to comment Share on other sites More sharing options...
emlen Posted July 4, 2016 Share Posted July 4, 2016 Уважаемый vasek00, спасибо, но лично меня не устраивает предложенная Вами реализация и мне кажется чтоэто самый очевидный, можно сказать банальный вариант использования. Лично мне он не подходит, ввиду использования encfs в облаках, который адекватно поддерживается в андрюше только на дропбоксе, для того же гуглодиска нужны как минимум гуглосервисы, а чем покупать всей семье новые смарты я предпочел бы хагрузить проц, ну не солить же эти ресурсы. Уж сколько было высказываний о том что шифрование будет вешать деаайс я у себя такого не наблюдаю. При самых ужасных раскладах пиковые значения исп-я процессора порядка 80%. При копировании больших файлов и так были примерно такие же "показания". Оттого таки ИМХО весьма полезная фича. Вам не нужно - берегите свой CPU. Quote Link to comment Share on other sites More sharing options...
zyxmon Posted July 4, 2016 Author Share Posted July 4, 2016 ....Уж сколько было высказываний о том что шифрование будет вешать деаайс я у себя такого не наблюдаю. При самых ужасных раскладах пиковые значения исп-я процессора порядка 80%. При копировании больших файлов и так были примерно такие же "показания". Оттого таки ИМХО весьма полезная фича. Вам не нужно - берегите свой CPU. Если речь о смартфонах или планшетах, то это же очевидно. Они все сейчас многоядерные. Encfs можно на многоядерном устройстве запустить с флагом -s (в 1 поток). На практике это почти не влияет. На одном arm устройстве было даже быстрее с -s. Реально encfs не грузит все ядра-потоки и вполне юзабельно на многоядерных устройствах (Ultra II, Giga III). Quote Link to comment Share on other sites More sharing options...
emlen Posted July 4, 2016 Share Posted July 4, 2016 Реально encfs не грузит все ядра-потоки и вполне юзабельно на многоядерных устройствах (Ultra II, Giga III). Напомню, у меня Giga II и тоже весьма юзабельно! Мне очень нравится. Quote Link to comment Share on other sites More sharing options...
vasek00 Posted July 4, 2016 Share Posted July 4, 2016 emlen Скорей всего вы не поняли HDD-USB---роутер-----Инет------ПК Обычно пользователи для подключения удаленно к своему роутеру используют сервер VPN на нем, получая доступ к разделу винта который подключен к нему. Клиент кладет на него уже шифрованный файл, т.е. файл передается уже зашифрованный. При чтении файл в данном случае он на "лету" точнее у клиента расшифровывается, вся на пруга на клиента. Не большая ремарка Boxcryptor — это всего лишь удобная графическая надстройка над encfs+fuse emlen Вам не нужно - берегите свой CPU. Да без проблем, пусть занимается тем что он умеет лучше всего делать. Quote Link to comment Share on other sites More sharing options...
Serser Ser Posted December 21, 2017 Share Posted December 21, 2017 Приветствую всех Кинетикоманов! Гайд - замечательный! Только хотелось бы его сделать оконченным с точки зрения юзабилити. Не могли бы вы подсказать, как примонтировать вместо /opt/mcrypto smb шару? (Чтобы был доступ к расшифрованным данным по сети) И как заставить это работать после перезагрузки роутера? Quote Link to comment Share on other sites More sharing options...
emlen Posted March 29, 2018 Share Posted March 29, 2018 Сейчас опять пользуюсь encfs, но столкнулся с неприятным моментом, при копировании больших файлов сам процесс копирования может спонтанно намертво фризиться, при том что htop кажет, что проц загружен не на 100%, другие сервисы на роутере продолжают работать нормально, все шары доступны... и получается возобновить копирование только после перемонтирования криптопапки с удалением недокопированного файла. Как с этим можно побороться? Quote Link to comment Share on other sites More sharing options...
emlen Posted June 10, 2018 Share Posted June 10, 2018 (edited) как же заставить его пусть медленно, но стабильно без вылетов работать?! Edited August 10, 2018 by emlen Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.