通过openvpn和Squid代理路由你的互联网

我正在尝试设置代理来过滤互联网stream量。 为了做到这一点已经到达了以下组合Client – > Openvpn – > squidproxy – >互联网Squid代理和openvpn已经安装在同一个Ubuntu服务器上。 通过这个数字海洋教程安装openvpn。 Openvpn目前正在将stream量正确地路由到互联网。 但是我还没有能够强制请求通过鱿鱼代理,即使设置了透明路由和添加一些iptablesconfiguration。

我也添加了这个configuration文件,其中80端口的http请求没有到达internet,也没有到达squid代理( squid.conf定义的http_port 3128 transparent透明地拦截请求)

 -A PREROUTING -i tun0 -p tcp --dport 80 -j DNAT --to 10.0.2.15:3128 -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128 

我想你正试图用不同的用户连接到互联网使用这种组合,对吧? 你的客户和你的服务器在同一个networking中吗?

我不明白你为什么需要使用OpenVPN服务器。 你为什么不直接在你的服务器上设置Squid,让你的客户直接把它用作代理服务器呢? 如果他们得到了可见性,并且您configuration到Squid的端口没有被防火墙过滤,它应该可以工作。 你甚至可以configurationSquid转发请求到第二代理,如果需要的话。

如果你仍然想用OpenVPN来encryption客户端到服务器的stream量,你仍然需要在你的客户端configurationSquid代理作为你的代理服务器。 否则,他们将只使用VPN连接直接连接。

看看你做了什么,我看不出什么错 – 虽然有一些显着的差距。

网页的比例越来越大,只能在HTTPS上运行。 而且我希望像Whatsapp这样的应用程序能够为所有stream量使用SSL。 虽然可以在代理服务器上(使用像socat这样的简单端口转发器)中继SSLstream量,但是如果您需要监视正在交换的数据的function,那么这是一个非常复杂的命题。 鱿鱼有能力生成SSL证书,从而解密/重新encryptionstream量。 但是这需要您使用的根CA安装在客户端设备上 – 这对于尚未生根的移动设备来说很难做到。

我已经使用相同的指南来设置VPN Squid代理到互联网。 经过多天的试图了解为什么我的鱿鱼访问日志是空的,经过一些研究,我得出的结论是,Ubuntu和Ubuntu的redirect不起作用。 这是通过一点Google上的GNU不工作,似乎是一个问题。

我切换到CentOS重试这个工作仍然需要大量的工作重新安装和重新configurationpenvpn服务器,所以在遇到与socat portforwarding后,我决定在我现有的Ubuntu安装上使用socat重新获得一些失去的日子。

关于每个客户端的证书评论,这是一个漂亮和优雅的解决scheme,过滤stream量的移动用户,特别是使用openvpn的统一ovpn客户端文件,embedded服务器和客户端密钥,包括hmac密钥。 一个提示:终于得到了统一的格式与从networking上的脚本ovpn gen一起工作。