Cách thực hiện rsync an toàn giữa các máy chủ trên một mạng không bảo mật


19

Về cơ bản những gì tôi hỏi là, có ai bắt gặp một phương tiện để bọc rsync bên trong ssh.

Với OpenSSH v4.9 + sftp có một số tùy chọn tốt cho phép bạn kiểm soát kết nối đến và như vậy - và đó là một giải pháp mà tôi sẽ xem xét, tuy nhiên tôi bị mắc kẹt với RHEL, và cả RHEL4 hoặc RHEL5 đều không phù hợp với phiên bản đó của ssh.

Giải pháp hiện tại của tôi là thêm một cái gì đó như thế này vào phía máy chủ bằng khóa máy khách ...

máy chủ% cat ~ / .ssh / ủy quyền
lệnh = "cd / srv / rsync / etl && tar --exclude './lost+found' -pcf - ./" ssh-rsa ...

... và do đó, khách hàng sẽ bị hạn chế một điều và chỉ một điều duy nhất ...

khách hàng% ssh -T -i $ {HOME} /. ssh / id_rsa oracle@database.com> Sensative.tar

Điều này đảm bảo kết nối, cũng như máy chủ (từ máy khách), tuy nhiên không hiệu quả vì tất cả các tệp sẽ được truy xuất nhiều lần.

Tôi sau khi làm điều gì đó tương tự (hoặc tốt hơn) bằng cách sử dụng rsync.

Câu trả lời:


18

Rsync hỗ trợ sử dụng ssh như một phương tiện giao thông

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

một số phiên bản cũ hơn của rsync yêu cầu bạn chỉ định rõ ràng ssh

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

Một cách khác để sử dụng rsync là Unison của BC Pierce , có chức năng tương tự rsync, nhưng giữ một chỉ mục cục bộ ở cả hai đầu để tránh phải đi bộ hệ thống tập tin để tính toán deltas


Cảm ơn bạn đã phản hồi nhanh chóng! Tôi nên đã đề cập rằng tôi cũng đã điều tra điều đó - vấn đề (trong trường hợp của tôi) với điều đó là nó không hạn chế / chroot người dùng. Nếu có thể nói chuyện với dịch vụ rsync thông qua ssh (nghĩa là sử dụng cú pháp dấu hai chấm để xác định điều khiển từ xa) - điều đó sẽ hoàn hảo - nhưng cách trên chỉ hoạt động với dấu hai chấm đơn - tức là thông qua ssh, và do đó không bị chroot.
Xerxes

Tôi đã quên đề cập - Unison trông rất đẹp và tôi sẽ giữ một liên kết đến nó - tuy nhiên trong trường hợp này - tôi không thể cài đặt bất cứ thứ gì bên ngoài mà RHN cung cấp - điều đó là khập khiễng, nhưng nằm ngoài tầm kiểm soát của tôi.
Xerxes

Tuy nhiên, một hạn chế khác tôi nên đề cập là kết nối cần phải được bắt đầu từ máy khách - phía <i> kéo </ i> chứ không phải máy chủ. (Đẩy phía máy chủ đương nhiên sẽ dễ dàng bảo mật máy chủ vì máy khách không có tiếng nói, nhưng không áp dụng được cho vấn đề hiện tại của tôi).
Xerxes

1
máy chủ rsync -az: / path / path / on / client?
Dave Cheney

1
Tại sao lại bị chroot? Bạn có biết rằng một chroot không thực sự cải thiện an ninh nhiều như vậy. Hơn nữa, nếu bạn đã ra ngoài cung cấp ssh thì rsync trên ssh không làm giảm sự an toàn của hệ thống. Cũng nghĩ về điều đó rằng những gì rsync trên ssh làm là gọi nhị phân rsync trên máy chủ. Bạn có thể bảo mật giống như cách bạn bảo mật lệnh sao chép của mình.
Paul de Vrieze

5

Được rồi cuối cùng tôi đã tìm ra điều này, nhưng giải pháp không thanh lịch như tôi mong đợi.

Về phía máy chủ, bạn cần thêm phần sau vào tệp ủy quyền cho người dùng có liên quan ...

no-pty, command="exit"

Trên máy khách, bạn có thể tạo một đường hầm như sau ...

ssh -l username -fNTL 8073:server:873

Khi đường hầm được thiết lập, bạn có thể rsync như bình thường - không thể sử dụng cú pháp dấu hai chấm - vào localhost.

Số cổng localhost bạn chọn (8073) rõ ràng là hoàn toàn tùy chọn, chỉ cần nhớ rằng đó là những gì bạn phải rsync để ...

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

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.