delphij's Chaos

选择chaos这个词是因为~~实在很难找到一个更合适的词来形容这儿了……

23 Oct 2006

看来还是按操作系统封比较有效

之前一直有些头疼的ssh虫问题,很令人吃惊地找到了一个解决方法。在扫描感染IP的TCP特征之后,发现这些机器的共同特征——他们都用的是Linux。

很幸运地,我不使用Linux,FreeBSD附带的pf提供了一项非常有意思的强大能力(这项能力源于OpenBSD的pf),即按操作系统来控制访问。其它用法还包括例如,禁止没有打补丁的Windows访问,让不同用的操作系统访问得到不同的内容等等。

考虑到Linux如此容易感染ssh蠕虫,我决定采用下述pf策略:

block in quick proto tcp from any os “Linux” to any port ssh

效果出乎意料地好,在完全禁止使用低版本的Linux内核的计算机访问ssh端口之后,蠕虫尝试已经完全被阻止了。

注意:被动的操作系统检查尽管通常是准确的,但是客户一端如果采用了自行订制过的协议栈,或使用FreeBSD或OpenBSD中pf的scrub,或者类似的TCP/IP封包规格化能力,这种检查也就不那么有效了。尽管如此,对于这类问题并不需要过分担心,因为有能力做这些事情的人,通常也不会感染蠕虫。