首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于防火墙的SSH隧道

基于防火墙的SSH隧道
EN

Server Fault用户
提问于 2011-04-29 05:40:08
回答 3查看 171关注 0票数 2

我有一个web服务器,它连接到第三方数据库服务器,并被授予通过数据库服务器上的防火墙规则这样做的权限。

当我在笔记本电脑上进行本地开发时,我使用SSH隧道通过web服务器连接到数据库服务器。

代码语言:javascript
复制
ssh web.server.com -L 5678:database.server.com:1234

如果可能的话,我想要做的是在web服务器上设置一个防火墙规则,该规则本质上可以持久地完成相同的任务。

因此,连接到web.server.com:5678将我的连接转发到database.server.com:1234,数据库服务器允许连接,因为它来自web服务器。

问题是,我不太确定我应该从哪里开始寻找方法来做这件事。

我在web服务器上运行Shorewall 3.2.6来配置我的防火墙。

我是否需要从VPN开始,或者没有VPN就能实现?

EN

回答 3

Server Fault用户

发布于 2011-04-29 17:26:46

使用Shorewall,您正在寻找一个DNAT规则( 在线文件是一流的,去那里)。你最终会有这样的结果

DNAT net loc:192.168.1.3:1234 tcp 5678

在规则文件中,192.168.1.3是数据库服务器的IP地址。如果传入的连接和web服务器到数据库服务器的连接位于相同的NIC上,则必须启用routeback选项。

不过,我强烈要求你不要这样做!这使您的数据库服务器向任何人开放,显式地授予他们将自己伪装成web服务器的访问权限,并否定了数据库服务器对防火墙本身的任何功能。此外,您在此连接上所做的一切都是未加密的,包括您的数据库服务器用户名和密码!所以别这么做!您的SSH隧道提供了身份验证和加密,而此端口转发不会这样做。

还有,你为什么要使用这么古老的Shorewall版本?我已经使用Shorewall多年了,当我开始使用版本3是过时的!到目前为止,您至少应该在4.0上,或者更好的是4.2或4.4。保持您的安全软件的最新是绝对必要的!

票数 1
EN

Server Fault用户

发布于 2011-04-29 06:34:22

我想你可以用这样的东西来实现你想要的东西(不是测试,只是从内存中得到的,很可能行不通,但是可以给你一些开始的提示)。在web服务器中,尝试:

代码语言:javascript
复制
iptables -t nat -I PREROUTING -p tcp --dport 5678 -j REDIRECT --to-port 1234
iptables -t nat -A PREROUTING -p tcp --dport 1234 -j DNAT --to-destination database.server.com 

除非您的数据库服务器直接无法从路由器到达,否则您可以直接在路由器上映射相应的端口。

但是,在我看来,您仍然应该使用ssh隧道,因为它的优点是:

1)连接需要良好的自动化,2)流量加密,3)您可以随时使用ssh调整连接(添加压缩,向隧道添加更多端口,添加socks5绑定等)。

票数 0
EN

Server Fault用户

发布于 2011-04-29 18:24:26

如果您不想保留ssh隧道,可以设置一个像openvpn这样的自动加密VPN来进行同样的操作。这将使您的服务器受到更多的保护。

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/264611

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档