我需要创建一个仅加密的代理服务器。我的意思是,无论身处世界何处,我都希望公司所有笔记本电脑的互联网流量都经过加密并通过这台服务器路由。缓存会很好,但不是必需的;笔记本电脑和服务器之间的加密是唯一的要求。
有哪些方法可以完成此设置?我一直在研究 Squid,但没有找到太多有关加密的信息。我猜想会涉及一些 SSL 或 SSH,但我对这个领域真的很陌生。浏览器将是连接的主要用户,尽管支持 IM 和电子邮件客户端也很好。客户端将是 Windows 和 nix,而服务器可以是任何开源的东西。
编辑:很明显,VPN 是比代理更好的解决方案。在我接受答案之前,有人可以对此发表评论吗:
当笔记本电脑插入另一个公司网络时会发生什么?例如,顾问坐在 ABC 公司的办公室里。出于某种原因,他们需要打开一个内部网站,如 myabc.internal.com。我相信内部网 DNS 服务器通常会正确解决此问题。如果我连接到此 VPN,这会起作用吗?我知道连接到代理的浏览器会有同样的问题,但您可以有两个浏览器:一个通过代理,一个不通过。或者这不是 VPN 的问题?
答案1
我同意 pjz——听起来你正在寻找 VPN。
OpenVPN 是一种很棒的免费 VPN 入门方法。它很稳定,可以用于生产,但即使您最终不使用它,它也是熟悉 VPN 的好工具。使用静态密钥设置它非常容易(用于尝试),使用证书设置它仅稍微困难一些(用于生产)。
- http://openvpn.net/static.html- 静态密钥迷你操作指南。出于安全原因不推荐使用,但在深入研究简单的 PKI 之前,这是一种了解 OpenVPN 工作原理的好方法。
- http://openvpn.net/howto.html
您在问题中提到了“互联网流量”,但不清楚这是否仅指浏览网站,还是实际上指所有到互联网的 IP 流量。您可以使用 OpenVPN 将“默认网关”路由传递到客户端,这样他们的互联网绑定流量将通过 OpenVPN“管道”路由到服务器,然后服务器可以将其放到互联网上。
如果您只希望 HTTP/HTTPS 路由到 OpenVPN(即,如果它们 PING、运行 Skype 等,流量可以直接进入互联网),您也可以考虑部署类似 Squid Cache 的东西,然后配置客户端浏览器以使用该代理服务器,这样到代理的流量就只路由到 OpenVPN“管道”(即,将代理放在 VPN 可访问的 IP 地址上,但保留客户端的默认网关)。(我相信您甚至可以执行“推送“dhcp-option 252 ...”以通过 OpenVPN 将代理自动配置 URL 推送到客户端。)
您有一些选择,取决于您想做什么。
回复:您对 pjz 关于 Intranet 站点访问的评论
无论如何,你都必须为此“付出代价”。
如果您只是通过默认网关更改将所有 Internet 绑定流量路由到 VPN,则任何到其子网内 Web 服务器的流量仍将“直接”传输。但是,如果 Intranet Web 服务器位于不同的子网上,则他们到该子网的流量将通过 OpenVPN 管道传输,而不是到现场路由器。那会很糟糕。
如果您按照我上面的建议,通过 OpenVPN(或其他方式)将代理自动配置脚本推送到客户端,则可以将“例外”放入该文件中,以使客户端“直接访问”。我通常在代理自动配置文件中使用以下命令执行此操作:
if ( isPlainHostName(host) ) { return "DIRECT"; }
这将导致直接访问不包含任何点的主机名。
如果您知道需要直接访问的特定主机(或通配符匹配模式):
if ( shExpMatch(url,"http://*.customer.com")) { return "DIRECT"; }
if ( shExpMatch(url,"http://known-intranet-server.customer.com")) { return "DIRECT"; }
如果您知道用户将在哪里工作,则可以事先将例外情况放入代理自动配置文件中。但是,如果不知道,您将不得不被动处理此类问题。但是,如果您事先不知道,那么您要求的解决方案可以自动“做正确的事情”。不幸的是,计算机在这方面做得很糟糕。>微笑<
无论你部署什么,我都会花额外的时间来使用代理自动配置文件。它为你提供了一种集中方法(可以“即时”更新,无需接触客户端计算机)来控制将 HTTP 流量转移到代理服务器或让其直接进入互联网。它们对于这种应用程序来说非常方便。
答案2
听起来你更想要 VPN 而不是代理服务器 - 或者至少,你想要的东西最容易通过所有笔记本电脑都连接到的 VPN 服务器来实现。代理服务器不会(某些特定的应用程序服务器除外)加密其客户端与其自身之间的流量,而这正是 VPN 服务器存在的理由。
就 VPN 服务器本身而言,我运行的开放VPN带有 Linux、Windows 和 Mac 客户端。
答案3
“我希望公司所有笔记本电脑的互联网流量都能够被加密并通过这台服务器进行路由。”
“浏览器将是连接的主要用户,但支持即时通讯和电子邮件客户端也很好。”
您描述的服务和功能是 VPN,尽管有些人认为他们的 VPN 是提供网络级服务的网络硬件,而不是将其称为“服务器”。
VPN 是可行的方法,因为您正在谈论在网络级别保护所有流量并将其重定向到单个提供服务的主机。
当您访问其站点时,VPN 将在私人公司网络上运行,只要该网络允许访问公共网络(并且不会阻止访问您的 VPN 主机的 IP 地址)。
唯一的限制是大多数 VPN 客户端软件都是“全有或全无”的,它们会封装来自您系统的所有流量(本质上,它们拒绝信任任何其他人的本地网络服务)。如果您需要在本地网络和您的网络上工作,最时髦/简单的解决方法是在小型虚拟化系统(如 VMWare)上运行您的 VPN 连接,并让您的主/主机操作系统正常访问本地访问。
对于(网络)代理:
很久以前,有几种应用代理,但互联网使“代理”的常用用法变成了“网络代理”。这些代理通常不使用加密,尽管它们可以使用。但它们专注于“网络/互联网”,通常代理 HTTP、HTTPS、FTP 和 Gopher。它们不能发送电子邮件或 IM。