加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

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

发布时间:2020-12-14 02:41:30 所属栏目:Linux 来源:网络整理
导读: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权限. 需要安
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中解决所有问题.虽然您应该能够设置一次外部隧道,然后将其保留下来……

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读