毕业设计(论文)基于qmail和vpopmail的邮件计费系统的设计与实现

上传人:r****d 文档编号:94946244 上传时间:2022-05-23 格式:DOC 页数:42 大小:357.50KB
收藏 版权申诉 举报 下载
毕业设计(论文)基于qmail和vpopmail的邮件计费系统的设计与实现_第1页
第1页 / 共42页
毕业设计(论文)基于qmail和vpopmail的邮件计费系统的设计与实现_第2页
第2页 / 共42页
毕业设计(论文)基于qmail和vpopmail的邮件计费系统的设计与实现_第3页
第3页 / 共42页
资源描述:

《毕业设计(论文)基于qmail和vpopmail的邮件计费系统的设计与实现》由会员分享,可在线阅读,更多相关《毕业设计(论文)基于qmail和vpopmail的邮件计费系统的设计与实现(42页珍藏版)》请在装配图网上搜索。

1、东 南 大 学毕业设计(论文)报告题目 基于qmail和vpopmail的邮件计费系统的设计与实现计算机科学与工程院(系) 计算机科学与技术 专业学号 _ _学生姓名 _ _指导教师 _ _起讫时间 _ _2010-3-8 至 2010-6-10_设计地点 东南大学计算机网络实验室_ _ 目录摘要3Abstract4第一章绪论51.1 电子邮件简介51.1.1 电子邮件的定义51.1.2 电子邮件的工作原理51.1.3 电子邮件的工作过程51.2 研究背景和研究内容61.2.1 研究背景61.2.2 研究内容6第二章基于qmail和vpopmail的邮件计费的系统设计82.1 技术分析82.1

2、.1 操作系统和用户数据库82.1.2 邮件服务器软件82.1.3 邮件的保存92.1.4 虚拟域的邮件用户92.2 linux和qmail的特点92.3 系统模块设计112.3.1 用户接受邮件服务流程112.3.2 邮件处理过程122.3.3 为Qmail增加smtp用户认证功能122.3.4 使用虚拟邮件域构建邮件服务142.3.5 数据库设计14第三章系统实现163.1 软硬件环境163.2 DNS服务器的配置163.2.1 ubuntu下的网络配置173.2.2 ubuntu下DNS服务器的配置173.3 邮件服务器系统的实现203.3.1 ubuntu下qmail的下载安装及配置2

3、13.3.2 邮件服务器软件qmail中的日志splogger的修改273.4 数据库服务器系统的实现273.4.1 ubuntu下mysql的下载安装及配置273.4.2 基于dns服务器qmail服务器下设置mysql用户32第四章 总结和展望334.1 现有成果的局限性以及研究对象的前景334.2 心得与体会33致谢35参考文献36基于qmail和vpopmail的邮件计费系统的设计与实现摘要本文的目的是建立一个邮件系统,为网络用户提供邮件服务,同时把邮件用户的流量信息记录到数据库中,为网络管理员提供灵活的基于邮件用户的流量计费的数据。并可根据数据库中的信息,对邮件用户进行管理,如添加用

4、户、删除用户等。主要工作和成果如下:1. DNS服务器的总体设计,包括正向反向解析域名,目的是能够实现DNS服务器的正确解析,以便在邮件系统中通过正确的解析地址发送邮件。2. qmail邮件服务器软件的配置,构建一个邮件收发系统,并且通过修改splogger日志监控程序实现对数据库的访问功能。3. 在ubuntu操作系统下,通过配置DNS服务器、qmail邮件服务器和mysql数据库来实现一个整体的邮件计费系统的实现过程。 关键词: ubuntu,域名解析,邮件收发,邮件计费,qmailE-mail based on qmail and vpopmail Design and Implemen

5、tation of Accounting SystemAbstractThis article is intended to establish a mail system, network users for network users to provide email services, e-mail users to record the flow of information to the database for the network administrator to provide a flexible user-based e-mail traffic accounting d

6、ata. And according to information from the database of email users to manage, such as adding users, delete users. Major work and results are as follows:1. Design of DNS servers, including the forward reverse domain name resolution, aimed to achieve the correct DNS server resolve to the mail system v

7、ia the correct address to send the message parsing2. The qmail mail server software configuration, build a mail sending and receiving systems, and by modifying the splogger log monitoring program to achieve access to the database functions.3. The ubuntu operating system, configured DNS server、qmail

