How to Wiki Database (change log)
http://[222:a8e4:50cd:55c:788e:b0a5:4e2f:a92c]
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
91 lines
4.0 KiB
91 lines
4.0 KiB
====== Шифрование файлов в Юникс-системах ====== |
|
|
|
===== Шифрование с помощью openssl ===== |
|
// |
|
Верховный суд США одобрил поправки в законодательство, дающие |
|
правоохранительным органам право на доступ к компьютерам, находящимся в |
|
любом месте, даже за границей. |
|
(с)Би-Би-Си |
|
// |
|
|
|
В связи с этим вот, что хочу сказать. Надежное шифрование файлов делается так: |
|
<code bash> |
|
openssl enc -e -aes-256-cbc -md sha256 -in FILE -out CRYPTFILE |
|
</code> |
|
Где FILE - это исходный файл, а CRYPTFILE - зашифрованный результат. |
|
|
|
Расшифровка: |
|
<code bash> |
|
openssl enc -d -aes-256-cbc -md sha256 -in CRYPTFILE -out FILE |
|
</code> |
|
Пароль вам предложат ввести. |
|
Конечно, шифрующих программ очень много, но это будет работать везде и |
|
всегда. Скажем, вы можете шифровать файл в IBM AIX, а расшифровать в Убунте |
|
или OpenBSD. Ничего устанавливать не нужно, это вcтроено в Юниксы. |
|
|
|
===== Шифрование с помощью GPG ===== |
|
|
|
Этот способ подходит как для создания бэкапов, так и для шифрования файлов с последующей безопасной отправкой какому-либо получателю. |
|
|
|
Если шифруете свой бэкап для себя же, в качестве публичного ключа получателя выбирайте свой публичный ключ (и желательно, чтобы он был бессрочным). |
|
|
|
Смотрим список ключей GPG: |
|
|
|
<code bash>gpg --list-keys</code> |
|
|
|
Сжимаем и шифруем: |
|
|
|
<code bash>tar -cz ./catalog/* | gpg --trust-model always -e -r 'User <user@server.com>' -o ./catalog.tar.gz.gpg |
|
#или так (c использованием ID ключа): tar -cz ./catalog/* | gpg --trust-model always -e -r 9719AC4AE23BBAF5399FE03AA997BBAC69B92B43 -o ./catalog.tar.gz.gpg |
|
#или так (c максимальным сжатием): tar -c ./catalog/* | gzip -9 | gpg --trust-model always -e -r 9719AC4AE23BBAF5399FE03AA997BBAC69B92B43 -o ./catalog.tar.gz.gpg</code> |
|
|
|
Расшифровываем и распаковываем: |
|
|
|
<code bash>gpg -d catalog.tar.gz.gpg | tar -xz |
|
#gpg попросит ввести пароль от приватного ключа. |
|
#файлы будут извлечены в текущий каталог.</code> |
|
|
|
Для удобства распаковки архивов, созданных с использованием разных архиваторов, можно применять подобный скрипт: \\ |
|
(можно прописать в ~/.bash_aliases) |
|
|
|
<code bash> |
|
#!/bin/sh |
|
|
|
#в качестве параметра указывать имя файла вида *.tar.gz.gpg или *.bz2.gpg |
|
|
|
if [ -z "$1" ] |
|
then |
|
echo 'Не указано имя файла для обработки. Выход.' |
|
exit 0 |
|
elif [ ! -f "$1" ] |
|
then |
|
echo "Указанный файл ($1) не существует. Выход." |
|
exit 0; |
|
fi |
|
|
|
DIR=$(dirname "$0") |
|
FNAME=$(echo "$1" | sed 's/.gpg$//g') |
|
gpg -o "$DIR/$FNAME" -d "$1" |
|
echo 'Расшифровка завершена.' |
|
|
|
case $FNAME in |
|
|
|
*'tar.gz'*) |
|
echo 'Распаковываем *.tar.gz...' |
|
tar -xf "$DIR/$FNAME" |
|
#rm -f "$DIR/$FNAME" |
|
echo 'Архивный файл распакован.' |
|
;; |
|
|
|
*'bz2'*) |
|
echo 'Распаковываем *.bz2...' |
|
bzip2 -d "$DIR/$FNAME" |
|
#rm -f "$DIR/$FNAME" |
|
echo 'Архивный файл распакован.' |
|
;; |
|
|
|
esac |
|
</code> |
|
|
|
====== Ссылки ====== |
|
GnuPG: [[wpru>GnuPG|https://ru.wikipedia.org/wiki/GnuPG]]
|
|
|