我正在devise一个开发人员工具,可以分析和debugging任意的networking连接,但我想提供它作为一个服务,而不是软件在本地安装。
理想情况下,我想将每个用户的所有入站和出站数据包保存到数据库。
例如:
我很难弄清楚如何解决第三步。
我已阅读手册,search网页,并search服务器错误,但我怀疑我错过了一块拼图的地方。 我是否需要一个额外的工具来嗅探虚拟接口,或者OpenVPN能以某种方式处理这个问题?
OpenVPN本身不嗅探任何东西,但你可以使用标准的嗅探工具。
如果您将OpenVPNconfiguration为以隧道模式运行,则应用程序主机与您的服务器之间的连接将显示在虚拟接口上(在unix-like主机上使用类似tun0的名称),并在每边都有自己的IP地址。 从应用程序的angular度来看,您的服务器将看起来好像在物理上位于应用程序主机的同一networking中,并充当路由器,因此任何在常规networking接口上工作的嗅探工具都可以获取所需的数据会做。
我会做或多或less的东西如下
同时在VPN虚拟设备上运行一个嗅探程序,连续从接口抓取数据包,查看远程地址,将其与当前用户列表进行匹配,并保存到数据库中。 它可能是从networking接口提取数据包的标准嗅探工具和parsing数据包的自定义工具的组合,提取需要的信息并将其保存在某个地方。
您将需要嗅探stream量,因为它离开您的计算机上充当VPN端点的OpenVPN TUN或TAP接口。 这里没有魔法(或者至less没有我能想到的)。 一个接口,是一个接口,是一个接口。
OpenVPN不提供数据包嗅探的本地function,但是有很多专门构build的工具来执行这个任务,比如tcpdump或者tshark / wireshark。
OpenVPN如何适合图片呢?
我有一个模糊的感觉,你读到Linux支持“虚拟”networking接口的地方,其types分别被称为“TUN”和“TAP”(分别用于IP隧道式和以太网式接口),所以你使用Googlesearch打开了OpenVPN,它以同样的方式命名它的接口types(因为我相信它在Linux上使用相同的内核机制)。
我认为,实际上你正在寻找直接操作这些虚拟接口的方法 , 这些虚拟接口允许你创build自己的networking接口,从而有效地通过你的用户空间应用程序传递所有的stream量。