我在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中进行哪些配置以防止这种绕过?
答案 0 :(得分:0)
检查你的鱿鱼是否以透明模式运行 - 至少TCP端口80必须以某种方式重定向到鱿鱼,例如在你的路由器上:
# iptables -t nat -I PREROUTING -p tcp --dport 80 -j DNAT --to SQUID_IP_ADDRESS:SQUID_PORT
intercept
的末尾添加和http_port
选项,e。 G:
http_port 3128 intercept
或者您也可以使用HTTP代理支持编写Java代码,这是一个示例:https://stackoverflow.com/a/1433296/5920627