微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在encryption之前查看tcpdump中传出的ESP数据包

我有一个安装在两个terminal系统之间的Ipsec隧道。 当我在出口接口(如eth0)上捕获数据包时,我只能看到encryption的ESP数据包离开我的系统。 我必须去看接收端,看看实际传输的是什么,即在接收端,我可以看到解密后的数据包。 类似于接收方发送的确认。 它在linux内核中的工作原理是什么? 在encryption之前,有没有办法在tcpdump中查看发送端的数据包?

针对基于非SSL的签名和encryption的硬件加速

ClientError:(<Response >,DeserializationError('以下字段是required:detail',))

使用Microsoft Crypto API(Windows证书存储)时如何隐藏和使用对话框

在NTFS上查看encryption文件的密文(EFS)

从哪里开始Web服务开发?

你有三个问题在你的问题:

如何看到传出的ESP数据包在tcpdump之前,他们得到加密?

它在linux内核中的工作原理是什么?

在加密之前,有没有办法在tcpdump中查看发送端的数据包?

第三个问题的答案是

这取决于你的内核和你正在使用的实现。 如果您在2.4内核中使用KLIPS作为任何*天鹅解决方案的一部分,那么是的。

否则,如果你使用2.6内核,那么使用KAME / * BSD模型

否,除非您更改Ipssec或iptables配置,以便将数据包发送到另一个未加密的接口,然后将未加密的数据包转发到将要加密的接口。

一个问题的答案是更改你的iptables配置和IPSec配置。

将数据从一个接口发送到同一主机上的另一个接口。

设置从第二个接口到目的地的数据转发

在安全策略中配置第二个接口的IP地址,在第二个接口上创建隧道。

这种方式可以在加密的接口上进行tcpdump,而不用改变任何东西,在数据加密之前。

对于KLIPS和2.4内核来说,就像使用-i开关的特定于tcpdump的接口一样简单。

看到未加密数据的其他选项包括使用带有-E标志和相关参数( 参见手册页 )的tcpdump,它在加密后解密数据或使用tcpdump捕获加密数据,然后在Wireshark中解密(有关ESP的更多信息Wireshark中的IPSec解密位于这里 )。

或者,您可以将源代码中的printk或printk_times放置到xfrm或esp_input 。

关于第二个问题,有几张图解释了它是如何在高层次上运行的,包括通过内核图解释Solaris实现作为Oracle系统管理指南:IP服务和Linux基础网络流的一部分 。

另请参阅以下参考 。 基本上,无论是使用setkey进行手动配置,还是使用用户空间中的IKE守护程序进行自动配置,都会将信息传递给XFRM,XFRM会在数据包到达netfilter预路由之前对其进行转换。

有关KLIPS和KAME历史的更多信息,请参阅这里 。

假设你在Linux上:

我的做法是将iptables规则放置在处理管道中的正确位置上。 然后使用tshark和-i nfqueue来捕获数据包。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