8、mail server and mysql database to achieve a comprehensive e-mail billing system implementation process.Keywords: ubuntu, domain name resolution, e-mail sending and receiving,e-mail accouting, qmail, 第一章 绪论 本章节主要内容是对电子邮件的定义、工作原理、工作过程以及研究背景和研究内容进行阐述,为整个工作的研究做铺垫。1.1 电子邮件简介1.1.1 电子邮件的定义电子邮件(electronic m

9、ail),它是种用电子手段提供信息交换的通信方式。是Internet应用最广的服务:通过网络的电子邮件系统,用户可以用非常低廉的价格(不管发送到哪里,都只需负担 费和网费即可),以非常快速的方式(几秒钟之内可以发送到世界上任何你指定的目的地),与世界上任何一个角落的网络用户联系,这些电子邮件可以是文字、图像、声音等各种方式。同时,用户可以得到大量免费的新闻、专题邮件,并实现轻松的信息搜索。1.1.2 电子邮件的工作原理电子邮件在Internet上发送和接收的原理可以很形象地用我们日常生活中邮寄包裹来形容:当我们要寄一个包裹的时候,我们首先要找到任何一个有这项业务的邮局,在填写完收件人姓名、地址

10、等等之后包裹就寄出而到了收件人所在地的邮局,那么对方取包裹的时候就必须去这个邮局才能取出。同样的,当我们发送电子邮件的时候,这封邮件是由邮件发送服务器(任何一个都可以)发出,并根据收信人的地址判断对方的邮件接收服务器而将这封信发送到该服务器上,收信人要收取邮件也只能访问这个服务器才能够完成。1.1.3 电子邮件的工作过程1.电子邮件系统是一种新型的信息系统,是通信技术和计算机技术结合的产物。电子邮件的传输是通过电子邮件简单传输协议(Simple Mail Transfer Protocol,简称SMTP)这一系统软件来完成的,它是Internet下的一种电子邮件通信协议。 2.电子邮件的基本原

11、理,是在通信网上设立“电子信箱系统”,它实际上是一个计算机系统。 系统的硬件是一个高性能、大容量的计算机。硬盘作为信箱的存储介质,在硬盘上为用户分一定的存储空间作为用户的“信箱”,每位用户都有属于自己的个电子信箱。并确定个用户名和用户可以自己随意修改的口令。存储空间包含存放所收信件、编辑信件以及信件存档三部分空间,用户使用口令开启自己的信箱,并进行发信、读信、编辑、转发、存档等各种操作。系统功能主要由软件实现。 3.电子邮件的通信是在信箱之间进行的。 用户首先开启自己的信箱,然后通过键入命令的方式将需要发送的邮件发到对方的信箱中。邮件在信箱之间进行传递和交换,也可以与另个邮件系统进行传递和交换

12、。收方在取信时,使用特定帐号从信箱提取。 电子邮件的工作过程遵循客户-服务器模式。每份电子邮件的发送都要涉及到发送方与接收方,发送方式构成客户端,而接收方构成服务器,服务器含有众多用户的电子信箱。发送方通过邮件客户程序,将编辑好的电子邮件向邮局服务器(SMTP服务器)发送。邮局服务器识别接收者的地址,并向管理该地址的邮件服务器发送消息。邮件服务器识将消息存放在接收者的电子信箱内,并告知接收者有新邮件到来。接收者通过邮件客户程序连接到服务器后,就会看到服务器的通知,进而打开自己的电子信箱来查收邮件。 通常Internet上的个人用户不能直接接收电子邮件,而是通过申请ISP主机的一个电子信箱,由I

13、SP主机负责电子邮件的接收。一旦有用户的电子邮件到来,ISP主机就将邮件移到用户的电子信箱内,并通知用户有新邮件。因此,当发送一条电子邮件给一另一个客户时,电子邮件首先从用户计算机发送到ISP主机,再到Internet,再到收件人的ISP主机,最后到收件人的个人计算机。 ISP主机起着“邮局”的作用,管理着众多用户的电子信箱。每个用户的电子信箱实际上就是用户所申请的帐号名。每个用户的电子邮件信箱都要占用ISP主机一定容量的硬盘空间,由于这一空间是有限的,因此用户要定期查收和阅读电子信箱中的邮件,以便腾出空间来接收新的邮件。1.2 研究背景和研究内容1.2.1 研究背景最近几年来,基于Web的免

14、费Email系统非常流行。当前,几个著名的免费Email网站基本上已经成为大多数人的选择,单纯提供免费Email服务的站点不再像以前那样受到热烈欢迎,但是提供Web界面的Email服务已经成为了一个商业站点为其注册成员提供的基本服务之一。在我们的网络教育结算系统项目中,远程学院提供给学生的服务主要是通过Internet实现的,而邮件服务是Internet中最基本、最重要的功能之一,所以本系统给用户提供电子邮件服务。1.2.2 研究内容本文主要研究的是基于Qmail和vpopmail的邮件计费系统的实现1.功能实现上,要求建立一大容量的邮件系统,为网络用户提供邮件服务,同时把邮件用户的流量信息记

