通过iptable过滤关键字数据包,屏蔽办公网络打开视频网站

通过iptable过滤关键字数据包,屏蔽办公网络打开视频网站

通过iptable过滤关键字数据包,屏蔽办公网络打开视频网站

最近发现越来越多的员工在上班时间滥用视频网站,上班时间,不应该做与工作无关的事,也过多地影响了其他正常人的工作带宽。我在路由上测试了一条规则来block视频网站的访问请求,发现非常有效:

iptables -A FORWARD  -m string –string “ku6.com” –algo bm -j DROP

iptables -A FORWARD  -m string –string “tudou.com” –algo bm -j DROP

iptables -A FORWARD  -m string –string “ouou.com” –algo bm -j DROP

其中各项参数的意义如下:

-A FORWARD

增加FORWARD链的规则,由于我启用了路由功能(即:echo 1 >  /proc/sys/net/ipv4/ip_forward),所以所有的包从FORWARD链规则走了,而是直接访问所使用的INPUT或OUTPUT。

-m string

使用string功能,string是iptables的一个module,也就是做字符串匹配的。

–string “xxxx”

定义字符串内容,可以是URL里任意字符,如果是需要block下载某些类型的文件或请求,这个有很大的发挥空间,可自由想象喔。

–algo bm

设置字符匹配的查询算法,一般默认使用bm算法效果就可以了,另外还可以设置kmp算法,那是一种更复杂的算法,详细内容可自行参见高等数学里的资料。(bm = Boyer-Moore, kmp = Knuth-Pratt-Morris)

-j DROP

设置符合此条件的包的处理方式,DROP即是丢弃,也是reject的意思。

其它:我没有设置-p的参数,那么默认就包括所有协议的package处理。如果需要的话,也可以针对性对设置-p tcp或-p udp等等指定协议种类。如果有必要,我想也可以针对这个应用放到对im软件、p2p软件的一些目标的过滤。

优点:这种方式的优点是效率高,几乎不占用多余系统资源,而有些硬件路由器里集成的URL过滤功能经常会造成系统死机。

缺点:设置目标过于单一,对于分散型URL无法处理,不支持对正则表达式的匹配。

{{collectdata}}

网友评论0