我被要求记录每台服务器上每个应用程序使用的每个端口。有没有什么好工具可以做到这一点?

我被要求记录每台服务器上每个应用程序使用的每个端口。有没有什么好工具可以做到这一点?

基本上我需要说 Server1,其 ipaddress 为 1.2.3.4,上面有 Application1,并且该网络流量使用端口 100、101 和 103

由于许多服务器都是在我开始在这里工作之前构建和设置的,并且没有以前的管理员留下的文档,所以我希望有一个工具可以向我显示这些信息。

谢谢

针对询问者提供更新:Windows 和 Linux 操作系统的虚拟和物理硬件。

答案1

我认为大多数端口扫描器都能满足你的要求。一个流行的是nmap

Nmap(“网络映射器”)是一款免费的开源(许可证)实用程序,用于网络发现和安全审计。许多系统和网络管理员还发现它对于网络清单、管理服务升级计划以及监控主机或服务正常运行时间等任务非常有用。Nmap 以新颖的方式使用原始 IP 数据包来确定网络上有哪些主机可用、这些主机提供哪些服务(应用程序名称和版本)、它们运行的​​操作系统(和操作系统版本)、正在使用的数据包过滤器/防火墙类型以及许多其他特性。它旨在快速扫描大型网络,但对单个主机也适用。Nmap 可在所有主流计算机操作系统上运行,并且官方二进制包可用于 Linux、Windows 和 Mac OS X。除了经典的命令行 Nmap 可执行文件外,Nmap 套件还包括高级 GUI 和结果查看器(Zenmap)、灵活的数据传输、重定向和调试工具(Ncat)、用于比较扫描结果的实用程序(Ndiff)以及数据包生成和响应分析工具(Nping)。

答案2

我可能会笑着说“不”。正如评论中提到的,nmap/netstat 和端口扫描并不是一个完整的解决方案,因为许多这些服务仅在特定情况下或特定时间处于活动状态。

我能想到的唯一可靠方法是检查每台服务器上的防火墙规则,查看打开了哪些端口,并将这些端口与服务关联起来。当然,这也不是完整的解决方案 - 它依赖于所有服务器都打开了防火墙,并且假设开放端口是为现有服务开放的(而不是由于历史原因、默认配置或错误配置等)。

不过,我可能会再次拒绝该请求 - 这些信息似乎并不是特别有用,所以我认为这可能来自某个非技术人员,他确实需要/想要不同的信息,但却以不正确或误导的方式提出请求。

编辑:

针对此信息是针对新防火墙的,您需要让请求者重新制定他们的请求。新防火墙通常不关心每台服务器上使用的每个服务和端口,而是关心您允许哪些服务和端口进出网络。这可能就是他们真正想让您了解的内容,而且比提出的问题要容易得多。

答案3

在 Windows 中,您可以运行“netstat -a -n -o”以数字形式列出所有监听端口,并将这些端口与进程匹配。

答案4

另一种可能性是扫描 SNMP 信息并通过 SNMP 检查当前活动的 TCP/IP 连接。当然,对于 Windows 和 Linux 计算机,SNMP 是不够的,可能需要使用其他协议,例如 SSH 或 telnet。

一旦掌握了所有信息,您就可以确定哪个服务器正在与哪个客户端/其他服务器通信。

当然,单次扫描是不够的。您需要定期进行扫描才能获得完整的图像。

相关内容