15、录到数据库中,为网络管理员提供灵活的基于邮件用户的流量计费的数据。并可根据数据库中的信息,对邮件用户进行管理,如添加用户、删除用户等。一个Email系统可以分为服务器端和客户端,Web界面的Email系统则是将Email客户放在了Web服务器端,因此Email系统所需要实现的是一个Web界面的Email客户。然而,由于这个Email系统要求用户数量较大,因此对于Email服务器也有特定的要求。完全重写一个Email服务软件,从成熟性、稳定性来看并不可取,所以本题目在现有的开放源代码基础上进行二次开发2.技术思路上,概括总的流程就是在Linux平台上对核心的编程采用标准C编码,在qmail开发源

16、代码的邮件系统的基础上,对qmail的日志处理进程进行修改,从而把日志信息写入mysql数据库。利用Web界面对qmail的管理界面,利用php脚本语言和HTML来实现。利用phpmyadmin软件对mysql数据库进行Web方式管理。总之利用qmail、vpopmail及mysql软件实现实现多个域的邮件系统。第二章 基于qmail和vpopmail的邮件计费的系统设计2.1 技术分析 一个Email系统可以分为服务器端和客户端,Web界面的Email系统则是将Email客户放在了Web服务器端,因此Email系统所需要实现的是一个Web界面的Email客户。然而,由于这个Email系统要求

17、用户数量较大,因此对于Email服务器也有特定的要求。完全重写一个Email服务软件,从成熟性、稳定性来看并不可取,所以我们决定在现有的开放源代码基础上进行二次开发。2.1.1 操作系统和用户数据库 由于提供大容量Email系统对操作系统和数据库的要求非常高,因此,选择合适的操作系统和数据库就是最基本的问题。由于提供web和email服务要求稳定性和性能特别高,因此一般都使用unix作为服务器的操作系统,例如hotmail使用freebsd和solaris,国内163等站点也是采用bsd系列。然而,unix的标准email系统也不合适用于这种大容量服务。有的unix系统,例如当前版本的linu

18、x,其用户标识只有16位,因此用户数量最多只能有64k,即使unix系统本身支持32位的用户标识,考虑到性能因素,单台服务器支持的用户数量也不要超过10万。为了具有支持更多用户的可扩展性,一般采用多台服务器同时提供服务,虽然此时仍然可以使用标准unix用户作为email用户,但考虑到安全性、性能以及可管理性,一般采用非unix系统用户来作为email用户。而保存用户数据通常采用支持网络访问的数据库形式,一般常用的有ldap、标准数据库、以及email系统自己实现的用户数据库。其中,ldap由于是提供目录服务的标准,因此应该为最佳的选择,其常用的开放源代码实现为openldap;而标准数据库由于

19、实现方便、可扩展性强,其中在internet上最常用的为mysql。2.1.2 邮件服务器软件采用什么样的Email服务器软件也将最终影响系统的性能,自己做一套Email服务器可能会得不偿失,现在有两个选择:sendmail和Qmail。标准的Email软件,例如sendmail,虽然也提供了一些包括aliases等方法,来支持非Unix系统用户,但是这些能力对于实现这种Email系统是不够的。为了支持这些Email用户,必须使用自己的Email服务器软件。但是由于现有的Email软件都相当成熟,而且也都是开放源代码的软件,所以惯常的做法都是修改原有的Email软件,如sendmail、qma

20、il等,使其支持特定的Email用户。不管从性能上还是安全性上考虑,sendmail并不是理想的选择。2.1.3 邮件的保存 传统Unix使用一个单一目录来保存所有用户的邮件,在用户数量较多时就极大地降低了文件系统的性能。只有使用多级目录,每个目录下的文件数量有限,才能降低打开文件时的系统消耗,或者不再使用简单的文件来保存邮件,而采用某一种封装形式。完全采取数据库形式来保存邮件,由于用户邮件操作多为文件操作,且大小变化较大,因此会造成性能和存储空间上较大的浪费。当使用NFS共享存储空间的时候,由于NFS缺乏文件锁定机制,在使用传统的用户邮件存储格式mailbox时,由于所有的邮件都保存在同一个

21、文件中,因此进行邮件操作就必须加锁,以保证没有访问冲突,这就使得它不适合NFS存储方式。为了解决这个问题,qmail提出了Maildir存储方式,每个邮件作为单独的一个文件保存在用户个人的邮件目录下,就避免了加锁。因此,我们采用Maildir方式来保存用户的邮件。2.1.4 虚拟域的邮件用户考虑到安全性、性能以及可管理性,采用非Linux系统用户来作为email用户。我们采用vpopmail实现虚拟域的用户管理。Qmail对于邮件域有local和virtual的概念。local域是实现匹配/etc/passwd账号;而虚拟域则匹配于罗列在qmail的控制文件virtualdomains的各个域

