通过 TCP 进行服务 IPC 的隧道?

通过 TCP 进行服务 IPC 的隧道?

我正在使用一个由同一台服务器上的 Windows 服务组成的应用程序,这些服务通过 TCP 相互发送消息。每个服务都分配有一个端口,用于侦听消息。

我想加密此流量以防止它被读取(例如,使用 Wireshark 之类的工具),并且想知道 Stunnel 是否允许我们加密此流量而无需更改产品中的任何代码?

如果服务 B 正在监听端口 17900,而服务 A 期望服务 B 也监听该端口,那么是否可以确保从服务 A 到服务 B 的流量通过 Stunnel 加密?这是一个好主意吗?

答案1

如果所有服务都在同一台服务器上运行,那么它们之间的流量根本不会出现在网络上。

服务器的网络堆栈只会在进程之间移动数据包,甚至不涉及网络适配器。


诸如 WireShark 之类的网络嗅探器在捕获在同一系统上运行的进程之间的流量时会遇到很多麻烦,因为这些流量实际上并没有到达网络:

https://stackoverflow.com/questions/5847168/wireshark-localhost-traffic-capture
有没有办法让 wireshark 捕获 Windows 上从/到本地主机发送的数据包?

我不知道截至 2021 年这是否根本不可能,以及这是否会根据连接使用的目标 IP 地址(127.0.0.1 或实际服务器的 IP 地址)而改变。

无论如何,请注意在服务器上运行网络嗅探器需要管理权限,这将允许入侵者完全控制服务器及其上运行的所有进程

如果你有管理员权限,则无需嗅探网络流量;你可以这样做一切,包括读取进程的内存。此外,如果您只想停留在网络级别,您可以获取进程用于加密流量的任何证书并对其进行解密。

相关内容