如何在通信期间找到客户端的应用程序端口

网络工程 tcp 网络 防火墙 安全
2022-03-03 14:37:39

在阅读了有关入站和出站的防火墙规则后,我有一些问题,大多数来源都集中在服务器的端口上。

当尝试从连接的端口(相同的 25 或随机端口)连接到端口 25(SMTP)时,客户端会发生什么情况,客户端在其开放端口上是否存在任何安全问题,其他人可以吗?在那里提出要求?运行时如何查看客户端的端口让我们说telnet hostname target_port客户是一个正确的术语,因为我知道存在双向连接。为什么客户端的防火墙接受来自服务器的响应?

2个回答

当尝试从连接的端口(相同的 25 或随机端口)连接到端口 25 (SMTP) 时,客户端会发生什么情况,客户端在其开放端口上是否存在任何安全问题,

不,端口不是“开放的”(即侦听 = 接受来自其他地方的连接尝试)。它仅用于当前套接字连接。

其他人可以在那里提出请求吗?

不。

运行时如何查看客户端的端口让我们说telnet hostname target_port

Telnet 是一个终端客户端。您不能使用它来检查任何正在运行的连接。每个操作系统都有各种实用程序,如 Windows 的netstat,向您显示各种打开或侦听端口。

客户是一个正确的术语,因为我知道存在双向连接。

“客户端”是在应用层上使用的一个术语(这里是题外话)。如果您查看 TCP 套接字,您有一个“侦听器”(通常是服务器)和“启动器”(通常是客户端)。

为什么客户端的防火墙接受来自服务器的响应?

因为防火墙通常是有状态的:它会记住客户端已经在其他地方发起了连接,并且也允许反向流量。

相同的 25 或随机的

随机,请参阅临时端口

客户端在其开放端口上是否存在任何安全问题,其他人可以在那里提出请求吗?

不,它仅作为特定连接的来源,不接受此端口上的新连接。

运行时如何查看客户端的端口让我们说 telnet 主机名 target_port

您可以通过数据包捕获(Wireshark)、netstat(语法取决于系统)等查看端口。您可以根据getsockname自己的应用程序获取端口,但不能仅从 telnet 或其他应用程序中查看端口 - 除非这些专门为此提供了一种方法(通常不是)。

为什么客户端的防火墙接受来自服务器的响应?

可能是因为这是一个状态防火墙