22、。Vpopmail则利用qmail的users/assign和virtualdomains文件。users/assign文件被编译为users/cdb的形式,它是一个哈希数据库来加快查找速度。若任意一个模式得到匹配,则qmail使用文件中定义的uid和gid传送该邮件到文件中定义的目录。Vpopmail利用该方法来实现使qmail以单一的vpopmail/vchkpw身份来传输所有的虚拟域的邮件,从而实现将邮件传输到vpopmail/domains/目录下的不同用户。2.2 linux和qmail的特点本次毕设我是采用linux的ubuntu为操作系统,Linux自从诞生以来,在网络世界兴起了

23、一场革命,至此这场革命依旧方兴未艾。Linux的特点有以下几个方面:1 自由软件。Linux所有源代码均可自由下载,并允许用户自由修改源代码。2 相对于现有的OS在功能上毫不逊色。Linux是UNIX在PC机上的完整实现。在性能和安全方面尤其出色;而与SUN公司的Solaris相比提供了更简单易用的管理界面和更完备的开发环境。3 和众多的系统兼容。无论是NT的domain,还是Novell的NDS,Linux都能提供良好的互操作性。4 便于开发。源代码公开给二次开发提供了良好的基础,同时Linux也拥有代理的开发工具和平台。 在介绍qmail的特点之前,先介绍下什么是qmail. qmail是

24、一个因特网邮件传送代理(简写为MTA),它运行在linux/Unix兼容系统下,是一个直接代替UNIX下Sendmail软件的邮件传送程序。qmail使用SMTP协议与其它系统上的MTA交换邮件。 作为Linux下面主流的邮件系统内核,大量著名的商业邮件系统都是在Qmail内核下开发,比如Hotmail等。Qmail具有安装方便、安全性高、邮件结构合理、支持SMTP服务、队列管理、邮件反弹、基于域名的邮件路由、SMTP传输、转发和邮件列表、本地(邮件)传送、POP3 服务等强大的功能。它已经逐渐替代传统的Sendmail成为linux下邮件系统内核的主流选择。Qmail具有以下特点:1 功能:

25、能够结合以前的mail系统如sendmail的长处,系统设计规范,模块化程度高。它支持多种和Email相关的国际标准,如SMTP、ESMTP、POP3等,与现有的其它Email系统互操作性良好。Qmail在设计时依据和Email系统有关的国际标准,采用了分层的模块化的设计思路。整个系统是一个树形的结构,由核心子系统、本地传送验证子系统、信件转发子系统、信件队列管理子系统和用户管理子系统等组成。其核心结构如图2.1:图2.1 qmail的核心进程结构2 性能:以前的mail系统都是单邮件提交队列,因此存在单点故障问题。如果有意外情况发生,容易造成堵塞,产生邮件的排队,形成功能瓶颈,导致邮路不畅。

26、Qmail允许多个并行的递交队列,在缺省情况下是有20个提交队列,并且可以为每个队列制定不同的处理策略,在多CPU的情况下,虚拟提高更为显著。3 安全:Sendmail所诞生的时代是个网络的黄金时代,对网络安全问题考虑较少。Qmail从设计的一开始就把安全问题放在显著位置考虑。模块化的设计使安全机制可以方便地加入和更新。支持ESMTP,在发信时也需要进行身份认证。4 易管理和可维护性:配置文件与模块相对应,结构连贯,利于管理。2.3 系统模块设计系统共分为三层:客户端、服务器、数据库。客户端可采用outlook、foxmail或Web浏览器,中间层为服务器层,需要DNS服务器、Web服务器、q

27、mail服务器,这些服务器软件可由一台服务器硬件完成,随着用户的扩展,可把这些服务分布到网络上不同的服务器硬件上。数据库采用mysql数据库。如图2.2所示:图2.2 邮件服务系统总体结构2.3.1 用户接受邮件服务流程 用户通过网上邮件注册、开通邮件服务后可以进行收发邮件功能,并且包括身份认证功能,以下便是用户接受邮件服务流程,如图2.3所示:图2.3 用户接受邮件服务流程2.3.2 邮件处理过程当接受到一个信件后,由QMail-lspawn控制邮件投递机制;它首先察看QMail-users机制(QMail-users是一个给用户指派-assign-地址的系统),若收信人地址没有定义在ass

28、ign文件中,则激活QMail-getpw程序,然后调用QMail-local来实现本地邮件投递。QMail-local首先试着投递邮件到localparthost的地址,其中localpart为本地用户名。若没有找到,则进一步察看/var/QMail/alias中定义的别名,若存在对应的别名则投递邮件到别名对应的用户目录下,否则退回邮件。若按照QMail-users机制在assign中找到对应于邮件目的地址的规则,则从users/assign得到相关信息,然后进行标准的.QMail文件操作。一般来说,.QMail-文件被用来完成邮件转发、别名或调用其他程序如ezmlm等进行处理。若没有找到匹

