我正在尝试将来自 nmap 的所有扫描重定向到另一个目的地。我正在尝试 IPTABLES,但我不知道如何区分 nmap 扫描和合法流量。
这可以通过 IPTABLES 实现吗?还是我应该去别处寻找?
答案1
iptables是内核网络包过滤框架的用户级接口(实用程序),网络过滤器。
Netfilter 只是一个数据包过滤器,它会过滤您设置的内容。它会查看数据包字节,检查设置了哪些端口、地址和其他选项,然后决定如何处理数据包。它只是简单地逐个数据包,几乎不参考之前看到的数据包。借助连接跟踪器,它有时可以判断数据包是否是后续数据包或与其他数据包相关,并将它们全部指定为联系,这已经相当复杂了。它还可以使用预定义规则(包括网络地址转换)修改数据包。但这几乎就是 Netfilter 本身的全部功能。
你说的检测端口扫描,是检测特定流量模式的一种非常不同的任务。逐个数据包或仅查看连接是不够的。你必须考虑流量的大量快照才能看到模式。这是完全不同类型的软件的工作,入侵侦测系统(IDS)和一般的流量分析器。有一些开源系统,如 Snort,还有许多此类商业系统。
而且,正如您可能已经猜到的那样,这些检测器非常复杂且……不精确。在这个领域,您无法做到精确。这 5000 台计算机在短时间内查询机器上的 65000 个不同端口的概率非常低,但不是零;总是存在一些不确定性,不知道这是合法流量还是扫描。我认为,这种流量扫描检测是最容易注意到的模式之一;还有许多其他情况更难分辨,更容易隐藏和绕过 IDS。在这个领域,他们都在相互竞争,看谁的检测能力更强,更准确地检测到异常并减少误报,因此检测算法通常是他们最有价值的知识产权。
最后,IDS 可能会成为入侵防御系统(IPS)与数据包过滤相结合。例如,您可以设置它,当它认为检测到扫描时,它会在 Netfilter 中安装一条规则,这将阻止这些 IP 地址采取进一步行动。但 Netfilter 本身并不是 IPS,它不进行检测,因此您无法实现目标也就不足为奇了。
有些防病毒软件自以为很聪明,自诩为“穷人的 IPS”。它们通常做得很差,在我看来,这带来的问题比解决的问题还多。
主要问题是:为什么你需要这个吗?这些扫描对你来说有什么坏处?我换个说法:假设有人扫描你机器上的端口。他们很可能会发现几乎没有端口在回复,或者大多数回复都是“端口不可达”。这有什么问题?