强制 OpenVPN 访问服务器客户端通过代理吗?

强制 OpenVPN 访问服务器客户端通过代理吗?

我有一个 OpenVPN 访问服务器(v2.0.3),我用它为十几个用户提供远程访问,以及与 pfSense 网关的小型站点到站点连接。

我目前正在向客户端推送与 OpenVPN-AS 在同一系统上运行的代理服务器的代理配置(推送“dhcp-option PROXY_HTTP 10.153.19.1 8080”),但我注意到并非所有直接连接的客户端都使用它,而且显然,pfSense 网关后面的客户端不会使用它,因为该配置选项从未发送给它们。

我如何使用 iptables 强制所有对端口 80 的请求都访问此代理服务器?

答案1

仅仅改变常规 http 请求的目的地以使其转到普通的 http 代理是行不通的,因为请求不是常规代理所接受的形式。

除了拦截实际数据包所需的规则外,您还需要一个透明代理(又称拦截代理)。具体规则取决于透明代理的操作模式,可以使用简单的 DNAT 规则拦截数据包,但 netfilter 还具有更复杂的 TPROXY 功能,允许完全透明模式。

您没有指定正在使用的代理软件,但是http://wiki.squid-cache.org/SquidFaq/InterceptionProxy对此类设置的 Squid 有一个概述。

一些具体的配置示例:

相关内容