VPN 서버 백업: 무엇이 복원 가능해야 하는지 결정하기
ID, 구성, 상태는 서로 다른 세 가지 백업 문제입니다. 먼저 재구축 목표를 정하고, 한 순간의 스냅샷을 뜬 다음, 복원을 시험하십시오.
구성 파일을 복사하는 것은 백업이 아니며, 아무도 복원할 수 없는 백업은 계획이 아닙니다. 아카이브에는 서비스의 ID, 그 주변의 정책, 그리고 어떤 장치가 아직 허용되는지를 알려 주는 상태가 들어 있어야 합니다. 아카이브는 보호되어야 합니다. 대부분의 배포에서 아카이브는 VPN이 부여하는 것과 정확히 같은 것을 부여하기 때문입니다. 무엇이 복원 가능해야 하는지를 결정하는 일이 먼저이고, 파일 목록은 그 결정에서 나옵니다.
재구축 목표에서 시작하십시오
파일을 하나도 나열하기 전에 재구축된 서버가 무엇을 해야 하는지 적으십시오. 같은 터널을 종료하고, 같은 ID를 제시하고, 현재 폐기된 장치를 거부해야 합니다. 그 한 문장이 대부분의 순진한 복사를 걸러 냅니다. 구성 디렉터리에는 폐기 목록이나 외부 ID 의존성이 거의 들어 있지 않기 때문입니다. 또한 호스트 밖에 있는 부분, 예컨대 DNS 레코드, 클라우드 방화벽 규칙, 게이트웨이가 인증하는 디렉터리도 드러냅니다. 이것들을 무시하는 계획은 건강해 보이지만 아무도 들여보내지 않는 복원된 서버를 만듭니다.
자료를 세 바구니로 나누십시오. ID, 구성, 상태입니다. ID는 키, 인증서, 그리고 그것에 서명하는 기관입니다. 구성은 데몬 설정, 풀, 경로, 방화벽 정책이고, 상태는 매일 바뀌는 피어, 계정, 폐기의 집합입니다.
ID는 다시 생성할 수 없는 부분입니다
개인 키는 기억에서 다시 만들 수 없고, 그에 의존하는 인증서는 선택한 것이 아니라 물려받은 일정에 따라 만료됩니다. 서버 키, 클라이언트 프로비저닝 자료, 인증 기관을 백업하고, 그중 무엇을 오프라인으로 둘지 기록하십시오. 실행 중인 게이트웨이에만 사는 기관 키는 모든 클라이언트의 완전한 ID 재설정까지 단 한 번의 침해만 남은 상태입니다. 의도적으로 다른 곳에 보관하는 것도 기록하여, 누구도 더 낮은 보호의 아카이브로 복제하지 않게 하십시오.
폐기는 계획에서 자기만의 줄을 가질 자격이 있습니다. 어제의 구성을 복원하면 오늘 제거한 ID가 되살아날 수 있습니다며, 이는 복구를 보안 사고로 바꿉니다. 현재 폐기 상태는 되돌릴 스냅샷과 독립된 곳에 보관하고, 어떤 복원 뒤에도 확인하십시오.
한 순간의 상태를 스냅샷하십시오
서비스가 쓰는 동안 뜬 복사본은 일관성 없는 목록을 만들고, 일관성 없는 ID 데이터는 더 오래된 깨끗한 복사본보다 나쁩니다. 저장소마다 지원되는 내보내기 경로를 사용하고, 그다음 스냅샷 시각을 기록하십시오. 복원에 관한 이후의 모든 질문이 그 시각에 달려 있기 때문입니다.
wg showconf wg0 > /srv/backup/wg0.runtime.conf
sqlite3 /var/lib/vpn/admin.db ".backup '/srv/backup/admin.db'"
cp -a /etc/wireguard /srv/backup/etc-wireguard
sha256sum /srv/backup/*.conf > /srv/backup/MANIFEST
첫 번째 명령은 실행 중인 인터페이스를 구성으로 다시 출력합니다. 관리 도구가 아니라 손으로 추가한 피어를 잡는 가장 빠른 방법이며, 이를 wg(8) 설명서 가 기록합니다. sqlite 줄은 관리 데이터베이스의 패턴입니다. 백업 명령은 쓰는 쪽이 계속 동작하는 동안 일관된 복사본을 만듭니다. 디렉터리 복사는 권한을 보존하는데, 그 키 파일은 root만 읽을 수 있기 때문에 중요합니다. 매니페스트가 있으면 완전한 아카이브와 잘린 아카이브를 구분할 수 있습니다.
복원을 가능하게 만든 뒤 시험하십시오
아카이브를 암호화하고 복원 키는 그것이 나온 기계가 아닌 다른 곳에 두십시오. 암호 문구가 실패한 서버에만 있는 백업은 아무도 열지 않을 백업입니다. 복원 자료의 반출은 이미 게이트웨이를 관리할 수 있었던 사람으로 제한하고, 모든 반출을 기록하십시오. 격리된 네트워크에서 복원을 시험하십시오. 운영 옆에서 띄운 복제 ID는 같은 피어 키에 응답하는 두 서버를 만들기 때문입니다.
제외 항목은 내용만큼 세심하게 문서화하십시오. 클라우드 방화벽 규칙, DNS 레코드, 외부 디렉터리는 각각 고유한 복구 단계가 필요할 수 있습니다. 파일 복사가 성공했다고 해서 서비스가 돌아온 증거는 아닙니다. 유일하게 의미 있는 증거는 원본과 같은 인수 시험을 통과하는 재구축된 엔드포인트입니다.