AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 1143362
Accepted
Wildcard
Wildcard
Asked: 2023-09-09 08:34:17 +0800 CST2023-09-09 08:34:17 +0800 CST 2023-09-09 08:34:17 +0800 CST

SSH 隧道以避免暴露管理控制台

  • 772

我正在运行 Lucee Server,这是一个冷聚变服务器引擎,在我的例子中,它运行在 Tomcat 和 Apache 上。

我正在研究以各种方式强化它,并且遇到了有关此处描述的 SSH 隧道方法的问题:https ://docs.lucee.org/guides/deploying-lucee-server-apps/lockdown-guide .html#restricted-access-plus-ssh-tunneling

问题是,我认为关于如何进行 ssh 隧道的描述不准确或完整。我花了很多时间查看 SSH 文档以及其他一些 Stack Exchange 问题(https://superuser.com/q/588591/504387、https://superuser.com/q/237977/504387),但仍然可以' t 让 SSH 隧道按照该指南中所述或任何其他方式工作。


当前设置,我在 server.example.com 上运行 lucee,侦听端口 8888。在同一服务器上运行的 Apache 正在侦听端口 443,并配置为将所有请求代理到端口 8888 上的 127.0.0.1(即将它们转发到 lucee) 。但它被配置为拒绝对 /lucee 的请求,如上述文档中所述。

这意味着 Lucee 管理控制台只能直接在端口 8888 访问,而不能通过端口 443 访问。防火墙规则(iptables)设置为仅允许来自公司内部网络的端口 8888 上的传入流量,这样我们就可以访问 lucee 控制台,但外界不能。

这可能没问题,但我试图看看是否可以使隧道方法按所述工作。如果隧道可以工作,我们可以放弃 iptables 允许规则并完全阻止端口 8888(环回除外),或者只是将 lucee 重新配置为仅绑定到 127.0.0.1。


SSH 使用 server.example.com 上的非标准端口,假设它是 3300。

我想要做的是在我的笔记本电脑上运行 SSH 命令,该命令将:

  1. 使用我现有的 ssh 配置和密钥将我连接到 server.example.com(其中 sshd 正在侦听端口 3300),
  2. 绑定到我的笔记本电脑上本地主机上的任何端口,比方说 60001,
  3. 从远程端 server.example.com 依次连接到 127.0.0.1:8888,以便流量可以传递到 lucee。

最终结果应该是我可以在我的笔记本电脑上访问http://127.0.0.1:60001/lucee/admin/server.cfm,它将被运行在 server.example.com 上的 lucee 接收并监听绑定到的端口 8888该服务器上的 127.0.0.1。

我怎样才能做到这一点?

ssh-tunnel
  • 1 1 个回答
  • 38 Views

1 个回答

  • Voted
  1. Best Answer
    Esa Jokinen
    2023-09-09T12:15:57+08:002023-09-09T12:15:57+08:00

    您应该仅绑定 Lucee Server,localhost因为它在端口上不提供 TLS 8888。然后,您有两个选项可以安全地访问管理路径。

    SSH隧道

    从ssh(1):

    -L [ bind_address:]port:host:hostport

    指定port本地(客户端)主机上的给定数据将转发到host远程端的给定数据和端口。

    填写您问题中的参数:

    ssh -L 60001:127.0.0.1:8888 [email protected] -p 3300
    

    具有适当访问控制的 Apache 代理

    由于端口上的代理443是使用 TLS 加密的,因此您根本不需要 SSH 代理,但您可以允许在 Apache 配置中从公司网络连接到管理路径。

    该文档有点过时,因为示例使用 Apache 2.2 语法:

    <Location /lucee>
        Order Deny,Allow
        Deny from all
        Allow from 127.0.0.1
    </Location>
    

    但 Apache 2.4访问控制的文档告诉我们:

    、Allow、Deny和Order指令由 、 提供mod_access_compat,已弃用并将在未来版本中消失。您应该避免使用它们,并避免推荐使用它们的过时教程。

    假设您想将访问限制为/lucee仅允许 LAN192.168.22.0/24和公共 IP 198.51.100.22:

    <Location /lucee>
        <RequireAny>
            Require ip 192.168.22.0/24
            Require ip 198.51.100.22
        </RequireAny>
    </Location>
    
    • 2

相关问题

  • webdav 的安全性如何?smb 通过 ssh 隧道(使用 putty)是更好的解决方案吗?

  • 如何最好地设置 ssh 隧道以访问远程网络 (Linux)

  • 将端口转发到另一个 Ip/端口

  • 配置 mutt 以通过 SSH 隧道发送电子邮件

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve