這個環是比較合適的。 如果用特徵庫對每個包都進行判斷效果不是很好。 而且可以考慮各類人員權限, 用特徵庫就要寫的很靈活。之前還指望Host:字段幫上忙。 但host字段名字很多,也是不好過濾。 只能根據域名獲取到對應IP。 如果要這個操作,還不如直接在DNS裡邊開個洞。

 

 


提倡DNS过滤,减少URL过滤




1. URL过滤的问题



URL过滤是现在防火墙的一个重要的访问控制方法,同时还衍生出一系列技术,如URL重组,和URL分类服务器连动等。固然URL控制可以限制到文件级别的粒度,但在实际应用中进行如此细粒度控制的几乎没有,并不限制访问的目录名和文件名,基本还是限制在域名级别。这样带来的问题就是不用URL访问,而是用IP地址访问,在访问前先使用nslookup等工具先解析出IP地址后用IP访问,这样URL域名过滤就会失效;其二,即使域名限制成立,但等URL重组完,再识别,再强行断开连接,对系统,包括客户端、服务器和防火墙的资源都是很大浪费。



URL过滤还有一个比较大的缺陷,在HTTP/1.1中,域名部分是通过HTTP头的“Host: ”字段来获取的,其他字段均不能保证能正确获取域名,而这个字段有的服务器并不检查,可以随便填个别的域名,服务器也可以正确返回;而在HTTP/1.0中,这个字段更加不是必须的,因此根本不能保证获取正确的域名。




2. DNS过滤的优势



解决方法是DNS过滤,即在域名解析时就进行限制,在DNS请求包中就把域名提取出来进行判断。由于DNS一般是UDP包,一个包中就包含了所有信息,不需要重组(对于TCP的DNS协议可以关闭,使用UDP的已经足够了);其次,对于UDP包,各种资源的消耗都很少,客户端发UDP的资源消耗远小于TCP,服务器根本就没消耗,防火墙跟踪UDP也比跟踪TCP要简单得多;再次,限制得可以更加全面,通常URL只限制了HTTP,而限制DNS则把该域名对应的所有服务都可以限制住;最后,DNS限制就没有IP访问的漏洞,因为本来就得不到IP。




当然,DNS过滤是无法控制到目录和文件级别的粒度的,但大部分情况都不需要。所以必要时可以用DNS过滤为主,URL过滤为辅的方法进行过滤。




3. 结论



使用DNS过滤,能更快更有效的限制对域名的访问,过滤得也更彻底,强于URL过滤。