<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>http://lorwiki.zhbert.ru/index.php?action=history&amp;feed=atom&amp;title=WebDav%2Be%D0%A1ryptFS</id>
	<title>WebDav+eСryptFS - История изменений</title>
	<link rel="self" type="application/atom+xml" href="http://lorwiki.zhbert.ru/index.php?action=history&amp;feed=atom&amp;title=WebDav%2Be%D0%A1ryptFS"/>
	<link rel="alternate" type="text/html" href="http://lorwiki.zhbert.ru/index.php?title=WebDav%2Be%D0%A1ryptFS&amp;action=history"/>
	<updated>2026-10-12T23:41:39Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.39.0</generator>
	<entry>
		<id>http://lorwiki.zhbert.ru/index.php?title=WebDav%2Be%D0%A1ryptFS&amp;diff=215&amp;oldid=prev</id>
		<title>Admin: 1 версия импортирована</title>
		<link rel="alternate" type="text/html" href="http://lorwiki.zhbert.ru/index.php?title=WebDav%2Be%D0%A1ryptFS&amp;diff=215&amp;oldid=prev"/>
		<updated>2023-02-27T18:39:16Z</updated>

		<summary type="html">&lt;p&gt;1 версия импортирована&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая версия&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия от 21:39, 27 февраля 2023&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>http://lorwiki.zhbert.ru/index.php?title=WebDav%2Be%D0%A1ryptFS&amp;diff=214&amp;oldid=prev</id>
		<title>lor&gt;Mandala: 1 версия импортирована</title>
		<link rel="alternate" type="text/html" href="http://lorwiki.zhbert.ru/index.php?title=WebDav%2Be%D0%A1ryptFS&amp;diff=214&amp;oldid=prev"/>
		<updated>2017-06-10T19:33:51Z</updated>

		<summary type="html">&lt;p&gt;1 версия импортирована&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Зачем? ==&lt;br /&gt;
