第十章:Email服务全攻略

2010年02月08日 Linux服务器, Linux视频 评论 1 条 阅读 17,319 views 次

内容简介
电子邮件服务的概述
postfix邮件服务的安装
postfix邮件服务的配置.别名、虚拟别名域、访问控制、SSL、SMTP认证
POP和IMAP邮件服务的实现
案例详解.Extmail案例

电子邮件系统的简介
对于一个完整的电子邮件系统而言,它主要由以下三部分构件组成。
1.用户代理:就是用户与电子邮件系统的接口,如Outlook和Foxmail
2.邮件服务器:SMTP服务器+POP3服务器或IMAP4服务器
3.电子邮件使用的协议
SMTP协议:用来发送或中转发出的电子邮件
POP3协议:从服务器上把邮件存储到本地主机即自己的计算机上
IMAP4协议:用于从本地服务器上访问电子邮件

(图1)

1.png

1、 MUA -- Mail User Agent, 邮件用户代理,帮助用户读写邮件;
2、 MTA -- Mail Transport Agent, 邮件传输代理,负责把邮件由一个服务器传到另一个服务器;
3、 MDA -- Mail Delivery Agent, 邮件投递代理,把邮件放到用户的邮箱里。

电子邮件服务的工作原理 (图2)

2.png

E-mail的传输过程如下。


用户在各自的POP服务器注册登记,并取得一个POP信箱,获得POP和SMTP服务器的地址信息。假设两个服务器的域名分别为boobooke.com和sina.com,注册用户分别为tom和jack,E-mail地址分别为jack@boobooke.com和tom@sina.com。
② 当boobooke.com服务器上的用户jack向tom@sina.com发送E-mail时,E-mail首先从客户端被发送至boobooke.com的SMTP服务器。
③ boobooke.com的SMTP服务器根据目的E-mail地址查询sina.com的SMTP服务器,并转发该E-mail。
④ sina.com的SMTP服务器收到转发的E-mail,并保存。
⑤ sina.com的chen用户利用客户端登录至sina.com的POP服务器,从其信箱中下载并浏览E-mail。

主流电子邮件服务器软件
在Linux平台中,有许多邮件服务器可供选择,但目前使用较多的是Sendmail服务器、 Postfix服务器和Qmail服务器。
Sendmail是一个很优秀的邮件服务软件。几乎所有Linux的缺省配置中都内置了这个软件,只需要设置好操作系统,它就能立即运转起来。
Postfix是一个由IBM资助下由Wietse?Venema?负责开发的一个自由软件工程产物,它的目的就是为用户提供除Sendmail之外的邮件服务器选择。
Qmail是有Dan?Bernstein开发的可以自由下载邮件服务器软件,其第一个beta版本0.70.7发布于1996年1月24日。

postfix邮件服务的安装
Red Hat Enterprise Linux 提供了sendmail和postfix两种STMP邮件服务软件,让用户可以随意地选择其中一种!不过,默认情况下安装程序已将sendmail安装到系统中了,如果要使用postfix,就必须先将sendmail服务停止,然后再安装postfix服务软件。具体操作步骤如下:

① 检查sendmail服务是否已启动
netstat -nutlp | grep :25
② 关闭sendmail服务及开机时自启动,也可以卸载
/etc/rc.d/init.d/sendmail stop
chkconfig sendmail off
③ 安装postfix服务
rpm -ivh /mnt/Server/postfix-*.i386.rpm

postfix服务的基本配置
主配置文件--/etc/postfix/main.cf
运行参数配置文件--/etc/postfix/master.cf
访问控制文件--/etc/postfix/access
别名数据库文件--/etc/aliases
虚拟别名域库文件--/etc/postfix/virtual

1.设置运行postfix服务的邮件主机的主机名、域名
myhostname = mail.boobooke.com
mydomain = boobooke.com
2.设置由本机寄出的邮件所使用的域名或主机名称
myorigin = $mydomain
3.设置postfix服务监听的网络接口
inet_interfaces = all
4.设置可接收邮件的主机名称或域名
mydestination = $mydomain, $myhostname
5.设置可转发(Relay)哪些网络的邮件
mynetworks = 192.168.1.0/24
6.设置可转发哪些网域的邮件
relay_domains = boobooke.com

POP和IMAP邮件服务的实现
dovecot服务的实现
cyrus-imapd服务的实现(EXTMAIL)

