Rsync: как смонтировать truecrypt на лету на стороне получения?

Короткая версия: как я могу сохранить резервное копирование rsync на truecrypt объеме? Твердая часть должна монтировать/размонтировать этот объем на лету, когда это необходимо для rsync.

Подробнее

Это - моя конфигурация актуальной резервной копии (который работает довольно хорошо по большей части):

  • источник резервной копии находится на 64 битах Win7, место назначения является удаленным полем Linux (Debian)
  • фактическая передача данных сделана rsync через ssh (cwRsync с cygwin)
  • демон rsync запускается по требованию через ssh

На поле Linux резервное копирование защищено полномочиями файла только. Я хочу увеличить безопасность здесь и поместить резервное копирование в truecrypt объем. Я могу смонтировать предохранитель что объем вручную в оболочке. Вопрос состоит теперь в том, как я могу заставить rsync не только открыть соединение SSH и запуск rsync демона, но также и смонтировать truecrypt объем прежде (и размонтировать его после)?

Мои деньги находятся на опции --rsync-path который может использоваться для передачи командной строки ssh - при условии, что stdin и stdout все еще работают то же. Я предполагаю, что команда должна была бы быть сценарием оболочки. Действительно ли это возможно, и на что был бы похож сценарий?

Для ссылки вот кавычка той опции:

--rsync-path=PROGRAM

Используйте это для определения, какая программа должна быть запущена на удаленной машине для запущения rsync. Часто используемый, когда rsync не находится в пути удаленной оболочки по умолчанию (например. --rsync-path=/usr/local/bin/rsync). Отметьте это PROGRAM выполняется с помощью оболочки, таким образом, это может быть любой программой, сценарием, или управлять последовательностью, Вы хотели бы работать, пока это не повреждает стандарт - в и стандарт, который rsync использует для передачи.

Один хитрый пример состоит в том, чтобы установить другой каталог по умолчанию на удаленной машине для использования с --relative опция. Например:

rsync -avR --rsync-path="cd /a/b && rsync" host:c/d /e/

Это - полная rsync страница справочника.

3
задан 26.02.2011, 22:20

4 ответа

Между тем я разработал любые проблемы и имею решение, которое работает на меня с нескольких недель. В случае, если кому-либо интересно, я отправляю детали здесь. Эта статья Troy Johnson помогла по пути.

Предпосылки

  • Truecrypt установлен на Linux и доступный на пути
  • контейнер TC, подготовленный и доступный в /home/deepc/var/backup.tc
  • cygwin и rsync установлены в Windows и доступные на пути

Linux

Я сделал два сценария оболочки, чтобы смонтировать и размонтировать контейнер Truecrypt на поле Linux. Те сценарии называют удаленно через ssh от машины Windows:

~/bin/backup-mount.sh:

#!/bin/bash
# usage: backup-mount.sh <password>
~deepc/bin/backup-umount.sh
echo "$1" | sudo truecrypt -t --slot=2 -k "" --volume-type=normal --protect-hidden=no /home/deepc/var/backup.tc /home/deepc/mnt

~/bin/backup-umount.sh:

#!/bin/sh
sudo truecrypt -d /home/deepc/var/backup.tc

Windows

удаленный-backup.cmd:

@echo off
setlocal
set HOME=c:\home
set LC_ALL=de_DE.utf-8
set LC_CTYPE=de_DE.utf-8
set LANG=de_DE.utf-8

rem --iconv=utf-16,iso-88591
ssh -p THESSHPORT -i ../.ssh/id_dsa deepc@theremotehost.com bin/backup-mount.sh THEPASSWORD
rsync -rltvzPm --modify-window=1 --exclude-from=../etc/backup/excludes.txt --chmod=ugo=rwX --delete --delete-excluded --files-from=../etc/backup/files-from.txt -e "ssh -p THESSHPORT -i ../.ssh/id_dsa" --log-file=../tmp/remote-backup.log /cygdrive deepc@theremotehost.com:/home/deepc/mnt
ssh -p THESSHPORT -i ../.ssh/id_dsa deepc@theremotehost.com bin/backup-umount.sh

