# 局域网电子邮件监控系统的设计与实现\(一\)

Canonical: https://www.nsecsoft.com/technet/%E5%B1%80%E5%9F%9F%E7%BD%91%E7%94%B5%E5%AD%90%E9%82%AE%E4%BB%B6%E7%9B%91%E6%8E%A7%E7%B3%BB%E7%BB%9F%E7%9A%84%E8%AE%BE%E8%AE%A1%E4%B8%8E%E5%AE%9E%E7%8E%B0%E4%B8%80.html

Language: zh-CN

Updated: 2020-10-26T09:45:08Z

今天电子邮件由于它的廉价和便捷已成为人们广泛使用的通讯手段之一。正是因为如此，其内容也非常复杂，合理、有效地监 \[…\]

今天电子邮件 由于它的廉价和便捷 已成为人们广泛使用的通讯手段之一。

正是因为如此，其 内容也非常复杂，合理、有效地监控 电子邮件成为一个迫切的需要。而 Sniffer(嗅探器)技术在网络 中的应用已非常广泛。Snffier在网络管理、维护、安全方面发挥了重要作用。

本文实现了一种基于 Sniffer思想的电子邮件监控系统，捕获共享式局域网中经电子邮件客户端发送的电子邮件，并将其转存为文件，从而实现监控共享式局域网中经电子邮件途径传输的内容，使得管理人员能够根据这些信息进行必要的控制管理。

1 系统的基本工作原理及其相关技术

1．1 系统的逻辑功能结构

系统建立在 WinPcap体系结构的基础上，设计为三层结构：底层是对数据包的捕获，其上层是数据包的过滤保存，最上层是对过滤后的有用数据包进行分析显示。系统功能结构如图1所示 。

图 l 电子 邮件监控系统功能框 图

1．2 数据包的捕获及过滤技术

Windows操作系统没有提供 内置的包捕获机制。但它提供了一个用来捕获数据包的开放系统软件包 WinPcap(Windows Packet Capture)。

1．2．1 WinPcap的功能与结构

(1)WinPcap的功能

WinPcap是Windows平台下一个免费、公共的网络访问系统。它为Win32应用程序提供访问网络底层的能力。主要功能包括：能够捕获原始数据报，包括在共享网络上各主机发送(接收)的以及相互之间交换的数据报；在数据报发往应用程序之前，按照自定义的规则将某些特殊的数据报过滤掉；在网络上发送原始的数据报；收集网络通信过程中的统计信息。

WinPcap的主要特点在于独立于主机协议 (如TCP/IP)而发送和接收原始数据报。也就是说，WinPcap不能阻塞和控制其他应用程序数据报的发收，它仅仅只是监听共享网络上传送的数据报。因此，它不能用于QoS调度程序或个人防火墙。

(2)WinPcap的体系结构

WinPcap主要由三个模块组成，一个在 内核级 ，另外两个以DLL的形式处于用户级。主要模块包括：过滤器、内核级和用户级的缓存、用户级上的两种库。

①内核级的网络组包过滤器(NPF)。在 内核级的部分即NPF是一个经过优化的内核模式驱动器，用于对数据包进行过滤，将接受的数据包送交用户级，并含有与操作系统相关的代码部分，如时间戳管理等 。

②数据包低级驱动程序库(packet．du)。数据包驱动程序库是与 Libpcap相兼容的一组用户级的函数库。packet．du用于在 Win32平台上为数据包驱动程序提供一个公共的接 口。由于不同的Windows版本在用户级和内核级之间提供各不相同的接 口，而packet．du可以屏蔽这些区别，提供一个与系统无关的API。基于packet．dll开发的数据包截获程序可以运行于不同的Win32平台而不必重新进行编译。packet．dll可以执行如获取网卡名或者机器掩码等低级的操作。packet．du和 BPF均与所用的操作系统有关。

③数据包高级驱动程序库(wpcap．du)。wpcap.dll是与操作系统无关的，它含有诸如产生过滤器、用户级缓冲以及包注入等高级功能。所以，编程人员既可以使用包含在 packet．du中的低级函数直接进入内核级调用，也可以使用由wl~ap．du提供的高级函数，并可能被转换成若干个 NP系统调用。基级函数调用，这样 功 能更 强，使用也更方便。wpcap.dll的函数调用会 自动调用 packet．du中的低于Windows操作平台的系统，可直接调用 WinPcap所提供的API接 口函数以实现各种网络数据报文的捕获。数据报文捕获及过滤程序流程如图2所示。

数据报文捕获及过滤技术

图2：数据报文捕获及过滤技术
