Я ищу утилиту для шифрования определенных каталогов в Linux. Я не ищу никаких сервисов полного шифрования диска, а просто зашифрую несколько каталогов для хранения файлов в облаке. Получив их, мне придется расшифровать их, прежде чем к ним можно будет получить доступ. Собираемся сделать это для пары каталогов (размером несколько сотен ГБ). Любые идеи? Желательно на основе CLI.
Я использую только GnuPG для этой задачи. Папки сначала упаковываются в архив TAR-GZ:
tar czf files.tar.gz /path/to/my/files
Если это еще не сделано, вам нужно сначала создать пару закрытых / открытых ключей GPG:
gpg --gen-key
Следуйте инструкциям. Значений по умолчанию должно хватить для первого теста. Появится что-то вроде этого:
gpg (GnuPG) 2.0.18; Copyright (C) 2011 Free Software Foundation, Inc. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Please select what kind of key you want: (1) RSA and RSA (default) (2) DSA and Elgamal (3) DSA (sign only) (4) RSA (sign only) Your selection? 1 RSA keys may be between 1024 and 4096 bits long. What keysize do you want? (2048) 4096 Requested keysize is 4096 bits Please specify how long the key should be valid. 0 = key does not expire = key expires in n days w = key expires in n weeks m = key expires in n months y = key expires in n years Key is valid for? (0) Key does not expire at all Is this correct? (y/N) y GnuPG needs to construct a user ID to identify your key. Real name: File Encryption Key Email address: admin@company.org Comment: File Encryption Key You selected this USER-ID: "File Encryption Key (File Encryption Key) " Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? o
Вам будет предложено ввести кодовую фразу для ключа. Настоятельно рекомендуется использовать более сильный. В любом случае он не нужен для шифрования файлов, поэтому не беспокойтесь о пакетном использовании позже.
Если все будет сделано, на вашем экране появится что-то вроде этого:
We need to generate a lot of random bytes. It is a good idea to perform some other action (type on the keyboard, move the mouse, utilize the disks) during the prime generation; this gives the random number generator a better chance to gain enough entropy. We need to generate a lot of random bytes. It is a good idea to perform some other action (type on the keyboard, move the mouse, utilize the disks) during the prime generation; this gives the random number generator a better chance to gain enough entropy. gpg: key FE53C811 marked as ultimately trusted public and secret key created and signed. gpg: checking the trustdb gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model gpg: depth: 0 valid: 1 signed: 0 trust: 0-, 0q, 0n, 0m, 0f, 1u pub *****/******** 2013-03-19 Key fingerprint = **** **** **** **** **** **** **** **** **** **** uid File Encryption Key (File Encryption Key) sub *****/******** 2013-03-19
Теперь вам может понадобиться экспортировать файл открытого ключа для импорта на другие машины:
gpg --armor --output file-enc-pubkey.txt --export 'File Encryption Key'
Ключ шифрования файла
- это имя, которое я ввел во время процедуры генерации ключа.
Теперь я использую GnuPG на вновь созданном архив:
gpg --encrypt --recipient 'File Encryption Key' files.tar.gz
Теперь у вас есть файл files.tar.gz.gpg
, который зашифрован.
Вы можете расшифровать его с помощью следующей команды (вам будет предложено ввести кодовую фразу):
gpg --output files.tar.gz --decrypt files.tar.gz.gpg
Это вся магия.
Убедитесь, что вы сделали резервную копию вашего ключа! И никогда не забывайте свой пароль! Если резервное копирование не выполнено или не забыто, у вас есть гигабайты нежелательной информации!
Создайте резервную копию вашего закрытого ключа с помощью этой команды:
gpg --armor --output file-enc-privkey.asc --export-secret-keys 'File Encryption Key'
Преимущества
Со своей стороны, я в основном использую два метода:
tar cvf backup.tar /path/to/folder
Вы можете удалить переключатель [v] из команды tar для отключения подробного режима.
openssl aes-128-cbc -salt -in backup.tar -out backup.tar.aes -k yourpassword
Вы можете изменить aes-128-cbc на любой другой метод шифрования, поддерживаемый openssl (openssl --help).
openssl aes-128-cbc -d -salt -in backup.tar.aes -out backup.restored.tar
Он запросит пароль.
zip -r -0 -e backup.zip /path/to/folder
Запрашивает пароль.
Одно из преимуществ этого: он лучше работает с системой на базе Windows.
Вы можете использовать truecrypt очень простое и красивое решение. У него есть пакет только для консольного использования. Его очень просто изучить и использовать. http: //www.truecrypt. org
Если вы не хотите шифровать файлы с помощью общедоступной / private key и используйте вместо этого просто симметричное шифрование с парольной фразой, используйте следующую команду:
gpg --symmetric --cipher-algo aes256 files.tar.gz
Вам будет предложено ввести парольную фразу. После этого создается зашифрованный файл с именем files.tar.gz.gpg
.
Для расшифровки используйте команду
gpg --decrypt files.tar.gz.gpg > files.tar.gz
Очень простой способ зашифровать один файл:
gpg -c filename.ext
Дважды будет запрошена парольная фраза, и gpg создаст filename.ext.gpg
. Загрузите зашифрованный файл в свой облачный сервис. Для восстановления файла используйте:
gpg filename.ext.gpg
Который воссоздает filename.ext.ext
. Обратите внимание, что файлы unencrypted не являются безопасными, и соответствующие данные останутся на вашем носителе данных даже после удаления. В безопасности находится только контейнер gpg. EncFS является более практичной альтернативой облачному шифрованию на уровне файлов.