第8章 Sendmail服务器.ppt_第1页
第8章 Sendmail服务器.ppt_第2页
第8章 Sendmail服务器.ppt_第3页
第8章 Sendmail服务器.ppt_第4页
第8章 Sendmail服务器.ppt_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第8章 sendmail服务器,8.1 sendmail服务器简介 8.2 sendmail服务器的安装和启动 8.3 sendmail服务器配置 习题,8.1 sendmail服务器简介,在互联网上最常见的应用之一就是电子邮件,很多企业用户也经常使用免费电子邮件系统。以step by step的方式引导用户从sendmail源代码开始构建一个可以满足基本工作需要的邮件系统。配置sendmail是一件大而复杂的工作,但也不完全都是这样,与其他一些网络服务器系统只安装smtp服务器软件的情况相比,linux已经配置好了多数的设置。,sendmail是最重要的邮件传输代理程序。理解电子邮件的工作模式是非常重要的。一般情况下,我们把电子邮件程序分解成用户代理(mua)、传输代理(mta)和投递代理(mda)。用户代理用来接受用户的指令,将用户的信件传送至信件传输代理,如:outlook express、foxmail等。而投递代理则从信件传输代理取得信件传送至最终用户的邮箱,如procmail。,当用户试图发送一封电子邮件的时候,他并不能直接将邮件发送到对方的机器上,用户代理必须试图去寻找一个邮件传输代理,把邮件提交给它。邮件传输代理得到了邮件后,首先将它保存在自身的缓冲队列中,然后,根据邮件的目标地址,邮件传输代理程序将找到应该对这个目标地址负责的邮件传输代理服务器, 并且通过网络将邮件传送给它。对方的服务器接收到邮件之后,将其缓冲存储在本地,直到电子邮件的接收者查看自己的电子信箱。如图8.1所示。,图8.1 邮件传输过程,图8.2 邮件接收过程,当sendmail程序得到一封待发送的邮件的时候,它需要根据目标地址确定将信件投递给对应的服务器,这是通过dns服务实现的。例如一封邮件的目标地址是,那么sendmail首先确定这个地址是用户名(lth)+机器名()的格式,然后,通过查询dns来确定需要把信件投递给某个服务器。,8.2 sendmail服务器的安装和启动,8.2.1 安装sendmail 如果是完全安装red hat linux 9,那么系统已经内置有sendmail 8.12.8-4服务器。如果不能确定是否已经安装sendmail,可以在终端命令窗口输入如下命令: # rpm -qa | grep sendmail 如果结果显示为“sendmail-8.12.8-4”,则说明系统已经安装sendmail服务器。如果安装red hat linux 9时没有选择sendmail服务器,可以有两种方法来安装:rpm安装和图形模式下安装。,1rpm安装 如果在命令行界面下,可以直接插入red hat linux第1张安装光盘,然后定位到/redhat/rpms下的sendmail-8.12.8-4.i386.rpm安装包,有关命令及操作如下: # mount /dev/cdrom /mnt/cdrom /加载光驱 # cd /mnt/cdrom/redhat/rpms /进入光盘的redhat/rpms目录 # rpm -ivh sendmail-8.12.8-4.i386.rpm /安装所需要的rpm包 # rpm sendmail-cf.8.12.8-4.i386.rpm (位于第三张安装盘) # rpm sendmail-doc. 8.12.8-4.i386.rpm (位于第三张安装盘) # cd;eject /弹出光盘,2图形模式安装 在图形环境下单击“主菜单”“系统设置”“添加删除应用程序”菜单项,在打开的“软件包管理”对话框中确保选中“邮件服务器”选项,然后单击“更新”按钮,按照屏幕提示插入安装光盘即可开始安装。如图8.3所示。,图8.3 添加或删除软件包,8.2.2 启动/重新启动/停止sendmail服务 # service sendmail start /启动服务器 # pstree | grep sendmail /验证是否启动 # service sendmail restart /重新启动服务器 # service sendmail stop /关闭服务 # service sendmail status /查看运行状态,除以上方式,我们还可以使用带参数的sendmail命令控制邮件服务器的运行,例如 # sendmail b-d -q1h sendmail的命令参数的含义如下: -b:指定sendmail在后台运行,并且监听端口25的请求。 -d:指定sendmail以daemon方式运行(守护进程)。 -q:当sendmail无法将邮件成功地发送到目的地时,它会将邮件保存在队列里。该参数指定邮件在队列里保存的时间。例子里的1h表示保留1小时。,8.3 sendmail服务器配置,8.3.1 生成sendmail配置文件 sendmail的配置十分复杂。它的配置文件是sendmail.cf,位于/etc/mail目录下。由于sendmail.cf的语法深奥难懂,很少有人直接去修改该文件来配置sendmail服务器。所以一般通过m4宏处理程序来生成所需的sendmail.cf文件。创建的过程中需要一个模板文件,系统默认为/etc/mail/sendmail.mc。,根据简单、直观的sendmail.mc模板来生成sendmail.cf文件,从而无需直接编辑sendmail.cf文件。也可以直接通过修改sendmail.mc模板来达到定制sendmail.cf文件的目的。创建sendmail.cf文件的步骤如下: 1. 备份原有sendmail.cf文件 # cp /etc/mail/sendmail.cf /etc/mail/sendmail.cf.bak 2. 生成sendmail.cf文件 根据sendmail.mc模板产生sendmail.cf配置文件,导出到/etc/mail/目录下: # m4 /etc/mail/sendmail.mc /etc/mail/sendmail.cf,显然,用m4宏编译工具创建sendmail.cf文件比较方便,且不容易出错,更可以避免某些带有安全漏洞或者过时的宏所造成的破坏。一个sendmail.mc模板的大致内容如下: divert(-1)dnl include(/usr/share/sendmail-cf/m4/cf.m4)dnl /将文件/usr/ share/sendmail- cf/m4/cf.m4包含进来 versionid(setup for red hat linux)dnl /定义版本控制信息 ostype(linux)dnl /选择包含操作系统指定属性的文件 dnl # dnl define(smart_host,vider) dnl # define(confdef_user_id, “8:12“)dnl /指定sendmail使用的用户 id为 8,组id为12 define(conftrusted_user, smmsp)dnl /指定用户smmsp为可信任 用户,它可以控制sendmail 中的守护进程并拥有sendmail所创建的文件 define(confauto_rebuild)dnl,sendmail.mc模板的语法组成: dnl:用来注释各项,同时dnl命令还用来标识一个命令的结束。 divert(-1):位于mc模板文件的顶部,目的是让m4程序输出时更加精简一些。ostype(operationsystemtype):定义使用的操作系统类型,显然这里应该用linux代替operationsystemtype,注意要用一个反引号和一个正引号把对应的操作系统类型括起来。,define:定义一些全局设置,对于linux系统,设置了ostype之后,可以定义下面的一些全局参数,如果不定义,就使用默认值。这里举两个简单例子: define(alias_file,/etc/aliases) /定义别名文件(alia file)的保存路径,默认是/etc/aliases 。 define(status_file,/etc/mail/statistics)/定义sendmail的状态信息文件。,8.3.2 熟悉sendmail的默认配置 被分割的两个sendmail守护进程使用不同的配置文件,用于实现传输代理(mta)的配置文件是sendmail.cf,用于实现邮件提交程序(msp)的配置文件是submit.cf。以下是这两个文件的简要说明。,1查看redhat linux 9 中的sendmail.mc的默认配置 # grep v dnl/etc/mail/sendmail.mc /显示/etc/mail/sendmail.mc,过滤掉以dnl开头的注释行 divert(-1)dnl /用于一段长篇注释的开始 include(/usr/share/sendmail-cf/m4/cf.m4)dnl /将文件/usr/share/ sendmail-cf/m4/cf.m4包含进来 define(confdef_user_id,“8:12“)dnl /指定sendmail使用的用户id为8,组id为12 define(confto_connect,lm)dnl /设置等待连接的最大时间为1分钟 define(conftry_null_mx_list,true)dnl /若mx记录指向本机,sendmail 直接连接到远程主机 define(alias_file,/etc/aliases)dnl /设置邮件别名文件的存放路径 define(uucp_mailer_max,2000000)dnl /设置基于uucp协议的mailer处理信息的最大限制为2m字节 define(confuserdb_spec,/etc/mail/userdb.db)dnl /设置用户数据库文件路径 define(confto_ident,0)dnl /设置ident查询响应的最大等待时间为0,即不等待 feature(blacklist_recipients)dnl /根据访问数据库的值过滤外来邮件 exposed_user(root)dnl /禁止伪装发送者地址中出现root用户 feature(accept_unresolvable_domains)dnl /设置可以接受不能由dns解析的主机所发送的邮件 local_domain(localhost.localdomain)dn /设置本地域,2查看redhat linux 9中submit.mc的默认配置 # grep vdnl /etc/mail/submit.mc |grep v# /显示/etc/mail/submit.mc 过滤掉以dnl和#开头的注释行 include(/usr/share/sendmail-cf/m4/cf/m4) /将配置内容导出到cf配置文件 define(conftime_zone,use_tz)dnl /设置系统时区 define(confpid_file, /var/run/sm-slient.pid)dnl /设置pid文件路径 feature(use_ct_file)dnl /装载可信任用户名单 feature(msp,)dnl /设置msp的ip地址,8.3.3 配置sendmail服务器 1设置邮件服务器的ip 修改/etc/sendmail.cf o daem onport to pations=smtp add= name=mta 改为 o daem onport to pations=smtp add= name=mta,2配置邮件大小 o maxmessage size=1000000 改为 o maxmessage size=1048576 (大约为1m),3. 限制接收邮件的域 1)修改/etc/mail/local-host-names 在文件中加入域: 。 2)允许在其他主机上发邮件,在/etc/mail/access 中加入 relay /设置邮件中继 执行 makemap hash access.db access /重新生成access.db文件 3)dns客户指向192.168.15网段的dns服务器,修改/etc/resolv.conf。 nameserver 11 /保证bind 和sendmail运行正常 4. 重启sendmail服务 # service sendmail restart,8.3.4 为新用户开电子邮件账号 在linux里为新用户开设电子邮件账户比较简单,只需在linux系统里新增一个用户即可。 # useradd lth /新建用户 # passwd lth /设置密码,假设添加了一个用户lth(密码为lth),这样该用户就有了一个邮件地址。当有一些用户想使用多个电子邮件地址,是不是需要创建多个邮件账号呢?我们可以使用别名(alias)来解决这个问题。比如说,用户lth想拥有3个电子邮件地址:、lthzk 、lthmail 。 可以通过以下步骤来实现这样的别名设置: 新增一个账号lth;然后用vi、或者kate等文本编辑器打开/etc/aliases,在里面加上两行: lthzk: lth lthmail: lth 保存该/etc/aliases退出。,不过,就这样还不能让sendmail接受新增的别名,我们必须在终端命令窗口运行newaliases命令,以要求sendmail重新读取/etc/aliases文件。如果一切无误,应该可以看到类似以下的回应消息: # newaliases /etc/aliases: 63 aliases, longest 10 bytes, 625 bytes total 这样,发给lth的邮件可以使用3个邮件地址,而lth只需要使用一个电子邮件账号lth 就可以接收所有寄给以上3个地址的电子邮件。,8.3.5 指定邮箱容量限制 当一个邮件服务器为许多人提供邮件服务时,无限量的电子邮件将很容易塞满服务器的硬盘,造成硬盘负担。如果不想为用户提供无限的邮件暂存空间,可以使用“邮件限额”来给用户一个有限的暂存空间。 其实,它是利用磁盘配额功能来实现的。电子邮件的暂存空间是在/var/spool/mail目录下,只要通过磁盘配额设定每一个用户在这个目录下能使用的最大空间即可。,8.3.6 支持pop和imap功能 到现在为止,我们已经可以用outlook express发送邮件,或者登录服务器使用mail、pine命令收取、管理邮件。但是还不能用outlook express等客户端从服务器下载邮件,这是因为sendmail并不具备pop3(imap)的功能,所以我们必须自己安装。,1pop和imap服务器安装 安装red hat linux 9时,可以选择安装pop和imap服务器,可以在终端命令窗口运行以下命令进行验证: # rpm -qa imap imap-2001a-18 /表示已经安装 如果没有安装,可以将第2张安装光盘放进光驱,然后在终端命令窗口运行以下命令即可开始安装: # cd /mnt/cdrom/redhat/rpms # rpm -ivh imap-2001a-18.i386.rpm 由于red hat linux 9已经将pop和imap打包成一个单独的套件,安装好imap-2001a-18.i386.rpm,就会同时安装这两个服务器。,2启动pop和imap服务 要成功启动pop和imap服务器,首先要确定这些服务存在于/etc/services文件目录下,确保以下的服务前面没有加上“#”注释(如果有,必须去除注释)。 imap 143/tcp imap2 # interim mail access proto v2 imap 143/udp imap2 pop2 109/tcp pop-2 postoffice # pop version 2 pop2 109/udp pop-2 pop3 110/tcp pop-3 # pop version 3 pop3 110/udp pop-3,修改好/etc/services文件,接下来就要对相应服务配置文件进行定制。 1)启动ipop2,将/etc/xinetd.d/ipop2文件中的disable =yes改为disable=no。 2)启动ipop3,将/etc/xinetd.d/ipop3文件中的disable =yes改为disable=no。 3)启动imap,将/etc/xinetd.d/imap文件中的disable =ye

温馨提示

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

评论

0/150

提交评论