我有一个承包商正在使用公司网络之外的 Windows PC。但是,我们允许通过防火墙连接到某些主机/端口。不允许从承包商的 PC 通过 Telnet/23 连接到特定的 AS400 (iSeries) 服务器。
我想使用公司网络内的 Linux 机器创建一对 SSH 隧道。
这是我建议的设置:
外部WindowsPC <-> { Internet } <-> 内部LinuxServer <-> 内部AS400Server
我们可以授予对公司网络内 Linux 服务器上某些端口的访问权限。
我知道这是可行的,但我自己无法完成整个解决方案。为了安全起见,该解决方案需要可扩展到大约 10 名承包商,每人都有自己的 PC。
最后,我们想从承包商的 Windows PC 通过 telnet/23 连接到公司网络上的 AS400 服务器。
最后,我意识到在理想情况下,我们会直接通过隧道连接到 AS400 服务器,或者使用安全协议连接到 AS400 服务器。然而,政治因素阻碍了这种解决方案!
答案1
不清楚您所说的“双隧道”是什么意思。听起来您只是在说使用 SSH 端口转发来允许承包商通过“InsideLinuxServer”计算机访问 AS/400。
确保允许从 Internet 通过 SSH 访问“InsideLinuxServer”
在“InsideLinuxServer”上创建凭证供承包商使用。(您可能希望更深入地了解并阻止承包商在该 Linux 计算机上进行 shell 访问、关闭 SFTP 等。)
让承包商配置他们的 SSH 客户端,将某个本地端口隧道传输到 AS/400 的端口 23。在“PuTTY”中,这是在隧道节点SSH节点联系设置的节点。他们会将源端口添加为机器上某个未使用的端口(例如“2300”),将目的地添加为 AS/400 的 IP 地址或名称,并在其后附加“:23”,然后将其添加到转发端口列表中。
承包商使用 SSH 连接到“InsideLinuxServer”机器后,他们将能够通过 TELNET 连接到他们自己的端口 2300(就我的示例而言)。PuTTY 将响应 TCP 连接尝试并将流量转发到“InsideLinuxServer”,后者又将与 AS/400 上的端口 23 建立 TCP 连接并转发流量。
至于使其“可扩展”,对于那么多的客户端,我只会为他们编写如何配置 PuTTY 的说明并发送给他们。
为了使事情更安全,您可能需要考虑在 SSH 服务器上使用公钥身份验证来代替密码。虽然前期设置工作量稍大,但比使用密码更安全。