24小时论文定制热线

热门毕设:土木工程工程造价桥梁工程计算机javaasp机械机械手夹具单片机工厂供电采矿工程
您当前的位置:论文定制 > 毕业设计论文 >
快速导航
毕业论文定制
关于我们
我们是一家专业提供高质量代做毕业设计的网站。2002年成立至今为众多客户提供大量毕业设计、论文定制等服务,赢得众多客户好评,因为专注,所以专业。写作老师大部分由全国211/958等高校的博士及硕士生设计,执笔,目前已为5000余位客户解决了论文写作的难题。 秉承以用户为中心,为用户创造价值的理念,我站拥有无缝对接的售后服务体系,代做毕业设计完成后有专业的老师进行一对一修改与完善,对有答辩需求的同学进行一对一的辅导,为你顺利毕业保驾护航
代做毕业设计
常见问题

基于Linux的反垃圾邮件管理系统开发

添加时间:2018/06/29 来源:未知 作者:admin
在Linux环境下设计的反垃圾邮件管理系统需要实现对垃圾邮件的识别, 这里需要以实际的邮件内容为出发点, 通过使用算法对接受的邮件进行过滤, 将其中的正文信息提取之后, 对邮件的具体性质通过计算邮件权重、特征项匹配、中文分词等进行定性。
以下为本篇论文正文:

  摘要:电子邮件的使用提升了办公的效率与质量, 但是垃圾邮件给用户带来了负面的影响, 同时也占据了大量的存储空间, 特别是其中存在的一些钓鱼软件带来的负面影响非常大, 因此, 屏蔽这些垃圾邮件非常重要。针对Linux环境下反垃圾邮件管理系统的需求, 具体设计了系统的总体架构及前后台界面, 具体实现过程主要围绕前台界面、邮件接受模块、邮件原文解析、邮件内容分析及检测钓鱼邮件等展开, 满足了用户的体验和需求, 取得了较好的效果。

  关键词:Linux环境; 反垃圾邮件; 管理系统; 设计; 实现;

  Abstract:Mail use enhances the efficiency and good quality of office, but spam has brought a negative impact to the user, and occupied a lot of memory at the same time, especially the existence of some fishing software has a great negative impact, it is very important to shield these spam.Based on the specific requirements of the anti-spam management system design in Linux, the overall of the system framework and the front and back interface are designed; the implementation process is mainly focused on front and back interface, mail acceptance module, mail text analysis, mail content analysis and detection of phishing mail. The anti-spam management system in Linux environment realizes the needs of design, meets user experience and requirements, and achieves good results.

  Keyword:Linux environment; anti spam; management system; design; implementation;

  当前人们对反垃圾邮件的研究越来越多, 相应的技术也在不断更新, 例如MAT控制技术、黑白名单技术、关键词过滤技术等。MAT控制技术设计了发件认证功能, 只有具备合法的用户名与密码才能进行发件[1-2];黑白名单技术, 则只有被信任的IP地址才能发送相关的邮件[3];关键词过滤技术是通过关键词的过滤, 在一定程度上实现了对垃圾邮件的较好过滤[4]。当前反垃圾邮件技术已经成为了一种协作式、多层次过滤式、多技术体系融合式技术[5-6], 而本文是在Linux环境下对反垃圾邮件管理系统进行了设计与实现, 实践证明, 对垃圾邮件的应对有着较好的效果。

  1、Linux环境下反垃圾邮件管理系统的设计需求分析

  1.1、功能需求

  (1) 在Linux环境下设计的反垃圾邮件管理系统需要实现对垃圾邮件的识别, 这里需要以实际的邮件内容为出发点, 通过使用算法对接受的邮件进行过滤, 将其中的正文信息提取之后, 对邮件的具体性质通过计算邮件权重、特征项匹配、中文分词等进行定性。

  (2) 在Linux环境下得到的反垃圾邮件管理系统, 需对钓鱼邮件进行识别, 要从钓鱼邮件的实际特征出发, 将钓鱼软件有效隔离在用户邮箱之外。这就需要在Linux环境下设计的反垃圾邮件系统可对邮件进行HTML格式解析, 将其中包含的超链接提取出来。

  (3) 在Linux环境下设计的反垃圾邮件系统, 应当具备邮件转发的功能, 若系统判定其为正常邮件, 则邮件不应当被系统拦截, 而应当通过系统转发的方式进入用户邮箱中。这就需要在设计反垃圾邮件管理系统时, 设计出高效邮件转发方案。

  (4) 设计出用户隔离区管理。若在Linux环境下设计的反垃圾邮件管理系统将某些邮件拦截, 这些邮件应当进入到系统中的用户隔离区。与此同时, 对于系统隔离区实际的使用情况应当在一定时间内向用户进行反馈, 特别是当隔离区充满时, 应当设计成双向机制, 或者提醒用户进行手动清理, 也可设计为自动清除的方式。

  (5) 设计出前台界面。在Linux环境下设计的反垃圾邮件管理系统应当有科学合理布置的前台, 对于设计得到的前台界面应当包括处理日志、过滤邮件通行、病毒邮件、垃圾邮件及正常邮件界面, 同时还需要有灵活多变的查询方式。界面中也应当具备登录功能, 按照不同的身份, 可分为普通用户与管理员。

  1.2、性能需求

  为了更好地满足用户对垃圾邮件隔离处理的需求。在Linux环境下设计反垃圾邮件管理系统, 应当满足两个方面的性能:其一, 对于进出用户邮箱的所有邮件, 均能够实现高速度识别, 得到的召回率应当超过98%;其二, 对于进出用户邮箱的垃圾邮件, 应当实现高速精准识别, 通常情况下, 所能够达到的处理速度应当在每小时十万封以上, 对于邮件的转发能力应当在每小时五万封以上。

  1.3、安全性需求

  在Linux环境下设计得到的反垃圾邮件管理系统, 在进行邮件处理的过程中, 需要采用“真空”传递的技术, 从而确保所有用户的邮件处于机密状态。同时, 该系统在进行安装时, 应当做到配置简单, 这对于提升整个系统的易用性是非常关键的。系统还应当实现远程维护功能, 从而降低这一系统的总体维护成本。此外, 在这一反垃圾邮件管理系统中, 还需要加入系统生存性方面的功能, 从而确保整个系统都处于运行可靠和稳定的状态。

  2、Linux环境下反垃圾邮件管理系统设计

  2.1、系统总体构架

  首先是系统的网络结构。整个系统在进行具体设计时选择使用了B/S架构, 主要分为前台与后台两个部分。系统管理者可通过用户浏览器进入到系统, 并实现对系统的全面控制。对于用户原有的IP地址可采用直接分配的方式进入到邮件的网关中。对于反垃圾邮件系统的外部, 邮件到达之后首先将进入到网关系统当中, 若系统判定邮件是正常邮件时, 会通过转发的方式发送到用户内部的服务器当中。

  其次是系统的体系结构。在Linux环境下设计的反垃圾邮件管理系统, 其服务器均在Linux上, 需要PHP解析器, 网关系统分为系统后台功能与前台界面两部分。其中前台包括日志管理、基础配置、系统管理等相关模块。系统后台功能包括蜜罐技术、邮件转发、邮件隔离、邮件内容分析、原文解析等。

  2.2、系统前台设计

  图1是Linux环境下设计的反垃圾邮件管理系统的总体用例图。在Linux环境下设计的系统前后台角色分为管理员与普通用户。其中普通用户的进入需要管理员的允许, 同时管理员具备配置与查看操作权限的作用, 普通用户只能管理自身隔离区与日志查看的权限。

  在Linux环境下设计的反垃圾邮件管理系统的前台一共包含有四大模块, 分别为:日志管理、用户隔离区、基础配置及系统管理。这四个模块包含了对应的内容。例如日志管理模块, 就设计了很多功能, 有垃圾邮件的日志、接收邮件的日志、转发邮件的日志、日志的导出与导入、疑似钓鱼邮件日志等。

