20 нояб. 2000 г.

Азы linux (для детей) урок 40

Использование rsync

Программа rsync представляет собой быстрый и гибкий инструмент для удаленного резервного копирования. Она часто встречается на UNIX и UNIX-подобных системах, легко настраивается и используется в сценариях. Хотя r в rsync означает "удаленный", вы не должны понимать это слишком буквально. Ваше "удаленное" устройство может быть просто устройством USB или другим разделом жесткого диска, вам не обязательно иметь две отдельные машины.

Пример: применение rsync к устройству USB

Как уже говорилось в Разделе 3.1.2.3 "Точки монтирования", мы сначала должны смонтировать устройство. Возможно, это должно быть сделано под root'ом:
root@theserver# mkdir /mnt/usbstore

root@theserver# mount -t vfat /dev/sda1 /mnt/usbstore
Удобство для пользователя
Все больше и больше дистрибутивов предоставляют доступ к съемным устройствам для непривилегированных пользователей и монтируют USB-устройства, CD-диски и другие съемные устройства автоматически.
Заметим, что такая директива требует USB поддержку, которая устанавливается на вашей системе. Проверьте с dmesg, что /dev/sda1 действительно является устройством для монтирования.
Затем вы можете непосредственно начать создавать резервную копию, например, каталога /home/karl:
karl@theserver:~> rsync -avz /home/karl/ /mnt/usbstore
Как обычно, за дополнительной информацией обращайтесь к man-страницам.

Шифрование


Общие замечания

Почему вам следует шифровать данные?

Шифрование - это синоним секретности. Совместно с резервным копированием, шифрование может быть очень полезно, например, если вам нужно оставить зарезервированные данные в месте, где вы не можете контролировать доступ, допустим, на сервере вашего провайдера.
Кроме того, шифрование может быть также применено к электронной почте: обычно, почта не шифруется и часто пересылается в открытом виде по местной сети или Интернет. Если ваше сообщение содержит конфиденциальную информацию, лучше его зашифровать.

GNU Privacy Guard

В операционных системах Linux вы найдете GnuPG, GNU Privacy Guard, который представляет собой набор программ, совместимых с инструментами PGP (Pretty Good Privacy), который имеется в продаже.
В этом руководстве мы обсудим только очень простое использование инструментов шифрования и покажем, что вам следует делать, чтобы генерировать ключ шифрования и использовать его для шифрования данных, после чего вы сможет безопасно хранить их в общественном месте. Более сложные способы использования можно найти на man-страницах различных команд.

Генерирование ключа

Перед началом шифрования данных, необходимо создать пару ключей. Пара состоит из закрытого и открытого ключа. Вы можете отправить открытый ключ корреспондентам, которые могут использовать его для шифрования данных для вас, которые вы будете расшифровывать вашим закрытым ключом. Вы всегда должны хранить закрытый ключ, никогда не делиться им с кем-то еще, иначе другие будут иметь возможность расшифровать данные, предназначенные только для вас. Просто чтобы была уверенность, что ничего не случится, закрытый ключ защищается паролем. Пара ключей создается с помощью следующей команды:
willy@ubuntu:~$ gpg --gen-key
gpg (GnuPG) 1.4.2.2; Copyright (C) 2005 Free Software Foundation, Inc.
This program comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it
under certain conditions.  See the file COPYING for details.

