我的目标是允许互联网上的客户端连接到 squid 代理服务器,提供用户名和密码,然后使用 192.168.11.152 等 IP 地址访问服务器所属的内部网络上的多个 http 服务器。目前,对这些服务器的访问是通过从某个 IP 的内部端口 80 到非标准外部端口的一堆 NAT 端口转发来处理的。这就需要人们记住,IP为192.168.11.152的设备是通过http://example.com:8936访问的,并不理想。此外,许多设备不支持用户名和密码,所以我依靠默默无闻的安全性。我不想使用 VPN,因为我想允许从外部进入网络的唯一流量是 HTTP 和 HTTPS 流量。我无法修改任何设备上的 HTTP 服务器,因为它们都是嵌入式系统(电源开关、安全摄像头、信号设备等)。我搜索了关于在 debian 上设置 squid 代理服务器的指南,但它们都是关于设置匿名代理的,不支持用户名和密码,并允许代理连接到外部资源。一旦连接到代理,它应该转发的唯一流量是到 192.168.11.xxx 地址的流量。所以,我的问题:
- 这甚至可能吗?根据我的谷歌搜索,没有人这样做,也许是因为无法做到?
- 这是一个好主意吗?如果没有,是否有更好的更安全且仍能满足我的要求的?
- 我从哪说起呢?所有的在线指南都只是提供剪切和粘贴配置文件,没有解释任何内容,所以我无法真正修改它们以达到我的目的。手册页非常晦涩,以至于在查找有关它的信息之前,我已经需要知道我想要什么。我错过了一本好书/一套教程吗?
我意识到要完整回答这个问题需要比我以外的任何人花更多的时间。我将接受简要讨论上述 3 点并附有详细参考资料的答案。
如果您的用户可以通过 SSH 访问网络,那么这是一个很好的选择。
使用例如
他们在各自的本地机器上打开一个 SOCKS 代理端口。然后,他们可以通过此 SOCKS 代理访问 SSH 服务器本地网络上的任何目标。
使用带有Foxy Proxy等扩展的 Firefox 可以特别方便地做到这一点,您可以在其中定义白名单(例如
http://192.168.11.*/
加上 https),以便通过代理访问相应的 IP(并且只有那些)。