두 서버 간에 파일을 자동으로 안전하게 전송합니다.

두 서버 간에 파일을 자동으로 안전하게 전송합니다.

문제는 보안 측면에서 가장 좋은 방법으로 백업을 서버 A에서 서버 B로 자동 전송하는 방법입니다.

이것이 내 생각이다:

  • 인증 서버 A 공개 키 액세스 서버 B
  • 백업용으로만 서버 B에 사용자 생성
  • 서버 A에서 ssh-agent를 실행하고 다시 시작한 후 수동으로 비밀번호를 입력하세요.
  • scp를 사용하여 서버 A에서 서버 B로 파일을 자동으로 복사합니다.

그러나 악의적인 사람이 서버 A에 액세스할 수 있다면 기본적으로 서버 B에도 액세스할 수 있습니다. 그러면 서버 B 사용자를 제한해야 합니까? 어떻게 해야 하며, 이것이 네트워크를 통해 전체 백업을 수행하는 가장 좋은 방법입니까?

인사

답변1

  • 서버 A는 서버 B에 암시적으로 액세스할 수 없으며 , 서버 B는 서버 A ssh에 암시적으로 액세스할 수 없습니다. ssh비밀번호가 다릅니다. 인증서 기반 로그인이 없습니다. 믿을 수 없습니다.
  • rsync백업에 대한 읽기 전용 액세스를 제공하고 서버 B에서만 액세스할 수 있도록 서버 A에 데몬으로 설정합니다 . 을 통해서가 아니라 ssh직접적으로요.
  • rsync서버 B가 서버 A의 백업을 주기적으로 복사하도록 합니다. ( rsync를 통하지 않고 전송 프로토콜을 ssh사용함 )rsync
  • VPN 또는 이와 유사한 것을 사용하여 서버 A와 서버 B 간의 트래픽을 stunnel보호하십시오 .rsync

답변2

당신은 거의 그것을 가지고 있습니다. 서버 B의 사용자는/bin/false 서버 A의 대화형 로그인을 비활성화하는 쉘로 제공되어야 합니다 (그러나 서버 B의 파일은 계속 얻거나 삭제할 수 있습니다).

편집하다:

  • /bin/false복사를 금지하기 위해 쉘로 사용됨
  • 또한 사용 중입니다 /usr/sbin/nologin(그의 계정은 현재 사용할 수 없습니다.)

보다 복잡한 솔루션에는 vsftp(가 아님 ftps)이 포함되지만 이를 위해서는 SSL 인증서가 필요합니다.

답변3

cronjob복사 파일을 사용하는 것이 좋습니다 scp.

backupToServer.sh백업할 파일을 패키지화하여 서버에 배치하는 쉘스크립트를 작성합니다 scp /path/to/backup/tar user@server:/path/where/backup/is/stored. 사용SSH 키.

date또는 유사한 도구를 사용하여 백업 이름을 올바르게 지정할 수 있습니다 .

crontab -enew 를 추가하면 시간 cronjob설정을 살펴보세요. crontab사소하지만 언뜻 보면 이상해 보입니다.

관련 정보