Rsync: як змонтувати truecrypt на ходу на стороні, що приймає?


3

Коротка версія: як я можу зберегти резервну копію 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 man .

Відповіді:


1

Тим часом я опрацював будь-які питання і маю рішення, яке працює для мене з кількох тижнів. У разі, якщо когось цікавить, я розміщую тут деталі. Ця стаття Трої Джонсона допомогла на цьому шляху.

Передумови

  • 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

віддалений-резервний.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 буде читати, що включає і виключає з двох текстових файлів, наприклад:

файли з.txt:

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

виключає.txt:

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

Зроблено?

Це відповіді на початкове запитання. Існує лише одна незначна проблема: спеціальні символи з іменами файлів для Windows налаштовані в Linux, а ext2 використовується в контейнері TC в Linux. Я спробував усі комбінації --iconvпараметру, про який я міг придумати, але безрезультатно. Здається, я маю з цим жити - якщо тільки якась відважна душа до цього часу не читала, не знає відповіді та просвічує мене в коментарі ;-) (NTFS в контейнері не є варіантом)


1

Я намагався зробити щось подібне. У мене на ноутбуці є контейнери Truecrypt, які я хочу синхронізувати з розташуванням у своєму NAS. Оскільки я хочу, щоб двостороння синхронізація використовувала Unison, а не rsync, але Unison реалізує протокол rsync, тому це має бути подібним в роботі.

Я використовував ідею синхронізації контейнера TC, хоча він був відключений і покладаючись на те, що TC змінює лише частини контейнера, якщо вноситься невелика кількість змін даних. Однак проблема, яку я знаходжу, полягає в тому, що через розмір контейнера (20 Гб і більше) для синхронізації все-таки потрібно назавжди синхронізувати, оскільки призначення (NAS), який має досить низький процесор, повинен перевірити суму файлу всього контейнера, щоб вирішити, чи це змінилося. Фактична передача є досить швидкою, але заздалегідь тривалий період, коли вона жує процесор.

Отже, замість цього я перейшов до іншого підходу, над яким працює deepc, встановивши контейнер на віддаленому кінці та синхронізуючи вміст. Це набагато швидше, якщо синхронізація займає декілька секунд, якщо нічого не змінилося (на відміну від> 45 хвилин при іншому підході). Єдине думка, яке спочатку мене стримувало від такого підходу, - це те, що я не міг скласти TC на моєму NAS (на основі Arm), але я вирішив цю проблему зараз, і зараз все працює дуже добре.

Я вважаю, що YMMV і "справжня" rsync можуть бути кращими, ніж Unison в цьому плані. Але я б пішов із синхронізацією вмісту контейнерів, а не самих контейнерів.


0

Використовуйте інтерфейс командного рядка truecrypt.

truecrypt --mount file --password=password

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


Дякую, я знаю, як змонтувати об'єм truecrypt з оболонки (як я писав). Йдеться про інтеграцію його з rsync. Автоматизоване кріплення на вимогу.
deepc

0

Якщо ваш том truecrypt існує як файл у Windows, чому б просто не скопіювати файл на машину Linux? Потім він шифрується під час транзиту і вже шифрується, коли потрапляє до пункту призначення. Додайте до цього той факт, що вам ніколи не доведеться використовувати облікові дані ...

Якщо машина Windows підтримує VSS, можливо, ви зможете отримати копію навіть змонтованої файлової системи, настільки ж послідовної, як це було б, якщо ви вимкнете апарат, потягнувши штекер.

Якщо тома не існує як файл, це може бути не так просто. Крім того, я не знаю, як запрограмувати використання VSS, але я розумію, що він робить знімки для використання під час створення резервної копії. (Я не знаю надто багато про деталі).


Ви втратите можливість робити додаткові резервні копії, що пропонує rsync.
користувач54114

0

Насправді це може бути зайвим, оскільки, здається, що rsync може ефективно робити додаткове резервне копіювання контейнера truecrypt, не заглядаючи всередину. Примітка. Я припускаю, що мотивацією для цього є отримання переваг додаткової копії, яка може не бути наміром запитувача ...

Ми раді повідомити, що внутрішня структура зображень дисків truecrypt дає змогу ефективно синхронізувати їх у віддаленому місці. Це означає, що після первинного (повного) завантаження зображення вашого диска TrueCrypt наступні завантаження ефективно перенесуть лише ті зміни, які були внесені до зашифрованої файлової системи з моменту останнього завантаження.

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

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

і

Я використовую параметри --partial та --inplace, і це працює як шарм. Як правило, щомісяця переказує 2-3 ГБ, залежно від того, скільки роботи я робив на цьому тижні ...

Я незабаром тестую це, прокоментую тут свої висновки.


Джон, ось що вже запропонував Slartibatfast. Хоча в той час ми вважали, що інкремент не буде працювати з таким підходом - але звучить так, ніби ви про це дізнаєтесь незабаром. Принаймні одна проблема для мене полягає в тому, що мені потрібно було б створити резервну копію TC-контейнера на комп'ютері. Я використовую FDE на цьому ПК, тому це не дуже практично для мене. У будь-якому випадку, я вже знайшов рішення у своєму користувальницькому шафі і опублікую відповідь з деталями.
deepc
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.