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
[email protected] Mon Aug 31 23:00 14/389 "testmail"
& 1
Message 1:
From
[email protected] Mon Aug 31 23:00:01 2009
X-Original-To: root
Delivered-To:
[email protected]
To:
[email protected]
Subject: testmail
Date: Mon, 31 Aug 2009 23:00:01 +0800 (CST)
From:
[email protected] (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 //指明发件人所在的域名。如果你的用户的邮件地址为
[email protected],则该参数指定@后面的域名。
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) 配置客户机账户
**
**
图三,这里点击“测试账户设置”看一下配置是否正确。
图四,测试通过以后点完成就可以完成客户端账户配置。
3、利用test1账户给test2账户发送邮件测试,发送和接收:
图一,编辑邮件,完成后点发送。
图二,点开test2账号单击“接收”
七、实现邮局aliases别名功能:(这个和Sendmail基本相通,都是用/etc/aliases文件)
1、编辑/etc/aliases:
1)格式:别名: 真实账户1,真实账户2,……
2)vim /etc/aliases
增加:test: test1,test2
当我们给别名账户发送邮件时所有真实账户都可以收到,在我们的例子中,当我给
[email protected]发送邮件时,
[email protected]和
[email protected]都可以收到。
3、运行 newaliases命令,生成aliases库。
4、重新启动postfix服务。
5、通过客户端测试别名:
图一,用test2给别名test发送一份邮件
图二,test2收到,刚发的邮件
图三,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)测试客户端是否还能收发邮件:
图一,用test1为test2写邮件
图二,test2正常的接受到了test1发来的邮件
2)将客户端的IP改成192.168.1.100再测试:
修改IP地址为:192.168.1.100
已经不能正常发邮件了,说明192.168.1.100的设置生效
九、Dovecot 实现基于ssl的imaps和pop3s安全协议:
方法和Sendmail心得中的完全一样,请参照他来做。
http://iminmin.blog.51cto.com/689308/196556