보안되지 않은 네트워크를 통해 서버간에 보안 재 동기화를 수행하는 방법


19

기본적으로 내가 묻는 것은 ssh 내부에서 rsync를 래핑하는 수단을 가진 사람이 있다는 것입니다.

OpenSSH v4.9 이상을 사용하면 sftp에는 들어오는 연결을 chroot 할 수있는 몇 가지 멋진 옵션이 있습니다. 이것은 내가 볼 수있는 해결책이지만 RHEL에 갇혀 있으며 RHEL4 또는 RHEL5는 해당 버전에 해당하지 않습니다. ssh.

내 현재 솔루션은 클라이언트 사용자의 키를 사용하여 이와 같은 것을 서버 측에 추가하는 것입니다 ...

server % cat ~ / .ssh / authorized_keys
command = "cd / srv / rsync / etl && tar --exclude './lost+found'-pcf-./"ssh-rsa ...

클라이언트는 한 가지로만 제한됩니다.

client % ssh -T -i $ {HOME} /. ssh / id_rsa oracle@database.com> sensative.tar

이렇게하면 클라이언트뿐만 아니라 서버와의 연결도 보호되지만 모든 파일을 반복해서 검색하므로 비효율적입니다.

rsync를 사용하여 비슷한 (또는 더 나은) 작업을 수행 한 후입니다.

답변:


18

Rsync는 ssh를 전송으로 사용하는 것을 지원합니다

rsync -az /path/to/source username@host:/path/to/destination

일부 이전 버전의 rsync에서는 ssh를 명시 적으로 지정해야합니다.

rsync -aze ssh /path/to/source host:/path/to/destination

rsync를 사용하는 대안은 BC Pierce 's Unison 인데, rsync와 비슷한 기능을 가지고 있지만 델타를 계산하기 위해 파일 시스템을 걸을 필요가 없도록 양쪽 끝에서 로컬 인덱스를 유지합니다.


빠른 답변 감사합니다! 나는 그것을 조사했다는 것을 언급 했어야한다. 내 문제는 사용자를 제한하지 않는다는 것이다. ssh를 통해 rsync 서비스와 대화 할 수 있다면 (즉, 원격 정의의 이중 콜론 구문 사용) 완벽하지만 위의 내용은 단일 콜론에서만 작동합니다. 즉 ssh를 통해 작동하므로 chrooting이 없습니다.
크세르 크세스

언급을 잊었습니다. Unison은 멋지게 보이고 링크를 유지할 것입니다. 그러나이 경우에는 RHN이 제공하는 것 외에는 아무것도 설치할 수 없습니다. 이는 절름발이이지만 통제 할 수 없습니다.
크세르 크세스

내가 언급해야 할 또 다른 제한 사항은 서버가 아닌 클라이언트에서 <i> 풀링 </ i> 측에서 연결을 시작해야한다는 것입니다. (클라이언트가 말하지 않았지만 현재 문제에 적용 할 수 없으므로 서버 측 푸시는 당연히 서버를 안전하게 보호 할 수 있습니다).
크세르 크세스

1
rsync -az 서버 : / path / path / on / client?
Dave Cheney

1
왜 chroot입니까? chroot가 실제로 보안을 크게 향상 시키지는 않는다는 것을 알고 있습니다. 또한 이미 ssh를 제공하는 경우 ssh를 통한 rsync는 시스템의 안전성을 떨어 뜨리지 않습니다. 또한 ssh를 통한 rsync의 역할은 서버에서 rsync 바이너리를 호출하는 것입니다. 복사 명령을 보호하는 것과 동일한 방법으로 보안을 유지할 수 있습니다.
Paul de Vrieze

5

좋아, 마침내 이것을 알아 냈지만 해결책은 내가 기대했던 것만 큼 우아하지 않습니다.

서버 쪽에서 관련 사용자를 위해 authorized_keys 파일에 다음을 추가해야합니다.

no-pty, command="exit"

클라이언트에서 다음과 같이 터널을 만들 수 있습니다.

ssh -l username -fNTL 8073:server:873

터널이 설정되면 이중 콜론 구문을 사용할 수없는 일반적인 방법에 따라 localhost로 rsync 할 수 있습니다.

선택하는 로컬 호스트 포트 번호 (8073)는 단지 당신이 rsync는해야 무엇을 기억 분명히 완전히 선택 사항 ...

rsync --port=8073 -a user@localhost::mySecureStore /srv/some/place/

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.