29、配,则QMail-local查找.QMail-default文件,这是QMail-local邮件投递机制中最后一步。 VPOPmail利用该文件来调激活vdelivermail 程序,该程序以两个参数被调用,第一个当前没有作用,主要是用作向后兼容的;第二个参数是用来在一个虚拟域用户没有被找到时的缺省投递,一般来说,缺省投递可以是将邮件投递到某个目录或某个邮件地址或返回无此用户的返回信件。2.3.3 为Qmail增加smtp用户认证功能QMail系统安装完成后,其smtp是允许任何人匿名发送邮件的。但是,这一点经常会被恶意的垃圾邮件发送者利用。因此,为了避免这种问题发生,我们为qmail安装并配

30、置smtp发信密码认证功能。这里先介绍下什么事smtp认证功能,首先smtp协议SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,是一种提供可靠且有效电子邮件传输的协议。SMTP是建立在FTP文件传输服务上的一种邮件服务,主要用于传输系统之间的邮件信息并提供与来信有关的通知。SMTP目前已是事实上的在Internet传输E-Mai的标准,是一个相对简单的基于文本的协议。在其之上指定了一条消息的一个或多个接收者(在大多数情况下被确定是存在的),然后消息文本就传输了。可以很简单地通过Telnet程序来测试一个SMTP服务器,SMTP使用TCP端口25。要为一

31、个给定的域名决定一个SMTP服务器,需要使用MX(Mail eXchange)DNS。smtp下的relay规则也可以理解成转发规则。当用户使用telnet到某一个端口25(smtp端口),或者使用类似outlook这样的MUA(用户投递代理)发送邮件时,服务器都会在后端判断是否允许转发(发送)这份邮件,判断的依据是接收方的域名是否在允许之内。在Qmail中,有一个名为rcpthosts(该文件名源于RCPT TO命令)的配置文件,其决定了是否接受一个邮件。只有当一个RCPT TO命令中的接收者地址的域名存在于rcpthosts文件中时,才接受该邮件,否则就拒绝该邮件。若该文件不存在,则所有的

32、邮件将被接受。当一个邮件服务器不管邮件接收者和邮件接收者是谁,而是对所有邮件进行转发(relay),则该邮件服务器就被称为开放转发(open relay)的。当qmail服务器没有rcpthosts时,其是开放转发的。设置自己服务器为非open relay的最简单的办法就是将邮件服务器的所有域名(若DNS的MX记录指向该机器,也应该包括该域名。)都存入rcphosts中。但是要想实现smtp用户漫游功能,也就是任何网络的合法用户都能发信,仅使用rcphosts就很难操作了,因为不可能每一个用户连接进来就修改一次rcphosts,使之包括发信人域名和ip,再重起qmail。显然,这种方法很不现实

33、。qmail-smtpd支持一种有选择性的忽略rcpthosts文件的方法:若qmail-smtpd的环境变量RELAYCLIENT被设置,则rcpthost文件将被忽略,relay将被允许。但是如何识别一个邮件发送者是否是自己的客户呢?qmail并没有采用密码认证的方法,而是判断发送邮件者的源IP地址,若该IP地址属于本地网络,则认为该发送者为自己的客户。 如果要实现SMTP认证后的relay ,不需要对任何IP进行预先设定,所以默认规则设置成只对本服务器relay。tcpserver的配置文件是/etc/tcp.smtp,该文件定义了是否对某个网络设置RELAYCLIENT环境变量。例如,

34、本地网络是地址为192.168.10.0/24的C类地址,则tcp.smtp的内容应该设置如下:127.0.0.1:allow,RELAYCLIENT=192.168.10.:allow,RELAYCLIENT=:allow这几个规则的含义是指若连接来自127.0.0.1和192.168.10则允许,并且为其设置环境变量RELAYCLIENT,否则允许其他连接,但是不设置RELAYCLIENT环境变量。如果只需要对本机relay,第二行可以不要。这样当从其他地方到本地的某一个前面设置的端口25连接将会被允许,但是由于没有被设置环境变量,所以其连接将会被qmail-smptd所拒绝。我们可使用c

35、heckpassword或者vchkpw软件包来解决用户发信的验证问题,而密码验证程序原来只使用于pop3进程,分别由root或vpopmail执行,为的是读shadow或数据库中的密码,并取出用户的邮件目录。这些操作qmaild 都没有权限去做。如果smtp进程要调用密码验证程序,则必须要使用 setuid 和setgid 。这两个密码验证程序都是带源代码的,本身非常安全,只需要放在安全的目录里就可以了。2.3.4 使用虚拟邮件域构建邮件服务个人电脑拥有强大的功能,单独的一台能够轻易地完成几台服务器的任务,随着internet和邮件系统的成功,我们不得不管理越来越多的邮件域 虚拟邮件域的基本

