Tim*_*dle 5 mod-proxy mod-ssl apache-2.2
我有两台服务器,一台是可以在我们公司的本地网络内部访问的开发服务器,另一台是面向公众的 Web 服务器。开发服务器托管了几个我们用来在内部管理项目的工具,但现在我们也需要在维护安全性的同时从外部访问它们。
我已经使用 ProxyPass 和 ProxyPassReverse 指令在外部服务器上设置了 mod_proxy 以将外部请求映射到内部服务器。我还在这些外部虚拟主机上设置了身份验证,以为外部访问提供安全性。我还需要使用 SSL 进行外部访问,但理想情况下更希望让内部工具可以通过普通 HTTP 访问内部网络中的人员。
是否有可能实现这种行为,如果可以,我应该使用哪些指令和 Apache 模块以及需要在哪些服务器上设置它们?
我将假设您确实接受公众的 HTTP 连接,但您执行标准 HTTP 重定向以强制他们使用 HTTPS。
如果是这种情况,那么如果您是内部网络的一部分,则可以更改 HTTP 指令以不重定向。
为此,您需要使用 Apache 的mod_rewrite并过滤 REMOTE_ADDR。本质上,您希望重定向与您的网络不匹配的所有内容。
另一种可能也是更安全的选择是让您的内部用户使用与公共地址不同的服务地址。让他们连接到 myservice.mydomain.local 而不是 myservice.mydomain.com。
Ada*_*ins -1
您最好使用防火墙规则来限制这一点。
我认为 Apache 没有实现此功能的功能,即使它这样做也会产生开销。防火墙就是为这样的事情而设计的,因此会更合适。我假设你有一个外部防火墙(我希望你有),你应该只允许端口 443 进入这台机器并阻止外部端口 80。
如果您确实想使用 Apache,则可以使用两个虚拟主机,一个监听内部 IP,另一个监听外部 IP。然而,这会使配置加倍,因此我不会推荐它,因为维护起来会很痛苦。
编辑:抱歉,Apache 可以通过 mod_rewrite 来做到这一点,但它会增加请求的开销,并且使用防火墙仍然更合适。也就是说,使用 mod_rewrite,您可以将人们从 http 重定向到 https,如果人们不断尝试访问 http,这可能会很方便。
归档时间: |
|
查看次数: |
2778 次 |
最近记录: |