Apache 和 Proxytunnel 的 SSL 支持

Apache 和 Proxytunnel 的 SSL 支持

我处于一个严格的公司环境中。https 流量通过内部代理传出(在这个例子中它是 10.10.04.33:8443),它足够智能,可以直接阻止 ssh 到 ssh.glakspod.org:443。

通过代理隧道退出。我在 ssh.glakspod.org:443 设置了一个 apache2 VirtualHost,因此:

服务器管理员[电子邮件保护] 服务器名称 ssh.glakspod.org

    <!-- Proxy Section -->
    <!-- Used in conjunction with ProxyTunnel -->
    <!-- proxytunnel -q -p 10.10.04.33:8443 -r ssh.glakspod.org:443 -d %host:%port -->
    ProxyRequests on
    ProxyVia on
    AllowCONNECT 22
    <Proxy *>
            Order deny,allow
            Deny from all
            Allow from 74.101
    </Proxy>

到目前为止一切顺利:我使用 CONNECT 访问 Apache 代理,然后 PuTTY 和我的 ssh 服务器握手,我就可以开始比赛了。

然而,这种设置存在两个问题:

  1. 内部代理服务器可以嗅探我的 CONNECT 请求,还可以查看正在进行的 SSH 握手。我希望我的桌面和 ssh.glakspod.org:443 之间的整个连接看起来就像 HTTPS 流量,无论内部代理如何仔细检查它。

  2. 我无法在代理时将 VirtualHost 设置为常规 https 站点。我希望代理与以下类似内容共存:SSLEngine on SSLProxyEngine on SSLCertificateFile /path/to/ca/samapache.crt SSLCertificateKeyFile /path/to/ca/samapache.key SSLCACertificateFile /path/to/ca/ca.crt

    DocumentRoot /mnt/wallabee/www/html
    <Directory /mnt/wallabee/www/html/>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride None
            Order allow,deny
            allow from all
    </Directory>
    
    <!-- Need a valid client cert to get into the sanctum -->
    <Directory /mnt/wallabee/www/html/sanctum>
            SSLVerifyClient require
            SSLOptions +FakeBasicAuth +ExportCertData
            SSLVerifyDepth 1
    </Directory>
    

所以我的问题是:如何在与 ProxyTunnel 一起使用的 ssh.glakspod.org:443 VirtualHost 上启用 SSL 支持?

我尝试了 proxytunnel 的 -e、-E 和 -X 标志的各种组合,但都没有任何成功。

我发现的唯一线索是 Apache Bug No. 29744,但我无法找到可以在 Ubuntu Jaunty 的 Apache 版本 2.2.11-2ubuntu2.6 上干净安装的补丁。

提前致谢。

答案1

我从 proxytunnel-users 邮件列表中拼凑出了答案。

首先,查看 Apache 错误报告编号 29744,包含针对我的 Apache 版本 2.2.11-2ubuntu2.6 的补丁的附件被隐藏了,因为它被认为已经过时了。单击附件框右下角的“显示过时”链接即可显示该补丁。

于是我在我的 jaunty box 上执行了 apt-get source apache2,修补了源,执行了 debuild...吃了一些麦片...然后对我构建的所有内容执行了 dpkg -i *.deb。

现在,上面两个独立的 Apache 代码片段可以和谐共存了。

最后一个难题是如何调用 proxytunnel。以下是有效的方法:

proxytunnel -q -X -p 10.10.04.33:8443 -r ssh.glakspod.org:443 -d %主机:%端口 ServerAliveInterval 30

希望这能帮助到其他人!

相关内容