36、原理是一种在同一个服务器上管理 单独的用户列表的方法,每个虚拟域有他自己的密码文档,自己的缓冲目录和用户化名文档 ,对每个虚拟邮件域,linuxconf 将建立: /etc /vmail /passwd.virtual_domain /etc /vmail /shadow.virtual_domain /etc /vmail /aliases.virtual_domain /var /spool /vmail / virtual_domain /vhome /virtual_domain / 这里,virtual_domain是域名,本次毕设我创建的域名是wyz Qmail对于邮件域有loca

37、l和virtual的概念。local域是实现匹配/etc/passwd账号;而虚拟域则匹配于罗列在qmail的控制文件virtualdomains的各个域。Vpopmail则利用qmail的users/assign和virtualdomains文件。Vpopmail利用该方法来实现使qmail以单一的vpopmail/vchkpw身份来传输所有的虚拟域的邮件,从而实现将邮件传输到vpopmail/domains/目录下的不同用户。2.3.5 数据库设计数据库的设计主要是2个库,一个qmail库,一个vpopmail库,其中分别都有其向对应的日志,及qmaillog表和dir_control表,

38、以及延伸到Lastauth表,Relay表,Vlog表等,下面有图示可以更清晰直观的了解。如图2.4:2.4 数据库的设计第三章 系统实现本章是本次毕设的中心环节,着重介绍了系统的实现过程,包括系统环境的配置、邮件服务器系统的实现、数据库服务器系统的实现等。3.1 软硬件环境本次毕设操作系统采用的是linux的ubuntu版本而服务器则主要分为三个服务器,其中E-mail服务器软件采用的Qmail软件的改进,qmail1.03版本。Web服务器软件Apache,DNS服务器软件bind9。3.2 DNS服务器的配置 域名服务(Domain Name Service,简称DNS)是一个系统1,它

39、负责主机名到IP地址的映射和逆映射。DNS软件一般是用Berkeley的Internet命名域(BIND)来实现,本次毕设采用的是ubuntu操作系统下的bind9.DNS服务器分为三类:l 主DNS服务器(master或primary)l 从DNS服务器(slave或secondary)l 缓冲DNS服务器(caching)而本次我是在学校系楼的实验室内完成的,所以我便利用已有的校园网,只需运行一个子域的主DNS服务器。名字服务器其实是数据库服务器,但其所有文件均以字符文本格式组成并且是可读、可编辑的,记录类型分为: SOA-列出域所拥有的主要权限。 NS-给出域所拥有的名字服务器。 A-给

40、出名字到地址的映射。 PTR给出地址到名字的映射,通常称为逆映射或逆命名。 MX-邮件交换程序。 Others其它一些记录类型。与DNS有关的文件主要有:l /etc/named.conf:是named进程启动时读入的文件,指向进一步的名字服务信息,包含指向所有名字服务文件所处目录的指针。l /var/named/named.ca:l /var/named/named.local:本地名字服务器配置文件。l /var/named/named.hosts:网络中主机的名字到地址的转换信息。l /var/named/named.rev:反向解析。以下便是我配置的主DNS服务器的基本过程,此过程是本

41、次毕设中我遇到的第一个难点,配置成功后加深了我对DNS服务的了解。3.2.1 ubuntu下的网络配置第一步确保自己所在校园网是通畅的Ping 10.3.4.1Ping 10.3.4.178第二步修改ip地址3Sudo gedit /etc/network/interfacesSudo /etc/init.d/networking restart (每次更改ip需要restart)第三步修改dns服务,先尝试下看看能不能在linux下登入校园网,所以需要修改resolv.conf文件,配置首选dns服务器的地址。Sudo gedit /etc/resolv.confSudo /etc/init

42、.d/networking restart我选定的本机ip是10.3.4.177,这时ping 10.3.4.177发现通畅,如果感兴趣,可以利用bras登入外网,以下是我的操作过程。ping localhostsudo /home/wyz/下载/brasubuntuv2/installbrascd /home/wyz/下载/brasubuntuv2sudo ./installbrassudo apt-get install nautilus-open-terminalsudo gedit /etc/apt/sources.listsudo rm /var/lib/apt/lists/lock

43、sudo apt-get updatesudo apt-get install nautilus-gksusudo apt-get install g+sudo apt-get install openssh-serversudo /etc/init.d/ssh restartnetstat -tlpsudo gedit /usr/sbin/brasb (输入bras用户,口令即可登录)3.2.2 ubuntu下DNS服务器的配置接下来的步骤便是配置一个域名,将来作为邮件服务器的域名,由于是架构在校园网内,所以只需要配置一个主dns服务器。整个过程最大的难点在于理解,作为一个邮件的服务器端,必

