Яке хороше рішення для шифрування деяких файлів в unix? [зачинено]


44

Я шукаю утиліту для шифрування певних каталогів в Linux. Я не шукаю жодних послуг повного шифрування диска, а просто для шифрування декількох каталогів для зберігання файлів у хмарі. Після їх отримання мені доведеться розшифрувати їх, перш ніж вони можуть отримати доступ. Хочете зробити це для декількох каталогів (розміром кілька сотень ГБ). Будь-які ідеї? Переважно на основі CLI.

Відповіді:


51

Я використовую саме GnuPG для цього завдання. Папки спочатку запакуються в архів TAR-GZ:

tar czf files.tar.gz /path/to/my/files

Якщо цього ще не зроблено, спочатку потрібно створити приватну / відкриту пару GPG:

gpg --gen-key

Дотримуйтесь інструкцій. Значення за замовчуванням повинні бути достатніми для першого тесту. З'явиться щось подібне:

gpg (GnuPG) 2.0.18; Copyright (C) 2011 Фонд вільного програмного забезпечення, Inc.
Це безкоштовне програмне забезпечення: ви можете його змінювати та перерозподіляти.
НЕМАЄ ГАРАНТІЇ в межах, дозволених законом.

Виберіть, який тип ключа ви бажаєте:
   (1) RSA та RSA (за замовчуванням)
   (2) DSA та Elgamal
   (3) DSA (лише знак)
   (4) RSA (лише знак)
Ваш вибір? 1
Ключі RSA можуть бути довжиною від 1024 до 4096 біт.
Який розмір клавіш ви хочете? (2048) 4096
Запитаний розмір клавіш - 4096 біт
Вкажіть, будь ласка, як довго ключ повинен бути дійсним.
         0 = ключ не закінчується
        = ключ закінчується через n днів
      w = ключ закінчується через n тижнів
      m = ключ закінчується через n місяців
      y = ключ закінчується через n років
Ключ дійсний для? (0)
Ключ не закінчується
Це правильно? (у / н) у

GnuPG повинен створити ідентифікатор користувача для ідентифікації вашого ключа.

Справжнє ім'я: ключ шифрування файлів
Адреса електронної пошти: admin@company.org
Коментар: ключ шифрування файлів
Ви вибрали цей ідентифікатор USER:
    "Ключ шифрування файлу (ключ шифрування файлу)"

Змінити (N) ame, (C) omment, (E) пошту або (O) kay / (Q) uit? о

Вас попросять ввести пароль до ключа. Дуже рекомендується використовувати сильний. Він не потрібен для шифрування файлів у будь-якому випадку, тому не турбуйтеся про використання пакету пізніше.

Якщо все зроблено, на екрані з’явиться щось подібне:

Нам потрібно генерувати безліч випадкових байтів. Це гарна ідея
деякі інші дії (введіть на клавіатурі, перемістіть мишу, використовуйте
диски) під час основного покоління; це дає випадкове число
генератор - більший шанс отримати достатню кількість ентропії.
Нам потрібно генерувати безліч випадкових байтів. Це гарна ідея
деякі інші дії (введіть на клавіатурі, перемістіть мишу, використовуйте
диски) під час основного покоління; це дає випадкове число
генератор - більший шанс отримати достатню кількість ентропії.
gpg: ключ FE53C811, позначений як остаточний довіра
відкритий та підписаний відкритий та секретний ключ.

gpg: перевірка trustdb
gpg: потрібні 3 граничні показники, потрібні 1 комплект (и), довірна модель PGP
gpg: глибина: 0 дійсно: 1 підписано: 0 довіра: 0-, 0q, 0n, 0m, 0f, 1u
паб ***** / ******** 2013-03-19
      Відбиток ключа = **** **** **** **** **** **** **** **** ****
uid ключ шифрування файлу (ключ шифрування файлу) 
під ***** / ******** 2013-03-19

Тепер ви можете експортувати файл відкритого ключа для імпорту на інші машини:

gpg --armor --output file-enc-pubkey.txt --export 'File Encryption Key'

Це 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'

Переваги

  • Жоден із шифрів не повинен знати конфіденційну інформацію про шифрування - шифрування відбувається за допомогою відкритого ключа. (Ви можете створити пару ключів на локальній робочій станції і лише перенести відкритий ключ на ваші сервери)
  • У файлах сценаріїв чи завданнях паролі не з’являться
  • У будь-якій системі ви можете мати стільки ж шифрів
  • Якщо ви зберігаєте свій приватний ключ та секретну фразу, все добре, і дуже важко йти на компроміс
  • Ви можете розшифрувати приватним ключем на платформах Unix, Windows та Linux, використовуючи специфічну реалізацію PGP / GPG
  • Немає необхідності в спеціальних привілеях щодо шифрування та дешифрування систем, ні монтажу, ні контейнерів, ні спеціальних файлових систем

1
Зауважте, що залежно від даних, можна запустити швидше tarбез zперемикача, щоб уникнути його стискання.
l0b0

28

Зі свого боку, я в основному використовую два методи:

Перший спосіб: дьоготь і openssl

Тар-каталог

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

Він запитає пароль.

  • -r означає рекурсивно (ціле дерево папок)
  • -0 означає лише зберігати (не стискається, швидше)
  • -е означає архів шифрування

Одна з переваг цього: вона буде краще працювати з системою на основі Windows.


3
Введення пароля в командному рядку - це не дуже гарна ідея. Пароль залишається в історії оболонки.
пібі

1
Слід зазначити, що zip, за чутками , шифрування є чудовим.
Acumenus

22

Якщо ви не хочете зашифровувати свої файли за допомогою пари відкритих / приватних ключів і замість цього використовувати просто симетричне шифрування із фразою пропуску, скористайтеся такою командою:

gpg --symmetric --cipher-algo aes256 files.tar.gz

Вас попросять пропустити фразу. Після цього створюється зашифрований файл з назвою files.tar.gz.gpg.

Для розшифрування використовуйте команду

gpg --decrypt files.tar.gz.gpg > files.tar.gz

2

Ви можете використовувати truecrypt дуже просте і приємне рішення. Він має пакет для використання лише консолі. Це дуже просто вивчити та використовувати. http://www.truecrypt.org


4
Станом на 28 травня 2014 року TrueCrypt більше не є. Дивіться en.wikipedia.org/wiki/TrueCrypt
Брайс

2

З цією метою я б запропонував FUSE-шифрування (наприклад, encfs ) - для менших даних я б використовував gpg.

Він реалізований в просторі користувача, тому вам не потрібні спеціальні привілеї.


1

Існують деякі файлові системи Linux, призначені для шифрування даних. Ви вже думали про LUX, наприклад?


1

Дуже простий спосіб шифрування одного файлу:

gpg -c filename.ext

Вам буде запропоновано парольну фразу двічі, і буде створено gpg filename.ext.gpg. Завантажте зашифрований файл у вашу хмарну службу. Для відновлення файлу використовуйте:

gpg filename.ext.gpg

Яке відтворить filename.ext. Зауважте, що незашифровані файли не захищені, а відповідні дані залишаться на вашому носії навіть після видалення. Захищений лише контейнер gpg. EncFS є більш практичною альтернативою шифрування на основі хмар на рівні файлів.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.