POP和IMAP邮件服务的实现
postfix服务只是一个MTA(邮件传输代理),它只提供SMTP服务,也就是只提供邮件的转发及本地的分发功能。要实现邮件的异地接收,还必须安装POP或IMAP服务。通常情况下,都是将STMP服务和POP或IMAP服务安装在同一台主机上,那么这台主机也就称为电子邮件服务器。Red
Hat Enterprise Linux 5中,有以下两个软件可以同时提供POP和IMAP服务:dovecot和cyrus-imapd。
dovecot服务的实现
1.dovecot服务的安装
Red Hat Enterprise Linux安装程序默认没有安装dovecot服务,可使用下面的命令检查系统是否已经安装了dovecot服务:
rpm -q dovecot
如果系统还没有安装dovecot服务,将Red Hat Enterprise Linux 5第2张安装光盘放入光驱,加载光驱后在光盘的Server目录下找到dovecot服
务的RPM安装包文件dovecot-*.i386.rpm和相关程序,然后使用下面的命令安装dovecot服务和相关程序:
rpm -ivh /mnt/Server/perl-DBI-*.rpm
rpm -ivh /mnt/Server/mysql-*.rpm
rpm -ivh /mnt/Server/dovecot-*.rpm

2.dovecot服务的基本配置
dovecot服务的配置文件是/etc/dovecot.conf。要启用最基本的dovecot服务,只需要修改该配置文件中的以下内容:
protocols = imap imaps pop3 pop3s
3.启动dovecot服务并设置为自启动
/etc/rc.d/init.d/dovecot start
chkconfig --level 345 dovecot on

cyrus-imapd服务的实现
cyrus-imapd服务的基本配置
/etc/sysconfig/cyrus-imapd:是用于启动cyrus-imapd服务的配置文件;
/etc/cyrus.conf:是cyrus-imapd服务的主要配置文件,其中包含该服务中各个组件(imap、pop3、sieve和nntp等)的设置参数;
/etc/imapd.conf:是cyrus-imapd服务中的imap服务的配置文件。

Web方式收发邮件
虽然postfix没有直接提供Web邮件服务功能,但是通常可通过将它与Apache以及第三方的Webmail软件(如Extmail、squirrelmail、openwebmail等)集成在一起,提供Web邮件服务。

用户别名的配置
① 打开postfix主配置文件/etc/postfix/main.cf,应确认文件中包含以下两条默认语句:
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases

② 编辑配置文件/etc/aliases,进行如下定义:
class1: st98001,st98002,st98003,st98004
class1: :include: /etc/mail/st98
tom: zhangsan
boss: lisi,lisi@163.com

③ 在修改配置文件main.cf和aliases后,要使更改立即生效,应分别执行/usr/sbin目录下以下的两条命令:
postalias /etc/aliases
postfix reload

虚拟别名域的配置
① 编辑postfix主配置文件/etc/postfix/main.cf,进行如下定义:
virtual_alias_domains = bbk.cn,example.com
virtual_alias_maps = hash:/etc/postfix/virtual

② 编辑配置文件/etc/postfix/virtual,进行如下定义:
@bbk.cn @boobooke.com
admin@example.com tom
st98@example.com st98001,st098002
lisi@example.com jack,jack@163.com

③ 在修改配置文件main.cf和virtual后,要使更改立即生效,应分别执行/usr/sbin目录下以下的两条命令:
postmap /etc/postfix/virtual
postfix reload

访问控制
① 编辑postfix主配置文件/etc/postfix/main.cf,进行如下定义:
smtpd_client_restrictions = check_client_access hash:/etc/postfix/access
② 编辑配置文件/etc/postfix/access,进行如下定义:
127.0.0.1 OK
192.168.1.0/24 OK
192.168.1.5 REJECT
192.168.1.6 DISCARD
91ops.com RELAY

③ 在修改配置文件main.cf和access后,要使更改立即生效,应分别执行/usr/sbin目录下以下的两条命令:
postmap /etc/postfix/access
postfix reload

SSL实现
① 创建密钥
make -C /etc/pki/tls/certs dovecot.pem
② 编辑配置文件/etc/dovecot.conf,开启POP3S并取消如下两行注释:
ssl_cert_file = /etc/pki/tls/certs/dovecot.pem
ssl_key_file = /etc/pki/tls/certs/dovecot.pem
ssl_disable = no

③ 在修改配置文件dovecot后,要使更改立即生效,应执行如下命令:
service dovecot restat
netstat -nutl |grep LINTEN

