Linux系列-Red Hat5平台下Sendmail邮件服务搭建

 
Linux 系列-Red Hat5平台下Sendmail邮件服务搭建
Sendmail 是具有较长历史并不断发展的邮件服务器软件,通过对Sendmail服务器的配置管理,可以实现基本的邮件发送功能;dovecot服务器实现了POP3协议,可以与Sendmail服务器配合工作,实现用户对邮件的收取功能。本次我们会看到Sendmaildovecot结合运用的实例。本次分三部分说,先来了解一下sendmail.
第一部分:sendmail的安装、控制启动及主要配置文件
一.   Sendmail安装
Sendmail 服务器在RHEL5系统中是默认安装的,完整的安装应包括四个软件包。如果没安装或是重新安装,可以使用rpm命令进行手动安装。如下:
1>.sendmail      // sendmail服务器程序的安装包,是最重要的软件包
2>.m4           // 包括了配置sendmail服务器的必要工具
3>.sendmail-cf    // 包括了重新配置sendmail服务器的必要配置文件
4>.sendmail-doc     // 包括了sendmail服务器的说明文档
注意:Sendmail服务程序在安装后并没有设置在系统启动时自动运行,所以我们还得使用chkconfig命令设置它在系统启动时自动启动
二.   Sendmail的控制启动
在启动sendmail服务器程序之前,需要先确保运行sendmail服务器的主机有完整的域名,在internet上能够解析到,并且有相应的邮件交换(MX)记录以及能够反向解析。
Sendmail 服务器使用名为sendmail的启动脚本进行程序的启动与停止,此脚本位于“/etc/init.d/”目录中。也可以使用service命令调用sendmail脚本执行sendmail服务器的启动和停止操作。
三.   Sendmail主要配置文件
1.   sendmail 服务器的配置目录
sendmail 服务器使用的所有配置文件都保存在目录“/etc/mail”中,该目录中保存了sendmail服务器运行所需要的配置文件以及库文件等多种类型的文件,如下:
[root@mail ~]# ls /etc/mail
access          helpfile          Makefile      submit.cf      virtusertable
access.db       local-host-names  sendmail.cf   submit.cf.bak  virtusertable.db
domaintable     mailertable       sendmail.mc   submit.mc
domaintable.db  mailertable.db    spamassassin  trusted-users
2.   配置文件sendmail.cfsendmail.mc
Sendmail 服务器的主配置文件是sendmail.cf。它比较复杂,所以通常我们不会直接去编辑它,而是编辑sendmail.mc文件然后使用m4命令由sendmail.mc文件生成sendmail.cf文件。
3.   数据库配置文件和数据库文件
数据库文件用于进行sendmail服务器的辅助配置。在“/etc/mail”目录中所有扩展名为“.db”的文件都是数据库文件,每个数据库文件在同一目录下都对应有同名的无扩展名文件,例如对于access.db文件,对应有名为access的文本文件,称为数据库配置文件。当我们在数据库配置文件中进行相应的设置后,需要使用makemap命令将数据库配置文件生成“.db”的数据库文件。
4.   日志文件
Sendmail 服务器的日志文件位于“/var/log”目录中,文件名为maillog,通过该文件可以了解到sendmail服务器的运行状态信息。
第二部分:sendmail的配置实例
上面我们大概对sendmail有了一个了解,现在我们来看看具体的做法,拓扑图就用下面这个够简单的吧。
 
1.   域名设置
邮件服务器的正常工作需要在DNS服务器中进行相应的设置,本实验我们DNSSendmail位于同一台服务器上,下面是DNS的设置:
[root@mail ~]# tail -10 /var/named/chroot/etc/named.conf
… …
zone "zpp.com" IN {
        type master;
        file "zpp.com.zone";
};
zone "1.168.192.in-addr.arpa" IN {    // 反向区域必须要有,否则会被当作垃圾邮件服务器
        type master;
        file "192.168.1.rev";
};
[root@mail ~]# cat /var/named/chroot/var/named/zpp.com.zone
$TTL    86400
@       IN      SOA     mail.zpp.com. admin.zpp.com.  (
                                      1997022700 ; Serial
                                      28800      ; Refresh
                                      14400      ; Retry
                                      3600000    ; Expire
                                      86400 )    ; Minimum
        IN      NS      mail.zpp.com.