Поместите этот пакетный файл в планировщика задач, например, с ежедневным расписанием. Обязательно скорректируйте имя пользователя, удаленный хост, ssh порт, пароль контейнера Truecrypt и конечно резервные пути. Извините, но я не мог привести себя для очистки этого больше уже потратив впустую слишком много времени...

С этим сценарием будет читать Rsync, включает и исключает из двух текстовых файлов, например:

files-from.txt:

/c/Home/
/c/Users/deepc
...

excludes.txt:

Firefox/Cache
Firefox/*.lock
Thunderbird/*.lock
Thunderbird/**/*Junk*
Thunderbird/**/filterlog.html
Thunderbird/**/*.msf
Home/tmp
...

Готово?

Это, отвечает на исходный вопрос. Существует только одна незначительная проблема: специальные символы в именах файлов в Windows искажаются на Linux, при этом ext2 используется в контейнере TC на Linux. Я попробовал все комбинации за --iconv параметр я мог думать, но напрасно. Кажется, что я должен жить с тем - если некоторая храбрая душа не читала до здесь, знает ответ и просвещает меня в комментарии ;-) (NTFS в контейнере не опция),

1
ответ дан 08.12.2019, 01:44

Используйте truecrypt интерфейс командной строки.

truecrypt --mount file --password=password

должен работать и truecrypt-h должен дать Вам несколько идей. Однако пароль должен был бы затем быть сохранен в простом тексте в Вашем rsync файле. Старайтесь удостовериться, что это не заканчивается в некоторой истории удара на Вашем целевом поле, иначе дополнительная защита исчезла бы - злонамеренный взломщик мог просто звонить history | grep truecrypt, посмотрите свой пароль и имейте свои резервные копии.

0
ответ дан 08.12.2019, 01:44

Если Ваш truecrypt объем существует как файл в Windows, почему не просто копируют файл в машину Linux? Затем это шифруется в пути и уже шифруется, когда это добирается до места назначения. Добавьте к этому то, что Вы никогда не должны использовать учетные данные...

Если машина Windows поддерживает VSS, Вы смогли получать копию даже смонтированной файловой системы, которая так же последовательна, как это было бы, если Вы закрываете машину путем отключения.

Если объем не существует как файл, это не могло бы быть почти как легкое. Кроме того, я не знаю, как программировать использование VSS, но я понимаю, что это делает создание снимков для использования при резервном копировании. (Я не знаю слишком много о деталях).

0
ответ дан 08.12.2019, 01:44

Могло бы на самом деле быть ненужным сделать это, поскольку будет казаться, что rsync может эффективно сделать инкрементное резервное копирование truecrypt контейнера, не имея необходимость смотреть в нем.Примечание: Я предполагаю, что мотивация для того, чтобы сделать это должна извлечь пользу из возрастающей копии, которая не может быть намерением автора вопроса...

Мы рады сообщить, что внутренняя структура truecrypt образов дисков позволяет эффективно rsync их к удаленному местоположению. Это означает, что после начальной (полной) загрузки Вашего образа диска TrueCrypt, последующие загрузки эффективно передадут только изменения, которые были внесены в зашифрованную файловую систему начиная с ее последнего обновления.

Найденный на http://www.rsync.net/resources/howto/windows_truecrypt.html и также ссылке в этом потоке комментария: http://digg.com/news/technology/TrueCrypt_Tutorial_Truly_Portable_Data_Encryption

rsync не снова пошлет весь файл снова, как он обычно делает с файлами, зашифрованными с gpg и т.д. Truecrypt только изменяет части файла, которые требуют изменения

и

Я использую - неравнодушный и - оперативные опции, и это работает как очарование. Обычно передачи 2-3 ГБ каждый раз, в зависимости от сколько работы я делал на той неделе...

Я буду проверять это скоро, прокомментирует назад здесь с моими результатами.

0
ответ дан 08.12.2019, 01:44

Теги

Похожие вопросы