题
如何让tcpdump告诉我在eth1上访问的端口号?
解决方法
所以,你真正需要弄清楚的是:
>服务器实际提供和使用的是什么
>服务器应该提供什么
理想情况下,系统管理员应该根据他们对系统及其文档的了解来回答这两个问题.在实践中,出于各种各样的原因,从营业额到无能,他们实际上可能没有那个答案.您可以通过多种方式确定此信息,但您将从网络流量分析中获得最佳结果.
tcpdump是一个很棒的工具,但并不适合你想要的那种调查.它具有捕获所有数据包的问题,这意味着您将看到所有网络扫描,广播以及所有其他未实际连接的信息.为此目的使用流分析的好处是您可以仅在已建立的连接上过滤流量.这个很重要.这可以让您知道谁在您的系统上实际使用服务.当然,“已建立”的整个概念非常依赖于TCP,因此对于UDP等无连接协议,您需要在分析中更加小心.
对此的简单回答是使用像netflows这样的东西.与网络人员交谈.大多数(如果不是全部)网络空间中的大型参与者都可以生成与Cisco netflow功能相同的功能. Juniper将其称为jflow,开放标准是sflow.您的网络人员可能已启用此功能,如果没有查看是否可以获取为您的服务器连接的交换机端口生成的流数据.
如果您没有可用的netflow,那么Qosient生成一个名为argus的开源应用程序.Argus也会生成流数据,但它不是在网络设备上运行,而是在系统上运行的软件包.传统上,您可以将argus守护程序指向连接到镜像/跨接端口或分接头的接口.但是,您可以轻松地将其指向eth1并专门为该端口生成流数据.
获得流量数据后,您可以开始进行各种各样的分析,以确定使用的是什么以及由谁使用.通过将端口与应用程序相关联,查看netstat的-p选项,然后您可以开始确定系统上实际需要运行的内容.此外,由于您将拥有使用该服务的网络地址,您可以使用该服务以及与客户的通信,以确定受众并制定一些非常严格定义的防火墙规则.
睁着眼睛进入这个.这个过程令人沮丧,容易出错,而且很难.会有错误.就像我说的,正确的方法是询问管理员应该运行的是什么.当你不能这样做时,这是下一个最好的事情.