장작가 연구실

미래의 나를 위해 기록해두는 메모장

View My GitHub Profile

6 January 2022

Duplicity를 이용한 암호화 백업

gpg, rsync, duplicity를 이용해서 공용 저장소에 내 데이터를 암호화해서 저장하는 방법을 소개한다.

gpg 준비

개인용 비대칭키. 내가 쓸 수 있는 개인키와 공개키를 만들어준다. 이걸로 내 백업 데이터를 암호화한다.

gpg 패키지를 설치한 이후에, 아래와 같이 하고 이름, 이메일, 비번을 써준다.

$ gpg --gen-key

duplicity 설치

요즘 유행하는 snap 에서 설치한다.

snap install duplicity

백업하기

암호키가 있어야 하니 아까 만든 키를 확인한다.

$ gpg --list-keys
/home/foo/.gnupg/pubring.kbx
---------------------------------
pub   rsa3072 2022-01-05 [SC] [expires: 2024-01-05]
      B1234B2CB2956767D3214A241F58345D3010FCAC
uid           [ultimate] kildong.hong <kildong.hong@example.com>
sub   rsa3072 2022-01-05 [E] [expires: 2024-01-05]

여기서 암호화에 사용할 키 이름은 B123...으로 시작하는 것이 키 ID다.

duplicity --encrypt-key B1234B2CB2956767D3214A241F58345D3010FCAC --exclude-filelist=<path to exclude file> <source> rsync://<rsync ID>:<rsync password>@<rsync server ip>::/<rsync module name>/<target dir>
<source>/temp
<source>/.cache
<source>/snap

백업 파일 보기

duplicity --encrypt-key B1234B2CB2956767D3214A241F58345D3010FCAC list-current-files rsync://<rsync ID>:<rsync password>@<rsync server ip>::/<rsync module name>/<target dir>

백업 시간

100GB 조금 안 되는 양을 백업하는데 4시간 반 정도 걸리는 것으로 보인다. 암호화 하면서 압축도 하는 것으로 보이며 실제 전송량은 약 40GB 정도 되는 듯.

gpg 키 export

암호화에 사용한 키는 어디 다른 적절한 장소에 저장해둬야 한다. 백업하려는 시스템 전체가 망가지는 경우 복구할 방법이 없으므로 키를 다른 공간에 백업해둔다.

gpg --export > gpg_keys
gpg --export-secret-keys > gpg_secret_keys

두레이 개인 프로젝트의 드라이브에 백업.

gpg 키 import

gpg --import gpg_secret_keys

복원하기

전체 복원

duplicity rsync://<rsync ID>:<rsync password>@<rsync server ip>::/<rsync module name>/<backup dir> <target>

일부 파일만 복원. 백업 파일을 보고 해당 파일을 /foo/var 자리에 넣어서 호출. 보통 / 부터 백업하는 일은 거의 없으므로 상대경로를 지정해 주게 된다.

duplicity --file-to-restore /foo/bar rsync://<rsync ID>:<rsync password>@<rsync server ip>::/<rsync module name>/<backup dir> <target>

gpg 키 만료에 따른 백업

gpg 키 만료 기한이 기본적으로 2년으로 되어 있어서 2년에 한번씩을 full backup 이 필요하다.

참고

https://splone.com/blog/2015/7/13/encrypted-backups-using-rsync-and-duplicity-with-gpg-and-ssh-on-linuxbsd/ https://kb.synology.com/ko-kr/DSM/tutorial/How_to_back_up_Linux_computer_to_Synology_NAS

tags: rsync - 백업 - duplicity - gpg