图1 Linux环境下设计的反垃圾邮件管理系统的总体用例图
图1 Linux环境下设计的反垃圾邮件管理系统的总体用例图

  2.3、系统后台设计

  反垃圾邮件管理系统在Linux环境下进行设计总体也较为繁琐, 对于系统的后台主要有原文解析模块、接收模块、检测模块、转发模块以及隔离管理模块等必要的邮件接收、分析和处理方面的模块。整个系统也可分为三个主要部分:对邮件进行转发的模块、对邮件进行过滤的模块及接收邮件的模块。其中对邮件进行过滤的模块主要功能是根据邮件的具体内容通过一定的算法对邮件进行过滤, 同时, 在接收邮件时, 需要将其中包含的SMTP协议进行全面的解析。在Linux环境下对邮件进行转化的实质是将用户使用的邮件服务器和SMTP协议实现交互。

  (1) 邮件接收模块。该模块需要完成协议解析交互, 若入口位置收到了连接服务器请求, 在系统中会形成一个套接字, 该套接字是接受数据的基础, 若有新的数据, 需要在Linux环境下进行SMTP协议解析。若通过解析之后得到的命令为HELO, 则会收到250回复, 表明OK;若得到的命令为MAIL, 需要对收到的邮件格式进行判断, 若得到的回复是501, 则系统会出现判断错误的指令。完成对邮件格式的甄别之后, 需使用套接字对邮件体信息进行接收, 并将得到的邮件头信息与邮件体信息完整的收入到邮件的信息缓冲区当中, 这就完成了对邮件整体的接收。

  (2) 邮件原文的解析模块。在对邮件进行完全过滤之前, 需对邮件正文进行全面的解析, 这里需在Linux环境下使用MIME协议, 其中的内容是将整个邮件的正文按照MIME协议的要求全部解析成文本的格式。这就需要使用到该邮件的头部信息, 并对整个邮件的正文内容进行整体解码, 然后得到存储结构, 这也就是邮件整个原文的结构体, 并最终采用链表的方式将解析的结果进行存储。这里需从实际情况出发, 对邮件中包含的原文内容进行分析提取, 若仅需数据, 则对其中包含的数据进行解析即可。

  (3) 邮件内容分析模块。在该环境下设计反垃圾邮件管理系统时, 对垃圾邮件的过滤, 需以自学习文本分类器的构造作为基础, 采用一种Winnow算法对邮件内容按照规则进行分类处理[7]。这就要求对前期的样本邮件集合按照规则进行分类训练, 也就是构造一个邮件分类器。在进行训练时, 具体可分为如下过程:预处理邮件;对特征进行提取与选择;使用Winnow算法对最开始的权重向量进行不断的调整, 并形成分类器。其中在对正文进行调整时, 首先需要确定出典型内容的特征, 这里对垃圾邮件使用文本分类算法实现高效识别, 本次系统设计采用了Linux环境下的Winnow算法。其次是邮件训练, 这里需要准备出垃圾邮件与正常邮件样本, 选择Winnow算法实现对邮件的有效训练, 在进行训练之后, 把所有类别中的所有特征对应的权重确定出来, 并将这些权重写入到文件当中。再就是对内容进行分析, 在进行分析时, 需要将所有类别中的权重之和确定出来, 其中权重之和最大的对应类对应邮件分类。在对邮件进行预处理的过程中, 通过设置分词的方式将其中包含的各种类型的词语按照内容的不同进行分类, 其中, 选择使用中文分词的方式可实现各种信息的有效处理。在完成邮件分类器构造的过程中, 主要使用的一种算法是Winnow算法, 按照这一算法通过不断反馈的形式, 对其中的权重向量按照不同的需求有针对性地更新, 并得到最终的邮件分类权重的向量。一旦接收到未知邮件, 就可以按照算法要求进行分析, 并将邮件特征向量计算出来, 实现与权重向量的相乘, 若得到的结果超过了阈值则认定为垃圾邮件, 反之则为正常邮件。

  (4) 钓鱼邮件构造模块。当前很多钓鱼邮件在进行散发时, 往往通过和采用大量诱导性邮件的形式进行散发, 通过将邮件伪装成一个可信组织机构的形式进行分发, 并诱导更多的终端用户[8]。通常情况下其中包含一个紧急动作请求, 比如有一个容易出现混淆的链接。其主要特征为:邮件内容相对于正常邮件有着较大的差异, 例如邮件中包含用户密码、中奖号码、用户账号等方面信息;邮件中包含有一个或多个连接到虚假网站的链接, 当用户点击进入之后往往提示用户输入相关的密码账号等重要的信息[9-10]。这些是钓鱼软件的主要特征, 本次在Linux环境下设计的反垃圾邮件管理系统对钓鱼邮件的检测流程进行了设计, 具体为:当系统收到邮件之后, 通过原文解析对其中包含的各种类型的文本转换为正文解析的HTML格式, 从而将其中包含的超链接提取出来, 提取出来之后, 对黑名单中对应的URL域名进行匹配, 并对邮件的特征与钓鱼邮件的特征进行全面综合的判断, 从而实现对钓鱼链接的有效识别。

  (5) 邮件转发模块。这一模块实现的是SMTP邮件并转发的功能, 然后将接收到的邮件按照邮件收件人的地址存储为域名并存储成为文件。在进行邮件转发之前往往会将该邮件进行解析, 从而确定出该邮件需要进行的是本地域转发还是远程转发。在进行转发模块的设计时, 采用了内存缓冲区域管理的机制, 通过在缓存区中设置邮件文件名, 构建出较多的转发在线流程, 从而将文件名不断地从缓冲区中有效提出, 并根据文件名, 对网关中包含的交互过程进行解析。

  (6) 邮件隔离区管理模块。在管理用户隔离区时, 若其中包含了较多的邮件, 则需要及时清空;若出现了隔离区已满的情况, 需对这些用户及时发送提醒, 提醒用户根据自身的需求对隔离区域进行及时清理;若出现了超过隔离区容量的情况, 本次设计的系统会根据具体时间对隔离区中包含的邮件进行清理。

  (7) 蜜罐技术模块。这里主要是故意将一些邮箱地址进行公开, 并将其设置为蜜罐, 让SPAMMER对这些地址进行获取。由于认定的是若邮件是正常的则进入不到这些邮件当中, 因此, 正常邮件往往均会直接进入到已知的邮箱当中, 所以进入到该邮箱当中的邮件往往是垃圾邮件, 其本质就是一种陷阱。当收到了垃圾邮件之后, 需对这些邮件进行分析, 并将其加入到黑名单中。

  (8) 分类器更新模块。邮件分类器是对邮件内容进行全面分析的一种过滤模块。在进行本次系统设计时, 采用了以蜜罐技术与反馈技术为综合的邮件分类器更新技术。随着各种技术的不断进步, 选择使用邮件分类器更新模块是非常关键的。在进行具体的更新时, 需要将正常邮件与垃圾邮件作为训练样本。在具体设计时, 对文本中包含的邮件首先按照特定协议进行解析, 由此对邮件中所包含的原文信息实现全部还原, 然后再对整个邮件的正文内容进行具体解析。在邮件内容分析模块, 因为需要使用样本邮件按照特定算法对邮件进行分类, 所以这样就会得到较好的一个邮件识别结果。本次设计就通过将蜜罐技术与反馈技术进行结合的方式, 形成了分类器定时更新机制。垃圾邮件的制造者通常情况下会设置一些自动收集电子邮件的地址, 而通过蜜罐技术会将大量垃圾邮件中包含的邮箱地址进行捕获, 并将这些内容加入到蜜罐当中, 进行全面的分析研究。

  3、Linux环境下反垃圾邮件管理系统的实现

  3.1、开发环境及工具

  Linux本质为一个可进行移植的操作系统, 总体的可靠性非常强, 后台系统的编程选择了C语言, 其中使用的GCC开发工具是编译器套件中的一种。本文的前台开发工具使用的是基于Linux Apache+My SQL+PHP组合而展开的, 其中的PHP (超文本预处理器) 是基于服务器端的一种容易使用的HTML嵌入式的脚本语言。

  3.2、系统实现

  (1) 前台界面设计。在进行具体设计时, 需要考虑能够为系统的操作人员提供方便快捷的一个管理界面, 与此同时, 也尽可能为用户提供可以便捷查阅网页内容的一个界面。具体分三个步骤进行设计。第一步, 先登录界面设计, 获取用户IP, 并将获取的结果存储到PHP全局变量当中, 然后获取用户的MAC地址, 并通过C程序编程的方式将GETMAC可执行程序放置到其中。第二步, 对垃圾邮件的读取与存储进行处理设计, 随着时间的推移, 其中包含的邮件数量将不断增多, 若将其中包含的所有垃圾邮件条目全部存储到某一张表格中, 整个系统插入与读取的速度均会降低。因此, 在进行具体设计时, 选择使用对所有收件人的地址进行散列处理的方式, 从而将所有的用户全部散列到不计其数的列表中。此外, 为系统的管理人员设计搜索功能, 搜索的可选项有:收件人地址、邮件时间、邮件类型等。第三步, 在系统中进行字符编码的转换, 期间为了增强反垃圾邮件系统的适用性和通用性, 整个转换界面的文字统一采用的编码形式主要是UTF-8, 该设计通过php系统函数中的iconv功能实现。第四步, 上传与配置, 设计采用了系统的管理人员对配置进行随时保存, 增强了系统管理的便捷性。

  (2) 邮件接收模块的设计与实现。该模块主要设计了创建邮件接受线程、监听线程等, 在整个进程当中, 需要对数据进行钓鱼邮件过滤、内容过滤、数据库连接初始化等操作, 并完成对邮件完整信息、SMTP缓冲区申请等操作。当收到的邮件经过了全部的过滤之后, 还设计了向存储空间进行申请空间的操作, 当完成了申请之后, 整个邮件的接收过程也就此结束了, 对于接收得到的邮件则可在后续的过滤模块中通过过滤的方式发挥其全部的功能。

  (3) 邮件原文解析模块的设计与实现。在完成发送和接收邮件的整个过程中, 需要反垃圾邮件系统对整个邮件的正文进行全面的很好的解析。此时, 若邮件的格式采用的是RFC822, 则说明采用这一格式的邮件在整个结构方面总体来说还是较为简单的, 这样的邮件包含了邮件的正文与邮件头, 而MIME (多用途网络邮件扩协议的英文简称) 则是在RFC822格式基础上的基本结构的一种协议扩展。在这一MIME协议中, 其ContentType (内容类型) 所规定的内容描述的是邮件正文中所包含的数据;而其中的Content-TransferEncoding (传输编码) 所规定的内容表示的是邮件传送过程中可以被接受的一种方式, 即指出系统用来表示邮件消息正文的一种消息类型。在所采用的邮件编码形式中经常用到的还有以下几种, 如UUENCODE、Quoted-printable等, 以及Binary、Base64、HZ、7bit、8bit等。如果邮件采用的是HTML格式, 那么在对邮件进行解析的过程中, 需要将其解析为HTML格式与纯文本格式, 对于解析结果使用存储链表的方式, 每个链表中包含有2个节点。对邮件进行解码的过程其实就是编码过程的逆过程, 这就需要在完成解码时, 提前将其中的解码算法找出来。

  (4) 邮件内容分析模块的设计与实现。在过滤垃圾邮件时, 主要采用Winnow算法对其中包含的内容进行分类, 在具体实施时, 需对邮件进行集合训练, 也就是构造分类器, 并对收集到的新邮件按照训练结果进行分类, 从而实现对邮件性质的有效判定。在具体训练时, 其具体过程为:邮件特征选择、邮件提取与选择、邮件预处理等。在进行具体的预处理时, 需要将邮件的正文分词全面找出来, 这是对信息进行处理的关键与基础。同时, 在这个过程中需要对特征进行提取与选择, 对特征进行合并, 得到对应的全特征集, 这里通常使用到的是信息增益算法, 对整个信息系统中包含的所有的信息增益进行全部解析。在进行特征提取之后, 构建成完整的特征集合, 具体的内容分析需要分析邮件的整个正文内容, 然后选择和提取其中典型的内容并按照特定规则找到其中的特征, 再利用Winnow算法中的文本分类算法对其中的垃圾邮件内容进行识别, 其内容分析程序的召回率和准确率都是高的。

  (5) 钓鱼邮件检测模块的设计与实现。本次设计中, 选择使用了以URL抗过滤技术为基础的一种设计技术。若邮件中存在较多的无关内容, 虽然其与正常邮件较为类似, 但是通过邮件检测模块, 能够实现对其中一些非法内容的准确率较高的判断, 然后按照特定规则检测到上述钓鱼邮件中的一些特征, 通过采用建立在URL域名基础上的邮件过滤模块, 并在系统通过Hash数快速去查找整个系统中存在的URL域名, 这样就能有效地过滤掉其中的钓鱼邮件。这一功能模块, 首先需要对钓鱼邮件链接的一些特征进行具体分析, 在反垃圾邮件系统对钓鱼邮件进行过滤的过程中, 需结合URL域名中包含的黑名单与白名单进行检测。此外, 还需对邮件转发模块进行设计, 本次设计还采用了建立在内存缓冲区管理基础上的一种机制及其处理的策略, 通过将邮件所记录的文件名全部写入到系统的缓存区之中, 然后通过形成较多的转发流程, 实现对邮件的有效提取。而在系统的转发线程中不断地查询在系统的缓冲区中是否存在需要转发的文件及其文件名。如果存在需要转发的文件, 则通过系统解析相应的文件, 然后就可以将解析完成的邮件进行转发。采用这样的设计, 可使得系统中的主线程和转发线程以及多个转发线程之间同时对缓冲区进行同样的操作, 这也就使系统中存在系统资源互斥的问题, 为了解决这一问题, 本文的设计中采用了一种系统线程同步处理的方式, 然后通过系统的互斥锁以规避系统线程可能存在的冲突。

  4、结语

  在Linux环境下设计反垃圾邮件管理系统可取得较好的效果。但是管理系统的具体设计是一个较为复杂的过程, 需要设计人员从用户的实际需求出发, 面对互联网不断发展给反垃圾邮件工作带来的挑战, 对反垃圾邮件管理系统进行设计并不断完善, 从而更好地服务于用户。

  参考文献
  [1]夏正新.一种基于滑动窗口技术的邮件特征选择方法[J].南京邮电大学学报:自然科学版, 2017 (6) :1-8.
  [2]李玉峰.基于Spam Assassin的中文垃圾邮件过滤系统的设计与实现[J].内蒙古农业大学学报:自然科学版, 2012, 33 (3) :245-249.
  [3]王青松, 魏如玉.基于短语的贝叶斯中文垃圾邮件过滤方法[J].计算机科学, 2016, 43 (4) :256-259+269.
  [4]王靖, 王兴伟, 赵悦.基于变精度粗糙集决策树垃圾邮件过滤[J].系统仿真学报, 2016, 28 (3) :705-710.
  [5]李艳涛, 冯伟森.堆叠去噪自编码器在垃圾邮件过滤中的应用[J].计算机应用, 2015, 35 (11) :3256-3260+3292.
  [6]郭军权, 诸葛建伟, 孙东红, 等.Spampot:基于分布式蜜罐的垃圾邮件捕获系统[J].计算机研究与发展, 2014, 51 (5) :1071-1080.
  [7]黄国伟, 许昱玮.基于用户反馈的混合型垃圾邮件过滤方法[J].计算机应用, 2013, 33 (7) :1861-1865.
  [8]刘海韬, 阳洁.云计算平台下一种新型反垃圾邮件系统的研究[J].中南大学学报:自然科学版, 2013, 44 (5) :1869-1874.
  [9]孙广路, 齐浩亮.基于在线排序逻辑回归的垃圾邮件过滤[J].清华大学学报:自然科学版, 2013, 53 (5) :734-741.
  [10]柴宝仁, 谷文成, 牛占云, 等.基于Boosting算法的垃圾邮件过滤方法研究[J].北京理工大学学报, 2013, 33 (1) :79-83.

相关内容
相关标签:Linux毕业设计
好优论文定制中心主要为您提供代做毕业设计及各专业毕业论文写作辅导服务。 网站地图
所有论文、资料均源于网上的共享资源以及一些期刊杂志,所有论文仅免费供网友间相互学习交流之用,请特别注意勿做其他非法用途。
如有侵犯您的版权或其他有损您利益的行为,请联系指出,论文定制中心会立即进行改正或删除有关内容!