Postfix+Dovecot搭建邮局
一、Postfix概述:介绍性的东西请大家上www.g.cn搜索一下看看,但是Postfix的势头比Sendmail要强劲的多,渐渐成为最被看好的邮局服务器软件。
 1、相关软件包:Postfix
 2、配置文件:/etc/postfix/*
 3、相关的端口: SMTP(25)
 4、系统收到邮件保存在/var/spool/mail/[linux用户名]。
二、Dovecot概况:
    1、功能:主要提供imap imaps pop3 pop3s服务。其中imaps pop3s是使用SSL来加密验证和数据安全的服务器。
    2、端口:110(pop3)  995(pop3s)  143(imap)  993(imaps)
    3、相关配置文件:/etc/dovecot.conf
三、Postfix的安装、配置:
 1、配置DNS,详见 Blog中关于DNS的两篇文章请按照上面的配置,
  http://iminmin.blog.51cto.com/689308/162631
  http://iminmin.blog.51cto.com/689308/193710
 2、Postfix安装:
  Yum install postfix* -y
  3、关闭Sendmail,将Postfix设置成默认mta
-------------------------------------------------------------------
[root@rhce ~]# chkconfig sednmail off
在 sednmail 服务中读取信息时出错:没有那个文件或目录
[root@rhce ~]# chkconfig sendmail off
[root@rhce ~]# service sendmail stop
关闭 sm-client:                                           [确定]
关闭 sendmail:                                            [确定]
[root@rhce ~]# alternatives --config mta
共有 2 个程序提供“mta”。
  选择    命令
-----------------------------------------------
*+ 1           /usr/sbin/sendmail.sendmail
   2           /usr/sbin/sendmail.postfix
按 Enter 来保存当前选择[+],或键入选择号码:2
[root@rhce ~]# chkconfig postfix on
[root@rhce ~]# service postfix restart
-------------------------------------------------------------------
  4、给root发份邮件测试一下Postfix安装是否成功?
-------------------------------------------------------------------
[root@rhce ~]# echo "this is a test"|mail -s testmail root
[root@rhce ~]# mail
Mail version 8.1 6/6/93.  Type ? for help.
"/var/spool/mail/root": 1 message 1 new
>N  1 root@rhce.cn          Mon Aug 31 23:00  14/389   "testmail"
& 1
Message 1:
From root@rhce.cn  Mon Aug 31 23:00:01 2009
X-Original-To: root
Delivered-To: root@rhce.cn
To: root@rhce.cn
Subject: testmail
Date: Mon, 31 Aug 2009 23:00:01 +0800 (CST)
From: root@rhce.cn (root)
this is a test
& q
Saved 1 message in mbox   //测试中,发送的邮件立刻就可以收到;效率比Sendmail高。
-------------------------------------------------------------------
 5、配置postfix:
1)、主配置文件/etc/postfix/main.cf的修改:
a)inet_interfaces=all       //去掉前面的#,听说有端口。
b)#inet_interfaces=localhost  /加上#。
c)mydestination=mail.rhce.cn,rhce.cn,localhost
//指定postfix接收邮件时收件人的域名所有可能引用的域名或着主机名都写上。
2)其他部分的简单说明:建议不修改。
mydomain = mail.rhce.cn   //域名
myorigin = $mydomain    //这里采用的是变量,代表mail.rhce.cn
myorigin = mail.rhce.cn    //指明发件人所在的域名。如果你的用户的邮件地址为user@domain.com,则该参数指定@后面的域名。
myhostname = mail.rhce.cn  //指定运行postfix邮件系统的主机的主机名。缺省地,该值被设定为本地机器名。
3)配置完后重新启动postfix服务。
四、 Dovecot服务的安装配置:
 1、Dovecot安装:
  yum install dovecot* -y
 2、编辑主配置文件/etc/dovecot.conf(只要打开对imap imaps pop3 pop3s协议的支持就可以)
 protocols = imap imaps pop3 pop3s  //前面的#去掉。
  3、dovecot服务的启动:
-------------------------------------------------------------------
[root@rhel53 postfix]# chkconfig dovecot on
[root@rhel53 postfix]# service dovecot restart
-------------------------------------------------------------------
五、测试相关端口并配置iptables的配置:
  1、端口25 110 143的测试: 
-------------------------------------------------------------------
[root@rhce ~]# telnet mail.rhce.cn 25
Trying 192.168.1.8...
Connected to mail.rhce.cn (192.168.1.8).
Escape character is '^]'.
220 rhce.cn ESMTP Postfix
ehlo mail.rhce.cn    //手工输入的测试命令
250-rhce.cn
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
quit                //退出命令
221 2.0.0 Bye
Connection closed by foreign host.
[root@rhce ~]# telnet mail.rhce.cn 110
Trying 192.168.1.8...
Connected to mail.rhce.cn (192.168.1.8).
Escape character is '^]'.
+OK Dovecot ready.
quit                  //退出命令
Connection closed by foreign host.
[root@rhce ~]# telnet mail.rhce.cn 143
Trying 192.168.1.8...
Connected to mail.rhce.cn (192.168.1.8).
Escape character is '^]'.
* OK Dovecot ready.
-------------------------------------------------------------------
 2、Iptables的配置:etc/sysconfig/iptables  列出要增加及可能有变化的
-------------------------------------------------------------------
……前面省略
-A RH-Firewall-1-INPUT -p udp -m udp --dport 5353 -d 224.0.0.251 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 53 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 53 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 953 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 953 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 25 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 25 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 110 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 110 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 143 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 143 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 993 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 993 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 995 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp —dport 995 -j ACCEPT
后面省略……
-------------------------------------------------------------------
六、添加账户,用客户端软件测试基本功能:
 1、添加2个账号test1,test2:
2、配置客户端软件测试基本功能:
1)客户机:WindwosXp   Foxmail6
2) 配置客户机账户
RHCE心得14——Postfix+Dovecot搭建邮局心得_aliase别名
   **
RHCE心得14——Postfix+Dovecot搭建邮局心得_access访问控制_02
 **
RHCE心得14——Postfix+Dovecot搭建邮局心得_Postfix_03
        图三,这里点击“测试账户设置”看一下配置是否正确。
RHCE心得14——Postfix+Dovecot搭建邮局心得_access访问控制_04
         图四,测试通过以后点完成就可以完成客户端账户配置。
 3、利用test1账户给test2账户发送邮件测试,发送和接收:
RHCE心得14——Postfix+Dovecot搭建邮局心得_aliase别名_05
      图一,编辑邮件,完成后点发送。
RHCE心得14——Postfix+Dovecot搭建邮局心得_Dovecot_06

      图二,点开test2账号单击“接收”
七、实现邮局aliases别名功能:(这个和Sendmail基本相通,都是用/etc/aliases文件)
1、编辑/etc/aliases:
 1)格式:别名:  真实账户1,真实账户2,……
 2)vim /etc/aliases
 增加:test:  test1,test2
 当我们给别名账户发送邮件时所有真实账户都可以收到,在我们的例子中,当我给test@rhce.cn发送邮件时,test1@rhce.cntest2@rhce.cn都可以收到。
 3、运行newaliases命令,生成aliases库。
 4、重新启动postfix服务。
 5、通过客户端测试别名:
RHCE心得14——Postfix+Dovecot搭建邮局心得_Postfix_07
      图一,用test2给别名test发送一份邮件
RHCE心得14——Postfix+Dovecot搭建邮局心得_Dovecot_08
        图二,test2收到,刚发的邮件
RHCE心得14——Postfix+Dovecot搭建邮局心得_access访问控制_09
         图三,test1也收到了,注意时间是一样的。
八、access访问控制的实现及检测(基本和sendmail相同)
1、修改postfix主配置文件/etc/postfix/main.cf
在最后增加如下内容:(开启access检测)
smtpd_clietn_restrictions=check_client_access hash:/etc/postfix/access
 2、编辑/etc/postfix/access文件:
  详细格式请看sendmail心得部分:
http://iminmin.blog.51cto.com/689308/196556
-------------------------------------------------------------------
[root@rhce ~]# vim /etc/postfix/access
127.0.0.1               OK
192.168.1.0/24          OK
192.168.1.100           REJECT  //这3句增加到access文件最后
-------------------------------------------------------------------
 3、生成access库文件,并重新启动postfix服务:
-------------------------------------------------------------------
[root@rhce ~]# postmap /etc/postfix/access
[root@rhce ~]# service postfix restart
关闭 postfix:                                             [确定]
启动 postfix:                                             [确定]
-------------------------------------------------------------------
4、测试access访问控制功能:
1)测试客户端是否还能收发邮件:
RHCE心得14——Postfix+Dovecot搭建邮局心得_Dovecot_10
       图一,用test1为test2写邮件
RHCE心得14——Postfix+Dovecot搭建邮局心得_休闲_11
      图二,test2正常的接受到了test1发来的邮件
2)将客户端的IP改成192.168.1.100再测试:
RHCE心得14——Postfix+Dovecot搭建邮局心得_aliase别名_12
      修改IP地址为:192.168.1.100
RHCE心得14——Postfix+Dovecot搭建邮局心得_Dovecot_13
      已经不能正常发邮件了,说明192.168.1.100的设置生效
 九、Dovecot 实现基于ssl的imaps和pop3s安全协议:
  方法和Sendmail心得中的完全一样,请参照他来做。
 http://iminmin.blog.51cto.com/689308/196556