&lt;br /&gt;
Чтоб использовать Яндекс.Диск или другие публичные файлопомойки с WebDAV-доступом для безопасного хранения приватной информации.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== А в чем проблемы? ==&lt;br /&gt;
&lt;br /&gt;
'''eCryptFS''' принадлежит к классу pseudo-filesystems, т.е. к файловым системам, которые работают прослойкой поверх обычных ФС. Но '''davfs2''' относится к сетевым стековым файловым системам, которые [https://bugs.launchpad.net/ecryptfs/+bug/277578 несовместимы] с '''eCryptFS'''.&lt;br /&gt;
&lt;br /&gt;
Поэтому нужно использовать фс-враппер - '''bindfs'''. Она скроет все несовместимости, хоть и вызовет некоторые неудобства.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Достоинства ==&lt;br /&gt;
* Прозрачное для пользователя шифрование информации, хранимой на сервисах третьих лиц.&lt;br /&gt;
* Особенностью eCryptFS является то, что к примонтированной ФС доступ имеет только один локальный пользователь - тот, кто выполнил монтирование. Другие локальные пользователи компьютера не могут получить прямой доступ к расшифрованным данным на примонтированной пользователем eCryptFS.&lt;br /&gt;
* Возможность доступа к данным с нескольких рабочих мест.&lt;br /&gt;
&lt;br /&gt;
== Недостатки ==&lt;br /&gt;
&lt;br /&gt;
* Нетривиальность решения.&lt;br /&gt;
* Плохая переносимость между различными платформами: eCryptFS доступна только под Linux и FreeBSD.&lt;br /&gt;
* Зашифрованные имена файлов и папок имеют префиксы вида ''ECRYPTFS_FNEK_ENCRYPTED'' и значительно бОльшую длину (от ~70 символов). Это может привлекать внимание третьих лиц или вызывать проблемы несовместимости соответственно.&lt;br /&gt;
* Зашифрованные файлы не являются однородными двоичными файлами. Формат каждого зашифрованного файла легко идентифицируется по заголовку и метаданным как eCryptFS-криптоконтейнер.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Софт ==&lt;br /&gt;
&lt;br /&gt;
Используем дистрибутив Archlinux. Нужно доустановить:&lt;br /&gt;
&lt;br /&gt;
# '''davfs2''' - утилиты для монтирования удаленных хранилищ через WebDAV&lt;br /&gt;
# '''ecryptfs-utils''' - утилиты для работы с ecryptfs.&lt;br /&gt;
# '''bindfs''' - аналог ''mount -o bind'', но работает через fuse, то есть полноценный костыль. bindfs нужен, потому что есть проблемы со скрещиванием 1 и 2.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# yaourt -S davfs2 bindfs ecryptfs-utils&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Настройка davfs2 ==&lt;br /&gt;
&lt;br /&gt;
# Создаем точку монтирования для WebDAV-ресурса &amp;lt;pre&amp;gt;# mkdir /mnt/yad&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Редактируем ''/etc/davfs/secrets''. Добавляем строчку с точкой монтирования, именем и паролем для webdav-ресурса: &amp;lt;pre&amp;gt;/mnt/yad  my_username  my_password&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Редактируем ''/etc/fstab''. Добавляем точку монтирования: &amp;lt;pre&amp;gt;https://webdav.yandex.ru/  /mnt/yad  davfs user,uid=user1,gid=user1,file_mode=600,dir_mode=700,rw,noexec,nosuid 0 0&amp;lt;/pre&amp;gt; где user1 поменять на uid/gid локального юзера, который будет пользоваться этим webdav-ресурсом.&lt;br /&gt;
# Монтируем: &amp;lt;pre&amp;gt;mount /mnt/yad&amp;lt;/pre&amp;gt;&lt;br /&gt;
# На webdav-ресурсе создаем поддиректорию ''data'', чтобы не засорять корень точки монтирования зашифрованными файлами: &amp;lt;pre&amp;gt;mkdir /mnt/yad/data&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Подготовка eCryptFS ==&lt;br /&gt;
&lt;br /&gt;
По настройке eCryptFS есть очень много документации ([https://wiki.archlinux.org/index.php?title=System_Encryption_with_eCryptfs&amp;amp;oldid=202100 например в Archwiki]), поэтому просто воспользуемся дефолтовым скриптом для настройки локальной шифрованной директории eCryptFS. От простого пользователя (т.е. от вышеупомянутого ''user1'') запускаем &amp;lt;pre&amp;gt;$ ecryptfs-setup-private&amp;lt;/pre&amp;gt; и отвечаем на пару элементарных вопросов касательно паролей.&lt;br /&gt;
&lt;br /&gt;
В результате работы скрипта, в домашней директории пользователя user1 появятся три новые поддиректории:&lt;br /&gt;
&lt;br /&gt;
* ''~/.Private'' - пока пустая папка. Сюда будут попадать зашифрованные файлы с зашифрованными именами.&lt;br /&gt;
* ''~/Private'' - пользовательская точка монтирования eCryptFS. Изначально, она не примонтирована и содержит пару ознакомительных файлов.&lt;br /&gt;
* ''~/.ecryptfs'' - файлы, необходимые для монтирования, в том числе пароль. Имеет права 700.&lt;br /&gt;
&lt;br /&gt;
Пока ничего не монтируем никуда.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== bindfs ==&lt;br /&gt;
&lt;br /&gt;
# В файле ''/etc/fuse.conf'' убеждаемся, что строка ''user_allow_other'' раскомменчена.&lt;br /&gt;
# Монтируем одну папку в другую: &amp;lt;pre&amp;gt;$ bindfs /mnt/yad/data -o noatime /home/user1/.Private&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Теперь изменения, происходящие в ''/home/user1/.Private'', на самом деле перенаправляются в ''/mnt/yad/data'', а eCryptFS работает надежно и без ошибок.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Монтирование eCryptFS и проверка ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ecryptfs-mount-private&lt;br /&gt;
$ ls /mnt/yad/data&lt;br /&gt;
И ничего нет&lt;br /&gt;
$ touch ~/Private/abcdef&lt;br /&gt;
$ ls /mnt/yad/data&lt;br /&gt;
ECRYPTFS_FNEK_ENCRYPTED.ABVCy.SDFHTHRDSTHSdgfhdthdRH5454ye4hHGFDGHrh6rhedrhdRTh46--&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
На последней строчке - имя зашифрованного файла на webdav-ресурсе, который является шифрованной копией файла abcdef.&lt;br /&gt;
&lt;br /&gt;
== Скрипт быстрого монтирования ==&lt;br /&gt;
Для автоматизации рутинных действий ручного монтирования можно использовать следующий скрипт. Перед созданием скрипта делаем это:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cd /home/user1&lt;br /&gt;
# umount Private&lt;br /&gt;
# cd Private&lt;br /&gt;
# touch mount&lt;br /&gt;
# chmod +x mount&lt;br /&gt;
# chown user1:user1 mount&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В созданный файл ''~/Private/mount'' записываем следующий скрипт:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
YAD_ROOT=/mnt/yad&lt;br /&gt;
PRIV_ROOT=$HOME/.Private&lt;br /&gt;
YAD_DATA=$YAD_ROOT/data&lt;br /&gt;
&lt;br /&gt;
## модуль ecryptfs загружен?&lt;br /&gt;
lsmod | grep ecryptfs &amp;gt;/dev/null || sudo modprobe ecryptfs&lt;br /&gt;
&lt;br /&gt;
## webdav-ресурс примонтирован?&lt;br /&gt;
mountpoint -q &amp;quot;$YAD_ROOT&amp;quot; || mount $YAD_ROOT&lt;br /&gt;
&lt;br /&gt;
## bindfs сделан?&lt;br /&gt;
mountpoint -q &amp;quot;$PRIV_ROOT&amp;quot; || bindfs $YAD_DATA -o noatime $PRIV_ROOT&lt;br /&gt;
&lt;br /&gt;
## и теперь монтируем ecryptfs&lt;br /&gt;
ecryptfs-mount-private&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== На несколько компьютеров ==&lt;br /&gt;
&lt;br /&gt;
Чтобы использовать зашифрованный ресурс на другом компьютере, нужно повторить вышеописанные шаги. Но если при вызове ''ecryptfs-setup-private'' вы выбрали случайный пароль для шары, то нужно будет дополнительно скопировать файлы ''~/.ecryptfs/wrapped-passphrase'' и ''~/.ecryptfs/Private.sig'' с исходного компьютера на целевой.&lt;/div&gt;</summary>
		<author><name>lor&gt;Mandala</name></author>
	</entry>
</feed>