gpg: directory `/home/willy.gnupg' created
gpg: new configuration file `/home/willy/.gnupg/gpg.conf' created
gpg: WARNING: options in `/home/willy/.gnupg/gpg.conf' are not yet
 active during this run
gpg: keyring `/home/willy/.gnupg/secring.gpg' created
gpg: keyring `/home/willy/.gnupg/pubring.gpg' created
Please select what kind of key you want:
    (1) DSA and Elgamal (default)
    (2) DSA (sign only)
    (5) RSA (sign only)
Your selection? 1
DSA keypair will have 1024 bits.
ELG-E 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 month
      y = key expires in n years
Key is valid for? (0) 0
Key does not expire at all
Is this correct? (y/N) y

You need a user ID to identify your key; the software constructs the
user ID from the Real Name, Comment and Email Address in this form:
    "Heinrich Heine (Der Dichter) "

Real name: Willy De Wandel
Email address: wdw@mvg.vl
Comment: Willem
You selected this USER-ID:
    "Willy De Wandel (Willem) "

Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O
You need a Passphrase to protect your secret key.
					 
Passphrase:
Теперь введите свой пароль. Это может быть фраза любой длины и содержания, единственным условием является то, что вы должны быть в состоянии запомнить ее навсегда. Для проверки необходимо ввести ту же фразу еще раз.
Теперь пара ключей генерируется программой, которая порождает случайные числа, и эта деятельность, среди прочих факторов, обеспечивается текущей активностью системы. Так что хорошей идеей будет запуск в это время каких-нибудь программ, перемещение курсора мыши или ввод некоторых случайных символов в окне терминала. Это повысит шансы генерирования числа, которое содержит множество различных цифр, и ключ будет труднее взломать.

О вашем ключе

Когда ваш ключ будет создан, вы получите сообщение об "отпечатках пальцев". Это последовательность из 40 шестнадцатеричных чисел, которая представляет собой достаточно длинную последовательность, ее почти невозможно создать дважды на любом компьютере. Вы можете быть в достаточной степени уверены, что это уникальная последовательность. Краткая форма этого ключа состоит из вашего имени, потом следуют последние 8 шестнадцатеричных чисел.
Вы можете получить информацию о вашем ключе следующим образом:
willy@ubuntu:~$ gpg --list-keys
/home/willy/.gnupg/pubring.gpg
------------------------------
pub     1024D/BF5C3DBB 2006-08-08
uid                    Willy De Wandel (Willem) 
sub     4096g/A3449CF7 2006-08-08
Для данного ключа key ID имеет значение "BF5C3DBB". Вы можете отправить ваши key ID и имя на сервер ключей, таким образом другие люди смогут получить эту информацию о вас и использовать ее для шифрования данных для вас. Кроме того, вы можете непосредственно отправить ваш открытый ключ людям, которым он нужен. Открытая часть ключа представляет собой длинный ряд цифр, которые вы можете увидеть при использовании опции --export команды gpg:
gpg --export -a
Однако, мы считаем, что в пределах данного руководства вам потребуется только ключ для шифрования и дешифрования данных для себя. Читайте man-страницы команды gpg, если хотите знать больше.

Шифрование данных

Теперь вы можете шифровать архивы .tar или сжатые архивы, перед сохранением их на резервном носителе или транспортировке на сервер, предназначенный для бэкапов. Используйте команду gpg вот так:
gpg -e -r (part of) uid archive
Опция -e говорит gpg шифровать данные, опция -r указывает, для кого выполняется шифрование. Имейте в виду, что только пользователи, чьи имена следуют после опции -r будут в состоянии расшифровать данные. Например:
willy@ubuntu:~$ gpg -e -r Willy /var/tmp/home-willy-20060808.tar

Расшифровка файлов

Используя опцию -d, вы можете расшифровать файлы, которые были зашифрованы для вас. Данные будут прокручиваться на экране, но зашифрованная копия останется на диске. Таким образом, для файлов, которые имеют отличный от обычного текста формат, вы захотите сохранить расшифрованные данные, чтобы посмотреть их соответствующей программой. Это делается с помощью опции -o команды gpg:
willy@ubuntu:~$ gpg -d -o /var/tmp/home-willy-decrypt.tar /var/tmp/home-willy-20060808.tar.gpg

You need a passphrase to unlock the secret key for
user: "Willy De Wandel (Willem) "
4096 ELG-E key, ID A3449CF7, created 2006-08-08 (main key ID BF5C3DBB)

gpg: encrypted with 4096-bit ELG-E key, ID A3449CF7, created 2006-08-08
        "Willy De Wandel (Willem) "
Нет пароля = нет данных
Если вы не сможете вспомнить свой пароль, данные будут потеряны. И даже системный администратор не сможет расшифровать данные. Именно поэтому копии важных ключей иногда хранят в запечатанном сейфе в банке.