SSH隧道和Rsync通过两个代理/防火墙

Screnario:
[internal_server_1]AA------AB[firewall_1]AC----+
          10.2.0.3-^        ^-10.2.0.2         |
                                            internet
          10.3.0.3-v        v-10.3.0.2         |
[internal_server_2]BA------BB[firewall_2]BC----+

Ports AC,BC拥有有效的互联网地址.所有系统都运行linux并具有root权限.

需要安全rsync internal_server_1:/ some / path into internal_server_2:/ another / path

我的想法是在两个防火墙之间建立ssh安全隧道,例如:来自firewall_1

firewall1# ssh -N -p 22 -c 3des user2@firewall_2.example.com -L xxx/10.3.0.3/xxxx

之后将从internal_server_1运行rsync,有点像:

intenal1# rsync -az /some/path user@xxxx.yyyy.com:/another/path

我不知道

>如何为rsync创建正确的ssh隧道(哪些端口需要隧道)
>以及我将在哪里制作rsync? (在ssh隧道的情况下远程comp地址)

对于这种情况有任何想法或指向有用的互联网资源?

感谢名单.

解决方法

我假设firewall_2上的SSH端口(图中的“BC”)可以从外部访问.网络1(10.2.0.*)上的计算机可以直接(即通过NAT)到达互联网,还是仅通过firewall_1进行代理?既然你没有指定,我会假设没有.

可能最简单的事情是通过SSH隧道传输rsync(显然,“最简单”是相对的).首先,在firewall_1上运行它来构建外部隧道:

firewall_1# ssh -N -p 22 -c 3des user2@firewall_2.example.com -L 10.2.0.2:5432:10.3.0.3:22

请注意,这会在任意端口(我使用5432)上运行绑定到其内部IP(10.2.0.2)的隧道的本地(firewall_1)端.

然后,从server_1运行rsync并使用其-e选项通过SSH运行它:

server_1# rsync -e "ssh -N -p5432 -c 3des" -a /local/path server2user@10.2.0.2:/remote/path

此SSH连接到IP地址10.2.0.2上的端口5432,外部隧道转发到10.3.0.3(server_2)端口22(标准SSH).

顺便说一句,如果在多台计算机上协调设置(即从firewall_1创建隧道,然后从server_1使用它)很困难,请告诉我.稍微复杂一点,可以用一个命令从server_1中解决所有问题.虽然您应该能够设置一次外部隧道,然后将其保留下来……

相关文章

文章浏览阅读1.8k次,点赞63次,收藏54次。Linux下的目录权限...
文章浏览阅读1.6k次,点赞44次,收藏38次。关于Qt的安装、Wi...
本文介绍了使用shell脚本编写一个 Hello
文章浏览阅读1.5k次,点赞37次,收藏43次。【Linux】初识Lin...
文章浏览阅读3k次,点赞34次,收藏156次。Linux超详细笔记,...
文章浏览阅读6.8k次,点赞109次,收藏114次。【Linux】 Open...