如何阻止在Squid代理服务器上从Java客户端发起的HTTP请求?

时间:2018-04-19 11:03:17

标签: java networking https http-proxy squid

我在Windows Server 2008 R2上部署了Squid Server 3.5.27。 我有一台Windows 7机器指向我的Squid服务器,它充当代理。 从Windows7计算机启动的任何基于浏览器的请求都会命中我的代理服务器。一旦命中,ACL就会通过阻止请求而开始行动。

Squid.conf:
acl mynet src 10.210.177.209
acl forbidden dstdomain "C:\Squid\etc\squid\blockedHosts.conf"

blockedHosts.conf:
www.google.co.in

就浏览器而言,这是按预期工作的。 我想确保从我的Windows7机器上为google.co.in提出的任何请求都应该被阻止。但是,这种情况并没有发生。

我编写了一个示例Java代码,它使HTTPURLConnection为“http://www.google.co.in”。这是以某种方式绕过代理。     示例Java代码:

public static void main(String[] args) throws MalformedURLException,
            ProtocolException, IOException {

        String url = "http://www.google.co.in";
        try {

            URL myurl = new URL(url);
            HttpURLConnection.setFollowRedirects(true);
            con = (HttpURLConnection) myurl.openConnection();

            con.setRequestMethod("GET");

            StringBuilder content;

            try (BufferedReader in = new BufferedReader(
                    new InputStreamReader(con.getInputStream()))) {

                String line;
                content = new StringBuilder();

                while ((line = in.readLine()) != null) {
                    content.append(line);
                    content.append(System.lineSeparator());
                }
            }

            System.out.println(content.toString());

        } finally {

            con.disconnect();
        }
    }

有人可以指导我,我需要在squid.conf中进行哪些配置以防止这种绕过?

1 个答案:

答案 0 :(得分:0)

检查你的鱿鱼是否以透明模式运行 - 至少TCP端口80必须以某种方式重定向到鱿鱼,例如在你的路由器上:

# iptables -t nat -I PREROUTING -p tcp --dport 80 -j DNAT --to SQUID_IP_ADDRESS:SQUID_PORT

必须在squid.conf中的行intercept的末尾添加

http_port选项,e。 G:

http_port 3128 intercept

或者您也可以使用HTTP代理支持编写Java代码,这是一个示例:https://stackoverflow.com/a/1433296/5920627