У линейки NAS Synology есть возможность шифрования пользовательских директорий. С точки зрения пользователя и производительности данный процесс проходит незаметно. С точки зрения восстановления данных в случае физического выхода из строя непосредственно Synology возникают вопросы.
Решение достаточно простое.
Попробуем зашифровать данные на synology и восстановить их на другом компьютере под управлением linux.
1. Создаем папку «test»
В консоли она выглядит как:
DiskStation> mount /volume2/@test@ on /volume2/test type ecryptfs (rw,ecryptfs_sig=d1a01d50c3f21e00,ecryptfs_fnek_sig=d1a01d50c3f21e00,ecryptfs_cipher=aes,ecryptfs_key_bytes=32) DiskStation> |
Шифрованные данные у нас хранятся в папке «@test@». Заголовки файлов тоже зашифровываны.
DiskStation> cd /volume2/@test@ DiskStation> DiskStation> ll drwxrwxrwx 2 root root 4096 Apr 27 23:06 . drwxr-xr-x 23 root root 4096 May 9 17:40 .. -rwxrwxrwx 1 admin users 24576 Nov 9 2010 ECRYPTFS_FNEK_ENCRYPTED.FWbFc.pEkz6S--Zpr-2Dd2NYpDmWazP5XzYWVeykmHA9VYWnIBByabjQtE-- -rwxrwxrwx 1 admin users 12288 Apr 3 2012 ECRYPTFS_FNEK_ENCRYPTED.FWbFc.pEkz6S--Zpr-2Dd2NYpDmWazP5XzYWtM3rznMpxRScrFYYkhUTwU-- -rwxrwxrwx 1 admin users 28672 Apr 3 2012 ECRYPTFS_FNEK_ENCRYPTED.FWbFc.pEkz6S--Zpr-2Dd2NYpDmWazP5XzYWy9O2gyYttBSkbxQ07Q6pok-- |
Расшифрованные в папке «test».
DiskStation> cd /volume2/test DiskStation> DiskStation> ll drwxrwxrwx 2 root root 4096 Apr 27 23:06 . drwxr-xr-x 23 root root 4096 May 9 17:40 .. -rwxrwxrwx 1 admin users 1362 Apr 3 2012 1354.gif -rwxrwxrwx 1 admin users 17519 Apr 3 2012 1354.png -rwxrwxrwx 1 admin users 12382 Nov 9 2010 my2010.jpg |
Шифрование происходит через eCryptfs — файловую систему с ассиметричным шифрованием файлов.
2. Скачиваем «/volume2/@test@» на нашу linux машину.
Всё, что нужно для работы eCryptfs, во всех современных Linux-дистрибутивах имеются как правило по умолчанию «из коробки».
3. Ставим ecryptfs (у меня centos 6.4):
linux>yum install ecryptfs* Setting up Install Process Package ecryptfs-utils-python-82-6.el6_1.3.i686 already installed and latest version Package ecryptfs-utils-82-6.el6_1.3.i686 already installed and latest version Package ecryptfs-utils-devel-82-6.el6_1.3.i686 already installed and latest version |
4. Создадим пустой каталог, в который будут примонтированы расшифрованные данные:
# mkdir /mnt/decode-test |
5. Теперь смонтируем в созданный каталог используя eCryptfs ранее зашифрованные данные:
# mount -t ecryptfs /mnt/@test@/ /mnt/decode-test |
После ввода команды вам необходимо ввести пароль для ключа шифрования, тот самый, который мы вводили в web интерфейсе synology:
Passphrase: |
Далее, выбираем алгоритм шифрования, по-умолчанию — AES, совпадает с тем, что у нас «ecryptfs_cipher=aes»:
Select cipher: 1) aes: blocksize = 16; min keysize = 16; max keysize = 32 (not loaded) 2) blowfish: blocksize = 16; min keysize = 16; max keysize = 56 (not loaded) 3) des3_ede: blocksize = 8; min keysize = 24; max keysize = 24 (not loaded) 4) twofish: blocksize = 16; min keysize = 16; max keysize = 32 (not loaded) 5) cast6: blocksize = 16; min keysize = 16; max keysize = 32 (not loaded) 6) cast5: blocksize = 8; min keysize = 5; max keysize = 16 (not loaded) Selection [aes]: |
Необходимо выбрать размер ключа, у меня он 32bytes, как можно было заметить в первом пункте: ecryptfs_key_bytes=32:
Select key bytes: 1) 16 2) 32 3) 24 Selection [16]:2 |
Разрешаем или запрещаем доступ к файлам, которые не были зашифрованы при помощи eCrypfs:
Enable plaintext passthrough (y/n) [n]:n |
Шифровать или нет имена файлов, ставим «да»:
Enable filename encryption (y/n) [n]:y |
Если все параметры указаны верно, можно подтверждать монтирование и в «/mnt/decode-test» увидеть свои данные:
Would you like to proceed with the mount (yes/no)? : y |