44、须有自己的域名,然后其他校园网内的机器,可以通过自己设置的域名解析出对方的机器,这样的话,将来在邮件发送中,才能识别出来其他机器,才能实现邮件发送的过程,以下是配置这个过程的操作。5第一步,要安装bind服务器软件。Ubuntu下用的是bind9sudo apt-get install bind9第二步,安装成功后,修改named.conf文件vi /etc/bind/named.conf.localnamed.conf.local的内容修改如下/ Do any local configuration here/ Consider adding the 1918 zones here, if

45、they are not used in your/ organization/include /etc/bind/zones.rfc1918;/reversezone 4.3.10.in-addr.arpatype master;file /etc/bind/db.10.3.4;/normalzone wyz type master;file /etc/bind/db.wyz ;其中/reverse是反向解析,域名倒置/normal是正向解析,并且建立域名名字,本次毕设我建立的域名是wyz .第三步named.conf.default-zones中,看下本机默认的ip设置vi named.c

46、onf.default-zones其中named.conf.default-zones中的内容为/ prime the server with knowledge of the root serverszone . type hint; file /etc/bind/db.root;/ be authoritative for the localhost forward and reverse zones, and for/ broadcast zones as per RFC 1912zone localhost type master; file /etc/bind/db.local;zo

47、ne 127.in-addr.arpa type master; file /etc/bind/db.127;zone 0.in-addr.arpa type master; file /etc/bind/db.0;由此可以得,我用来本机作为主DNS服务器,则需要在resolv.conf文件中DNS服务器设为本机ip ,127.0.0.1第四步便是配置正向和反向解析的具体内容。vi db.10.3.4 (配置反向域名解析)其中 db.10.3.4的内容添加为以下$TTL 604800 IN SOA ubuntu.wyz . root.ubuntu.wyz . (1 ; Serial604800

48、 ; Refresh86400 ; Retry2419200 ; Expire604800 ) ; Negative Cache TTL; IN NS ubuntu.wyz .177 IN PTR ubuntu.wyz .178 IN PTR wuzheng.wyz .设置本机主机名为unbuntu,则本机在wyz 的这个域内的完整域名为unbuntu.wyz ,而177 IN PTR ubuntu.wyz 这句命令则表示了10.3.4.177和unbuntu.wyz 想对应解析,为了能够更好的体现dns服务器的功能,我特意用了实验室内另外一台电脑来证实,同理,另外一台电脑的ip为10.3.4

49、.178,在db.10.3.4.内注释对应的域名为wuzheng.wyz .这样,反向解析配置成功。第五步配置正向域名解析vi db.wyz (正向域名解析)db.wyz 的内容添加如下$TTL 604800 IN SOA ubuntu.wyz . root.ubuntu.wyz . (1 ; Serial604800 ; Refresh86400 ; Retry2419200 ; Expire604800 ) ; Negative Cache TTL; IN NS ubuntu.wyz .ubuntu IN A 10.3.4.177wuzheng IN A 10.3.4.178需要注意的是最

50、后的ubuntu IN A 10.3.4.177, wuzheng IN A 10.3.4.178都必须与反向解析一致,这样便成功配置了一个小型的dns服务器系统,如果需要更庞大的用户群,必须都在正反向域名解析中添加清楚,一遍dns服务器工作时能够正确的解析出ip。最后,配置完成后需要重启bind9sudo /etc/init.d/bind9 restart可以用nslook命令查看是否成功配置。此时ping一下ubuntu.wyz 或者wuzheng.wyz 都会对应出10.3.4.177或者10.3.4.178,说明dns服务器配置成功。3.3 邮件服务器系统的实现邮件服务器系统的实现是本

51、次毕设遇到的第二个难点,安装配置起来很主要是将qmail里各个软件包安装完全,因为不同的软件包有其各自的作用,具体操作步骤在下面会详细介绍。基本邮件服务采用qmail,qmail的几个核心进程对邮件的收发进行监听,在系统安装中,我们采用splogger作为日志监控程序,但splogger本身没有访问数据库功能,所以我们对此程序进行了改进。其改进如下:每邮递一次邮件,就记下邮件的发送者、接受者、id、消息发送时间、字节大小、传递次数、是否成功等信息,并把这些信息存入mysql数据库的qmaillog表中。对于邮件用户的管理,我们主要采用基于vpopmail的虚拟域用户管理,并把用户的目录信息、认

