今天遇到了一些关于packet filtering的问题,就随手记了下来。一来是自己记录下来,增加下理解。二来是奢望能够给大伙带来些帮助。
问题:
我们在server上已经配置了drop掉所有的从外网过来的tftp message,但是从在使用nmap的时候还是发现该端口是打开的。 (出现这种情况确实让人很困扰)
原因:
tftp是基于UDP协议的。而nmap使用的UDP端口扫描原理如下:
首先,发送一个零字节大小的UDP 包到server端的扫描端口。
其次,检查返回结果。如果没有消息返回,则认为服务器上相应端口已经打开。如果返回ICMP unreachable消息,则认为服务器上相应端口已经关闭。
我们原来配置的规则是针对所有的外网tftp packet都drop掉,没有任何response。因此nmap收不到任何回应消息,则认为相应端口是打开的。
这就是整个问题的senario。
解决方法:
当然是尽量让其返回一个ICMP unreachable消息才是王道。解决方法非常简单,就是将drop策略改为reject策略。因为reject时,针对UDP协议会返回ICMP unreachable消息;针对TCP会返回RST消息。
经过测试,发现解决方案工作良好。
阅读(2750) | 评论(0) | 转发(0) |