简单的原始数据包捕获&发送程序

时间:2013-10-21 12:43:17

标签: linux sockets networking packet sniffer

我想创建一个具有以下拓扑的演示:

... ---> [开关]< ---> [主机]

DEMO :交换机将数据包发送到监控主机(数据包原始目标不是此主机,但交换机将通过镜像端口发送)。监视器 - 主机将捕获该数据包,对其执行某些操作(例如,只将L2-L4标头字段转储到某个日志文件中),然后将原始数据包发送回交换机。

主机环境: Ubuntu 12.04 Linux。

困境:在Host中捕获数据包并将原始数据包发送回交换机的最简单方法是什么?

探索的可能性:

  • 在C中创建一个数据包嗅探器程序(看起来复杂... libpcap,AF_Packet套接字等)。
  • 尝试使用python scapy(不知道这会有多复杂)。
  • 尝试安装某种类型的开源代理服务器,我可以编写一个插件来检查捕获的数据包。

问题:任何更好的建议(如果我可以避免进入编程路线,那将是首选。是否有任何简单的脚本方法来执行此操作?)。在这里寻找一种快速而肮脏的方法。谢谢。

1 个答案:

答案 0 :(得分:0)

好吧,您可以使用可用的数据包嗅探器,例如wireshark,ettercap,它将捕获所有网络数据包(使用promisc模式)并以可读格式转储它们。 或者,您可以在python,linux中轻松地为自己编写嗅探器,这对于理解并不是那么复杂。