52、证信息、转发信息、日志信息、及管理员的信息存入vpopmail库中。主要的软件包有:qmail-1.03 qmail基本系统ucspi-tcp-0.88 tcpsever服务程序daemontools-0.80 监视工具checkpassword-0.81 pop3验证用户的程序ezmlm-0.53 邮件转发vpopmail-4.9.6-1 虚拟域用户pop3支持qmailadmin-0.35 虚拟域web管理autorespond-1.0.0 自动回复程序sqwebmail-1.2.0 webmailvqsignup-0.4 web方式用户注册3.3.1 ubuntu下qmail的下载安装及

53、配置1. 首先,下载qmail-1.03Wget :/cr,yp.to/software/qmail-1.03tar.gz运行后Resolving cr.yp.to. 131.193.36.21Connecting to cr.yp.to|131.193.36.21|:80. connected. request sent, awaiting response. 200 OKLength: 220668 (215K) application/x-gzipSaving to: qmail-1.03.tar.gz2. 查看glibc版本号cd qmail-1.03dpkg -l|grep libc

54、6版本大于2.31必须下载补丁wget :/djbware.csi.hu/patches/qmail-1.03.errno.patch安装补丁patch -p0 qmail-1.03.errno.patch3下载0.0.0.0补丁并安装wget :/suspectclass /sgifford/qmail/qmail-0.0.0.0.patch安装补丁patch -p0 qmail-0.0.0.0.patch4SMTP认证补丁下载SMTP认证补丁wget :/members.elysium.pl/brush/qmail-smtpd-auth/dist/qmail-smtpd-auth-0.31

55、.tar.gz解压缩SMTP认证补丁sudo tar -xf qmail-smtpd-auth-0.31.tar.gzcd qmail-smtpd-auth-0.31sudo cp base64.h base64.c auth.patch ./qmail-1.03/(将补丁拷入目标路径)sudo patch auth.patch出现下列结果patching file Makefilepatching file TARGETSpatching file qmail-smtpd.8patching file qmail-smtpd.c说明SMTP认证补丁安装成功5 qmail-queue队列补丁下

56、载qmail-aueue队列补丁sudo wget :/ qmail.org/qmailqueue-patch安装补丁sudo patch -p1 ./qmailqueue-patch6 建立qmail安装目录sudo mkdir /var/qmail7进入源代码目录,增加用户,进行安装并配置域名cd /opt/qmail-1.03(进入目录)ls -l|grep *.ids(显示*.ids文件,目的是为了找到install.ids文件)sudo nano INSTALL.ids可以看到 linux系统的如下:Heres how to set up the qmail groups and t

57、he qmail users.On some systems there are commands that make this easy. Solaris andLinux: # groupadd nofiles # useradd -g nofiles -d /var/qmail/alias alias # useradd -g nofiles -d /var/qmail qmaild # useradd -g nofiles -d /var/qmail qmaill # useradd -g nofiles -d /var/qmail qmailp # groupadd qmail #

58、useradd -g qmail -d /var/qmail qmailq # useradd -g qmail -d /var/qmail qmailr # useradd -g qmail -d /var/qmail qmails输入以下命令sudo groupadd nofilessudo useradd -g nofiles -d /var/qmail/alias aliassudo useradd -g nofiles -d /var/qmail qmaildsudo useradd -g nofiles -d /var/qmail qmaillsudo useradd -g nof

59、iles -d /var/qmail qmailpsudo groupadd qmailsudo useradd -g qmail -d /var/qmail qmailqsudo useradd -g qmail -d /var/qmail qmailrsudo useradd -g qmail -d /var/qmail qmails配置域名服务器名,本毕设服务器主机名为ubuntu.wyz sudo ./config-fast ubuntu.wyz 显示如下,配置成功Your fully qualified host name is ubuntu.wyz .Putting ubuntu.

60、wyz into control/me.Putting wyz into control/defaultdomain.Putting wyz into control/plusdomain.Putting ubuntu.wyz into control/locals.Putting ubuntu.wyz into control/rcpthosts.Now qmail will refuse to accept SMTP messages except to ubuntu.wyz .Make sure to change rcpthosts if you add hosts to locals

61、 or virtualdomains!8. 安装认证程序和下载认证errno补丁注意当前目录必须在/usr下的一个子目录,我建立的是一个tmp目录。因为认识程序的安装路径是./bincd /usrsudo mkdir tmpcd tmp下载sudo wget :/cr.yp.to/checkpwd/checkpassword-0.90.tar.gzsudo wget :/djbware.csi.hu/patches/checkpassword-0.90.errno.patch解压安装sudo tar xvfz checkpassword-0.90.tar.gz安装补丁cd checkpassword-0.90sudo patch -p1 ./checkpassword-0.90.errno.patch编译 sudo make安装 sudo make setup checksudo chmod 4755 /bin/checkpassword安装QMAIL守护程序daemontoolssudo wget

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!