白名单和黑名单

本文不考证这两个名词从何演变出的。本文要讨论的是防火墙(路由器)上的黑白名单策略,当然可能最后还是会免不了偏偏题。

我最早接触到这两个名词是在一款软路由上——BrazilFW,在这款软路由系统上有一个关于黑白名单的设置,我不懂,所以上网寻找答案去。在卡饭论坛看了别人的解释理解了它的含义——所谓白名单,就是对允许的程序或网络连接予以放行并阻止名单以外的;而黑名单恰恰相反,是阻止已知的、有害的请求而放行所有的其他请求。

那么到底哪种策略比较好呢?我觉得应该视环境而言。比如在一个不开放任何服务的内网环境里,网管为了内网的安全便可以使用白名单策略,即针对内网开放dns转发、dhcp server、nat服务后,就可以阻止外网对内的所有连接请求了。这么一来的问题是,可能会有些软件会被最后一条阻止规则所阻挡,但是发现之后对其放行便可以了。

而黑名单策略估计内网中使用的不多,不过我认为ISP却清一色都是使用的黑名单策略。所以这就造成了我们偶尔会在网上发现一两个不河蟹的网站,然后过段时间却又发现它河蟹了,这就是因为它被列入了黑名单的原因。

由此我便想到,前段时间五毛党高峰会中说的“中国互联网是全世界最自由”的理由是——我国用的是黑名单策略,试想一下如果换成白名单的话,你还能上网么??

如果再用黑名单来举例的话就说那陈佩斯嘛,因为被某台列入了黑名单而被活生生(恩活生生)地逼成了个话剧演员。

最近这段时间在研究RouterOS,这次我是下了功夫的,决心至少要入门。这个决心很坚决,所以这回不知道脑细胞又死了多少。我研究了一下网上能找到的RouterOS的防火墙规则,发现被广泛转载的规则用的都是黑名单策略,老实说我有点糊涂了为什么要用黑名单策略呢?难道真的是因为“这是一款具备ISP素质的软路由”么? 

所以我在防火墙的规则里只写了几条规则而已,我想试试看用白名单是不是会更好:

  1. 允许任何地址用tcp协议访问21端口。
  2. 允许lan用tcp协议访问23端口。
  3. 允许lan用tcp协议访问8291端口。
  4. 允许established的连接状态。
  5. 允许related的连接状态。
  6. 丢掉(Drop)所有链接请求。

以上全部是针对input的,没有对forward和output做任何设置。而且我试验了一下,如果不开放ftp端口的话,连established和related的规则都不需要,天啊,这是不是也太简化了些?

理由是以前我听别人说过,防火墙规则越少越高效,那么我认为这6条规则相比网上找来的几大篇规则要高效得多。特别是在使用了很长时间的Look‘n’Stop之后,我看人家官方的规则也就是那么十来条而已,不照样也在防火墙排名中名列前茅么?

当然我不能确保我这样的设置好用、安全,并且我也没有生产环境测试,写在这里也只是抛砖引玉,希望能有人指点指点。

本文链接: http://www.soundghost.com/white-lists-and-blacklists.html

相关日志

One Comment

  1. Posted 2009年12月21日 at 上午 12:12 | Permalink

    8291是干嘛用的端口?
    不要开 23 端口,容易被监听吧?开22 ssh 端口。

    weeper 回应:

    8291ROS用的管理端口。
    用23是觉得在内网方便,随便哪台机器都可以用,比22要强在这里。

Post a Comment

Your email is never published nor shared. Required fields are marked *

*
*