mail    IN      A       192.168.1.1
@       IN      MX  5   mail.zpp.com.    // 设置MX记录之后才可以实现与其它邮件服务器通邮
[root@mail ~]# cat /var/named/chroot/var/named/192.168.1.rev
$TTL    86400
@       IN      SOA     mail.zpp.com. admin.zpp.com.  (
                                      1997022700 ; Serial
                                      28800      ; Refresh
                                      14400      ; Retry
                                      3600000    ; Expire
                                      86400 )    ; Minimum
        IN      NS      mail.zpp.com.
1       IN      PTR     mail.zpp.com.
[root@mail ~]#
2.   设置local-host-names文件
sendmail服务器的配置目录下,local-host-names文件用于设置邮件服务器提供邮件服务的域名。
[root@mail ~]# cat /etc/mail/local-host-names
# local-host-names - include all aliases for your machine here.
zpp.com
[root@mail ~]#
3.   开启sendmail服务器的网络接口
Sendmail 服务器出于安全考虑,默认只对lo网络接口(127.0.0.1)提供服务,为了使服务器能够为主机的所有网络接口(地址为0.0.0.0)提供服务,需要在sendmail.mc文件中进行配置的修改。
[root@mail ~]# vi /etc/mail/sendmail.mc
// 查找此行
DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl
// 改为
DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0, Name=MTA')dnl
说明:修改之后,sendmail服务器将监听主机所有网络接口的25端口
4.   sendmail 服务器的用户管理
1>. 设置SMTP的用户认证
为避免大量垃圾邮件产生,在sendmail服务器中需要设置发送邮件的用户认证,RHEL5系统中提供的Sendmail服务器提供了SMTP的用户认证功能,默认没有启用,因此需要在sendmail.mc文件中进行如下配置:
[root@mail ~]# vi /etc/mail/sendmail.mc
// 查找此行
dnl TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
dnl define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
// 改为
TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
说明:在sendmail.mc文件中,行首的dnl表示该行为注释行,是无效的,因此通过去除行首的dnl字符串可以开启相应的设置行。
sendmail服务器中,使用了sasl的第2版(sasl2)作为SMTP的认证方式,在“/usr/lib/sasl2/”目录中的sendmail.conf配置文件设置了使用saslauthd服务程序提供用户的认证服务
[root@mail ~]# cat /usr/lib/sasl2/Sendmail.conf
pwcheck_method:saslauthd
因此当sendmail服务器使用SMTP认证功能时,需要确保saslauthd服务程序正确运行。
[root@mail ~]# chkconfig --list saslauthd
saslauthd       0:off        1:off        2: off        3: off       4: off 5: off        6: off
[root@mail ~]# chkconfig --level 35 saslauthd on
[root@mail ~]# /etc/init.d/saslauthd start
Starting saslauthd:                                         [ OK ]
[root@mail ~]#
2>. 建立用户帐号
[root@mail ~]# groupadd group-zpp
[root@mail ~]# adduser -g group-zpp -s /sbin/nologin zpp001
[root@mail ~]# adduser -g group-zpp -s /sbin/nologin zpp002
[root@mail ~]# passwd zpp001
Changing password for user zpp001.
New UNIX password:
BAD PASSWORD: it is too simplistic/systematic
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
[root@mail ~]# passwd zpp002
Changing password for user zpp002.
New UNIX password:
BAD PASSWORD: it is too simplistic/systematic
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
[root@mail ~]#
说明:建立邮件用户组是为了便于邮件用户的管理。使用“-s”选项指定用户的shell为“/sbin/nologin,即不允许用户登录Linux系统,从而起到安全的作用。
3>. 设置邮件别名和邮件群发功能
sendmail服务器中使用aliases机制实现邮件别名和邮件群发功能,在“/etc”目录下存在名为aliasesaliases.db的两个文件,在对“/etc/aliases”文件的内容进行修改后,需要执行newaliases命令,使aliases文件中的内容重新生成aliases.db文件。
[root@mail ~]# tail -10 /etc/aliases
sales:          postmaster
support:        postmaster
# trap decode to catch security attacks
decode:         root
# Person who should get root's mail
#root:          marc
zoupanpan:      zpp001,zpp002
[root@mail ~]#newaliases
/etc/aliases: 78 aliases, longest 13 bytes, 787 bytes total
说明:此处我们创建包含用户zpp001,zpp002的别名zoupanpan,稍后验证时,以此实现群发。
5.   访问控制的设置
Sendmail 服务器中使用access.db数据库进行基于主机地址的访问控制
[root@mail ~]# cat /etc/mail/access
Connect:localhost.localdomain           RELAY
Connect:localhost                       RELAY
Connect:127.0.0.1                       RELAY
说明:此处我们保持默认设置即可,以此让sendmail服务器所在主机中的用户任意发送邮件,而
不需要身份验证。
6.   生成sendmail.cf文件
[root@mail ~]# cd /etc/mail
[root@mail mail]# m4 sendmail.mc > sendmail.cf
[root@mail mail]#
7.   重新启动sendmail服务器
[root@mail mail]# /etc/init.d/sendmail restart
Shutting down sendmail:                                      [ OK ]
Shutting down sm-client:                                      [ OK ]
Starting sendmail:                                            [ OK ]
Starting sm-client:                                            [ OK ]
至此sendmail服务器就算搭建好了,下面我们来看一下邮局的基本配置。
第三部分:邮局基本配置
sendmail 服务器实现了SMTP功能,只实现了邮件的发送功能,收取则需要使用POP3IMAP,下面是邮局基本配置:
一.   安装POP3服务
1. 安装dovecot软件包
RHEL5 系统中自带了名为dovecotRPM安装包,用于安装dovecot服务器,由于该服务器依赖的软件包较多,所以不适合用rpm命令安装,最好是在图形界面下使用软件包管理程序进行安装
2. 设置dovecot软件包
[root@mail mail]# vi /etc/dovecot.conf
// 找到下面的一行
#protocols = imap imaps pop3 pop3s
// #注释掉即可如下
protocols = imap imaps pop3 pop3s
3. 启动dovecot服务程序
[root@mail mail]# /etc/init.d/dovecot restart
Stopping Dovecot Imap:                                      [OK]
Starting Dovecot Imap:                                      [OK]
5.   设置dovecto服务的启动状态
[root@mail mail]# chkconfig --list dovecot
dovecot         0:off        1: off        2: off        3: off       4: off 5: off        6: off
[root@mail mail]# chkconfig --level 35 dovecot on
[root@mail mail]# chkconfig --list dovecot
dovecot          0: off        1: off         2: off         3:on       4: off  5:on   6: off
[root@mail mail]# netstat -ntpl | grep 110
tcp        0      0 :::110                      :::*                        LISTEN      6509/dovecot
二.   使用邮件客户端验证
客户端软件我们就使用windows自带的OE。帐号设置就不说了很简单。需要注意的是设置帐户时不要忘了将身份验证的选项卡勾上,因为Sendmail服务器设置了SMTP认证,如下图:
 
下图显示的是用户zpp001的发件箱,可以看到用户zpp001可以给用户zpp002和用于群发的别名zoupanpan发送邮件。
 
下图是用户zpp002的收件箱,可以看到他能够正常收信。
 
现在我们就搭建好了sendmail邮件服务器!
 
 
本文出自 “ zpp” 博客,请务必保留此出处 http://zpp2009.blog.51cto.com/730423/278913

你可能感兴趣的:(linux,sendmail,red,休闲,hat)