среда, 22 декабря 2010 г.

Правильная синхронизация файлов.


Правильная синхронизация файлов.

Максим Тигулев
FreeFileSync и TrueCryptДля тех из наших читателей, для кого компьютер является основным, а зачастую единственным рабочим инструментом, чьи результаты труда выражаются только в цифровом виде, в последовательностях нулей и единиц, жизненно важно сохранить результаты труда, крайне необходимо безопасно принести их с собой и очень желательно, что они всегда были доступны. В первой части статьи мы рассмотрим рабочий пример построения системы безопасного обмена файлами между компьютером и мобильным носителем на базе программFreeFileSync и TrueCrypt. Во второй части мы поговорим о способах усиления защиты переносимых данных, как с помощью программных, так и с помощью аппаратных сред ств.

Предположим, что у нас есть компьютеры в офисе и дома, на этих компьютерах мы работаем с разными документами, как обычными, так и служебными (увы, иногда приходится брать работу на дом). Необходимо так настроить нашу систему, чтобы на всех компьютерах всегда были актуальные наборы рабочих файлов. То есть, придя в офис утром, нужно быстро и точно обновить содержимое документов на рабочем компьютере, а уходя домой, не забыть взять с собой все нужные материалы. Ситуация абсолютно жизненная, систему мы построим реально работающую, поэтому дополнительно укажем каталоги, к примеру, все документы на рабочем компьютере хранятся в каталоге C:\Documents and Settings\username\My Documents\, а на флеш-диск мы будем сохранять их в каталог E:\My Documents\. Отметим, что в статье будут рассматриваться версии программ и скрипты для Windows, однако описанная схема вполне реализуема и на базе Unix-систем.
Итак, схематически изобразим описываемый файловый обмен (для простоты показано направление обмена в одну сторону, с работы - домой):
Схема переноса файлов
Непринужденная передача файлов (Free File Sync)
Начнем построение нашей системы с программы FreeFileSync. Она предназначена для автоматического сравнения и переноса файлов между указанными каталогами и подкаталогами. Программа свободна, распространяется по лицензии GNU GPL, но если программа вам пригодилась, автора можно отблагодарить. Установка программы возможна в двух вариантах - на локальный компьютер пользователя и в носимом, например на флеш-диске. Мы используем портативный режим установки, разместив исполнимые файлы FreeFileSync в каталоге мобильного носителя, в этом режиме настройки программы хранятся в каталоге программы, не привязываясь к компьютеру. Для установки модуля в портативном режиме после запуска установщика нужно выбрать пункт Portable (портативная установка) и указать каталог на флеш-диске. В нашем случае это каталог E:\App\FileSync\.
Вид главного окна программы
Главное окно программы состоит из двух панелей, отображающих содержимое пары синхронизируемых каталогов. После выбора каталогов можно нажать кнопку "Сравнить", программа проверит содержимое каталогов и отразит различия. Нажатие кнопки "Синхронизировать" запустит процедуру обмена файлами, по завершении которой каталоги будут одинаковыми. Вот, собственно, и все. Понятно, что можно выполнить все действия вручную и так делать по нескольку раз в день, но, чтобы было действительно удобно, процесс надо автоматизировать, поэтому следующим шагом создадим задание.
Окно сохранения задания
Выберем пункт меню "Дополнительно/Создать задание", появится окно "Пакетное задание". Пара каталогов в окне уже будет определена - программа подставит каталоги из главного окна, поэтому нам останется только сохранить задание в файл с несколько непривычным для пользователей Windows расширением ffs_batch. Если для вашей работы необходимо синхронизировать еще какие-то файлы вне каталога My Documents, в это же задание можно добавить другие пары каталогов, нажав на значок "плюс" слева от названий каталогов. Дадим файлу задания какое-нибудь осмысленное имя, например SyncJob_Work_to_Flash.ffs_batch, и сохраним в каталог E:\App\FileSync\ на флеш-диске. После того как мы создали файл с заданием, его можно выполнять, запуская программу из командной строки или настроив автоматическое выполнение по расписанию. Поскольку мы говорим про рабочую систему, приведем пример реального командного файла, размещенного в корневом каталоге нашего флеш-диска. Данный командный файл берет путь для з апуска программы из системной переменной %CD%, поэтому букву, под которой подключен флеш-диск, можно не принимать во внимание. Остальные пути заданы относительно этого каталога.
rem Имя скрипта FFS_at_Work.cmd rem Скрипт для запуска сессии FreeFileSync на рабочем компьютере rem должен быть размещен в корневом каталоге флеш-диска rem  @echo off rem системная переменная CD задает путь к каталогу запуска командного файла echo Start from %CD% folder rem  rem Установка переменных окружения rem Путь к программе FreeFileSync set FFC_DIR=App\FileSync rem Имя файла задания  set FFC_BATCH_NAME=SyncJob_Work_to_Flash.ffs_batch  echo Starting application %CD%%FFC_DIR%\FreeFileSync.exe %CD%%FFC_DIR%\%FFC_BATCH_NAME% rem Запуск программы FFS %CD%%FFC_DIR%\FreeFileSync.exe %CD%%FFC_DIR%\%FFC_BATCH_NAME% 
В результате выполнения данного командного сценария все файлы из каталога My Documents будут выровнены с файлами на флеш-диске согласно ранее настроенному заданию. Скорее всего, пути к каталогу документов на домашней машине у вас будут другие, поэтому для выполнения такой же процедуры дома необходимо создать еще один файл с заданием, синхронизирующий флеш-диск уже с домашним каталогом документов, и поменять в сценарии имя файла задания. Можно также сделать более универсальный командный файл, учитывающий имя компьютера, но это уже другая история.
Правдивое шифрование - TrueCrypt
Теперь поговорим о защите чувствительных (sensitive) данных. Если мы вынуждены работать с такими данными, то переносить их на мобильных носителях в открытом виде было бы абсолютно неверно. Давайте воспользуемся открытой системой шифрования TrueCrypt. Программа предоставляет широкие функции по шифрованию информации, но для наших целей мы воспользуемся возможностью создать на каком-либо носителе защищенный файл ("контейнер") и подключить этот контейнер к операционной системе как обычный диск. После этого в контейнер можно записывать и читать из него файлы, при этом информация будет на лету расшифровываться и зашифровываться.
Главное окно программы TrueCrypt
Как и предыдущую программу, установим TrueCrypt в мобильном режиме на наш флеш-диск в каталог E:\App\TrueCrypt\, запустим ее и создадим защищенный файл-контейнер с помощью мастера. Для этого надо выбрать пункт меню "Тома/Создать новый том", указать пункт "Создать зашифрованный файловый контейнер" и следовать указаниям мастера. При создании контейнера защитим его паролем (прочие возможности будут рассмотрены позже). Давайте поместим файл-контейнер прямо в корневом каталоге My Documents рабочего компьютера. Почему именно здесь, будет понятно далее.
Для подключения созданного контейнера в главном окне программы нажмем кнопку "Файл", выберем созданный контейнер, укажем в верхнем списке букву диска, на которую будет подключен контейнер, и нажмем кнопку "Смонтировать". Можете убедиться, что в системе появился новый диск. На него теперь можно записывать рабочие данные. По завершении работ закроем все приложения, работавшие с контейнером, и отключим диск, нажав в главном окне TrueCrypt кнопку "Размонтировать".
Теперь, если мы запустим синхронизацию с флеш-диском, контейнер будет автоматически скопирован на него вместе с защищенным содержимым (мы специально разместили его в каталоге My Documents, чтобы контейнер попал в список сверяемых каталогов). Теперь мы точно не забудем ни один файл, в том числе и особо важный.
Важное примечание. По умолчанию программа TrueCrypt не изменяет дату и время файла-контейнера, а программа FreeFileSync использует эти поля для проверки изменений, поэтому для правильной работы синхронизации необходимо разрешить программе TrueCrypt изменять дату и время файла-контейнера в случае изменений содержимого. Для чего нужно убрать "галку" в меню "Настройки/Параметры/Сохранять дату изменения у файл-контейнеров". Теперь, если содержимое контейнера менялось, после его размонтирования дата и время файла будут обновлены.
Покажем, как автоматизировать подключение/отключение контейнера из командного файла. С учетом того, что документы мы разместили в "стандартном" каталоге Windows, возьмем путь к этому каталогу из переменной %USERPROFILE%. Ключ командной сроки /mountoption timestamp указывает программе TrueCrypt на необходимость изменять дату и время файла-контейнера.
rem Имя скрипта Mount_TC.cmd rem Скрипт для подключения контейнера TrueCrypt  rem должен быть размещен в корневом каталоге флеш-диска @echo off echo Start from %CD% folder rem  rem Установка переменных окружения  rem Название файла контейнера set CONTAINER_NAME=container_test.tc rem Буква диска, на которую будет смонтирован контейнер set DRIVE_LETTER=X: echo mount container "%USERPROFILE%\My Documents\%CONTAINER_NAME%" to %DRIVE_LETTER% %CD%App\TrueCrypt\TrueCrypt.exe /volume "%USERPROFILE%\My Documents\%CONTAINER_NAME%" /letter %DRIVE_LETTER% /mountoption timestamp /quit 
Скрипт для размонтирования контейнера будет выглядеть похоже:
rem Имя скрипта Unmount_TC.cmd rem Скрипт для отключения контейнера TrueCrypt  rem должен быть размещен в корневом каталоге флеш-диска @echo off echo Start from %CD% folder rem Установка переменных окружения  rem Буква диска, от которой надо отключить контейнер set DRIVE_LETTER=X: echo unmount container from %DRIVE_LETTER% %CD%App\TrueCrypt\TrueCrypt.exe /dismount %DRIVE_LETTER% /quit 
Итак, использовав программу синхронизации каталогов совместно с программой шифрования, мы получили рабочую систему, которая позволяет переносить (и не забыть сохранить) как простые, так и чувствительные данные на мобильном носителе. В следующей части мы рассмотрим, как усилить безопасность чувствительных данных, получив практически профессиональную защиту.

Ссылки по теме:
Автор статьи: Максим Тигулев

Комментариев нет:

Отправить комментарий