SMTP认证的配置
Cyrus SASL是Cyrus Simple Authentication and Security
Layer的简写,是为基于连接协议提供辅助认证支持的一种方法。使用SASL认证库时,应用层协议通过插入相关的认证命令来获取服务器的访问授权,同时也可以协商协议交互时的增强保护措施。当使用协商的安全措施时,一个安全协议层会被插入到应用协议层与连接层之间。它最大的功能是为应用程序提供了认证函数库。应用程序可以通过函数库所提供的功能定义认证方式,并让SASL通过与邮件服务器主机的沟通从而提供认证的功能。
1.Cyrus-SASL认证包的安装
默认情况下,Red Hat Enterprise Linux安装程序会将Cyrus-SASL认证包安装上,可使用下面的命令检查系统是否已经安装了Cyrus-SASL认证包或查看已经安装了何种版本:
rpm -qa | grep sasl
如果系统还没有安装Cyrus-SASL认证包,就安装cyrus-sasl-*.rpm包文件,可使用下面的命令:
rpm -ivh /mnt/Server/cyrus-sasl-*.rpm
2.Cyrus-SASL V2的密码验证机制
默认情况下,Cyrus-SASL V2版使用saslauthd这个守护进程进行密码认证,而密码认证的方法有多种,使用下面的命令可查看当前系统中的Cyrus-SASL V2所支持的密码验证机制:
saslauthd -v
当前可使用的密码验证方法有getwent、kerberos5、pam、rimap、shadow和ldap。
为简单起见,这里准备采用shadow验证方法,也就是直接用/etc/shadow文件中的用户账户及密码进行验证,因此,在配置文件/etc/sysconfig/saslauthd中,修改当前系统所采用的密码验证机制为shadow,即:
MECH=shadow
3.测试Cyrus-SASL V2的认证功能
由于Cyrus-SASL V2版默认使用saslauthd这个守护进程进行密码认证,因此,需要使用下面的命令来查看saslauthd进程是否已经运行:
ps aux | grep saslauthd
如果没有发现saslauthd进程,则可用下面的命令启动该进程并设置它开机自启动:
/etc/init.d/saslauthd start
chkconfig saslauthd on
然后,可用下面的命令测试saslauthd进程的认证功能:
/usr/sbin/testsaslauthd -u test -p '123456'

4.设置postfix启用smtp认证
main.cf文件中有关smtp认证的设置部分
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = ''
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
broken_sasl_auth_clients=yes
smtpd_client_restrictions = permit_sasl_authenticated
smtpd_sasl_security_options = noanonymous

5.测试postfix是否启用了smtp认证
采用telnet命令连接到postfix服务器端口25来进行测试
EHLO

与POSTFIX有关的命令

生成数据库
postmap /etc/postfix/access
postalise /etc/postfix/alisase
检查 postfix 相关的档案、权限:postfix check
查看 postfix 的设定内容:postconf -n
重新读入设定档:postfix reload
显示信件列表: postqueue -p
显示信件內容: postcat -q Queue_ID
清除信件: postqueue -f (全部) postqueue -s 主机名称(个别对象)

一些有关的日志
系统日志:tail -f /var/log/messages
邮件日志:tail -f /var/log/maillog
maildrop相关:tail -f /var/log/maildrop.log
apache相关:
tail -f /usr/local/httpd/logs/error_log
tail -f /usr/local/httpd/logs/suexec_log
mysql相关: tail -f /usr/local/mysql/data/linux.linux.com.err

★★★★★★★★★★★★★★★★★视频观看地址★★★★★★★★★★★★★★★★★★

http://www.boobooke.com/v/bbk3776
http://www.boobooke.com/v/bbk3777
http://www.boobooke.com/v/bbk3778
http://www.boobooke.com/v/bbk3779
http://www.boobooke.com/v/bbk3780
http://www.boobooke.com/v/bbk3781

1 条留言  访客:1 条  博主:0 条

  1. CYRUS-SASL这种东西可以抛弃了。我现在自己搞了个,直接POSTFIX+dovecot+mysql,直接用DOVECOT来LDA和SASL,很方便,而且DOVECOT的SASL自带CACHE功能。CYRUS还要借助MEMCACHED之类。
    POSTFIX+CYRUS-IMAP+CYRUS-SASL+COURIER-AUTHLIB+MEMCACHED+MYSQL+POSTDROP。不是一般麻烦,再加上一些反垃圾组件,太没效率了

给我留言

Copyright © 羽飞博客 保留所有权利.   Ality主题 皖ICP备14013844号-1

用户登录