如何阻止用户浏览使用外部代理
发表于:2007-07-04来源:作者:点击数:
标签:
一些背景知识: (1) HTTP/1.0 协议中,定义了web server 和client使用代理(proxy)时,在HTTP request 和response头中,使用Via: 标识使用的proxy server,用来防止server loop; (2) snort 是开放源代码的IDS( 入侵检测 系统),可以用于主机或 网络 IDS。具有很
一些背景
知识:
(1) HTTP/1.0 协议中,定义了web server 和client使用代理(proxy)时,在HTTP request 和response头中,使用Via: 标识使用的proxy server,用来防止server loop;
(2) snort 是开放源代码的IDS(
入侵检测系统),可以用于主机或
网络IDS。具有很多IDS规则,可以对捕捉的(ip,tcp,udp,icmp)包进行模式识别和匹配,并可产生相应记录。
(3) li
.net是开放源代码的软件,可以作为
网络协议/包生成器。
(4) TCP/IP
网络是包交换
网络 (5) snort 同时具有使用libnet库生成IP包的功能,可以通过发出TCP_RESET包,中断TCP连接。
前提:
(1) snort 运行于路由上(
linux)或者通过交换机的port mirror功能,运行在路由的同一
网络段
实施:
(1) compile snort with flexresp(flex response) feature
(2) 定义snort 规则:
alert tcp $HOME_NET any <> $EXTER_NET 80 (msg:"block proxy"; uricontent:"Via:"; resp: rst_all;)
效果:
内部
网络用户可以正常浏览外部网站,如果内部用户的浏览器设置了外部的一个代理后,HTTP REQUEST 头和RESPONSE头会包括Via: ...字符,snort规则会捕捉到这个连接,然后向client 和server的socket发送RST包。这样TCP连接就被终止了。
原文转自:http://www.ltesting.net