Rsync를 통한 암호화 된 원격 백업?


13

기타 백업 등을 위해 집에서 작은 CentOS 서버를 운영하고 있습니다. 도시 반대편에있는 친구도 비슷한 목적으로 집에서 작은 서버를 운영하고 있습니다. 우리는 서로의 서버를 사용하여 원격 / 오프 사이트 백업을 수행한다는 아이디어를 가지고 놀았습니다.

기본적으로, 우리는 각각 서로의 서버에 연결된 서로의 집에 저장하기 위해 외부 HDD를 구입합니다. 그런 다음 각 설정 예약 rsync가 한 서버에서 다른 서버의 외부 hdd로 적절한 데이터를 푸시합니다. 대부분의 경우 매우 간단합니다.

그러나 (적어도 나에게는) 중요한 것은 데이터 암호화입니다. 친구 서버의 외부 HDD에 데이터를 저장하고 싶습니다. 그러나 나는 내 친구 (또는 내 친구의 서버에 액세스하는 사람)가 외부 하드 디스크의 내용을 읽을 수 있기를 원하지 않습니다.

이것에 가장 좋은 방법은 무엇입니까? rsync를 사용하여 데이터를 암호화 된 hdd 드라이브로 보내고 어떻게하면 서버에 도달하면 쓰기 위해 사용하는 데이터와 함께 암호를 전달할 수 있습니까?

답변:


9

나는 Duplicity를 살펴볼 것입니다.

Duplicity는 전체 및 증분 백업을 수행하고 Rsync, ftp, sftp 등을 사용하여 전송합니다.

Duplicity는 GPG를 사용하여 백업을 암호화하고 서명 파일을 사용합니다.

이메일 서버를 백업하는 데 사용하며 환상적이고 간단한 배치 파일입니다.

물론 무료로 사용하기 쉽습니다.

매뉴얼 페이지 : http://duplicity.nongnu.org/duplicity.1.html

도움이 되었기를 바랍니다.

루크


이중 바위와 와우와 복원하기가 매우 쉽습니다. 힌트 주셔서 감사합니다!
Jake Wilson

11
## sync local unencrypted data to remote encrypted backups via rsync ..

## mount read-only encrypted virtual copy of unencrypted local data :
encfs --reverse --idle=60 -o ro ~/data/ ~/.tmp_encrypted_data/

## rsync push local encrypted virtual copy of data to remote encrypted copy :
rsync -ai --whole-file ~/.tmp_encrypted_data/ user@example.com:backup/

## unmount encrypted virtual copy of local data :
fusermount -u ~/.tmp_encrypted_data/

와우, 나는 전에 EncFS에 대해 들어 본 적이 없습니다. 240GB 디스크가있는 랩톱에서 클라우드로 동기화하기 위해 200GB가 있으므로 이것은 굉장합니다.
Mark K Cowan

이 솔루션은 duplicity 또는 rsyncrypto 변형보다 더 최적 인 것 같습니다. 파일의 암호화 된 (가상) 버전의 단순한 rsync 일뿐입니다. 그것은 내 상황에서 필요한 것입니다. 이중성 문제는 BIG 전체 백업입니다. rsyncrypto의 문제점은 데이터 사본의 요구 사항입니다. rsync가 데이터를 읽을 때 EncFS는 단지 그것을 암호화합니다. : D
gamecreature

1

Thor의 답변을 기반으로 한 백업 스크립트는 다음과 같습니다 (여전 몇 년 후에도 유효합니다!). 이후의 암호 해독 (2011 년에는 필요하지 않음)에 필요한 파일 .encfs6.xml 복사, 암호화 된 마운트를위한 임시 폴더 생성 및 파일에서 암호화 암호 읽기 (자동 스크립팅)를 추가합니다.

#!/bin/bash

SOURCE=/home/jortiz/Documents/
BACKUP=/media/jortiz/BAK-EXGD/backup_ALMA_E6520/Documents

SOURCE_ENC=$(mktemp -d /tmp/source_enc.XXXXXX)
echo "Created temporary folder $SOURCE_ENC ..."

## sync local unencrypted data to remote encrypted backups via rsync

# mount read-only encrypted virtual copy of unencrypted local data
encfs --extpass="cat /home/jortiz/.passbackup" --reverse --idle=60 -o ro $SOURCE $SOURCE_ENC

# rsync push local encrypted virtual copy of data to remote encrypted copy
rsync -ai --whole-file $SOURCE_ENC/ $BACKUP

# Copy encfs xml file to backup folder for later decryption
rsync -ai --whole-file $SOURCE/.encfs6.xml $BACKUP

# unmount encrypted virtual copy of local data
fusermount -u $SOURCE_ENC

echo "Removing temporary folder $SOURCE_ENC ..."
rmdir $SOURCE_ENC

필자의 경우 랩톱과 소형 서버의 매일 백업을 로컬로 연결된 외부 USB 드라이브에 설정하고 있습니다. 드라이브 어느 날 민감한 데이터와 함께 사라질 경우를 대비하여 백업을 암호화하고 싶습니다 .


0

위에서 설명한 것과 같은 솔루션을 사용하려면 암호화 키를 친구의 기기로 보내야합니다. 친구를 "신뢰할 수없는 사이트"라고 생각하면 보안이 강화 된 것입니다 (키를 캡처하고 데이터를 읽을 수 있음).

친구가 백업을 읽을 수 없도록하려면 파일 을 보내기 전에 파일을 암호화해야 합니다 (예 : 타르볼을 만들 gpg거나 이와 유사하게 암호화 한 다음 다시 동기화). 키를 리버스 엔지니어링하는 평문).
이렇게하면 rsync 사용의 델타 이점 (대역폭 절약)이 무시됩니다. 암호화 된 파일은 백업을 만들 때마다 크게 변경되므로 매번 전체 내용을 복사하게됩니다.


2
그것이 Duplicity의 좋은 점입니다. 컴퓨터를 떠나기 전에 암호화하지만 서명 / 변경 목록을 읽음으로써 증분 백업을 완벽하게 수행 할 수 있습니다. 첫 번째 백업에는 시간이 오래 걸리지 만 그 후에는 좋은 수준의 보안을 유지하면서 갈 수 있습니다.
Luma

0

rsyncrypto 는이 목적을 위해 정확하게 작성되었습니다. 데이터를 로컬로 암호화하고 암호화 된 얼룩을 원격으로 저장하면서 rsync의 델타 복사 알고리즘을 활용할 수 있습니다.

그러나 rsyncrypto는 보안과 성능 간의 균형을 유지합니다.


rsyncrypto의 작동 방식을 간략히 살펴본 결과, 누군가 그것을 사용한다는 생각에 다소 겁이납니다. 내 데이터를 신뢰하기 전에 접근 방식에 대한 평판이 좋은 암호 전문가의 의견을보고 싶습니다.
울림
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.