分享

使用postfix与dovecot在RHEL6下架设SSL的IMAP服务器

 昵称6656145 2014-11-18
额,这次搭的这个OAmail服务器主要是参照鸟哥的说明做的,写这篇文章的目的在于进一步提炼和力求阐明每一步的原因。

首先安装postfix和dovecot,直接yum安装就好
贴一下DNS的zone(DNS和mail在一台机器上)
Java代码  收藏代码
  1. $TTL    600  
  2. @       IN SOA      dns luozhaoyu.email.address.. (2011080401 3H 15M 1W 1D)  
  3. @       IN NS       dns  
  4. @       IN MX       mail  
  5. dns      IN A        192.168.56.101  
  6.   
  7. www      IN A        172.31.0.103  
  8. mail     IN A        172.31.0.105  
  9. smtp     IN CNAME    mail  
  10. pop3     IN CNAME    mail  


/etc/postfix/main.cf的主配置文件修改

Java代码  收藏代码
  1. myhostname = mail.lzy.org # 默认通过gethostname()使用FQDN,设置主机名  
  2. mydomain = lzy.org #  
  3. inet_interfaces = all # 监听所有地址来的服务,不只是127.0.0.1  
  4. inet_protocols = all # 支持IPv6  
  5. mydestination = $myhostname, localhost.$mydomain, localhost # MDA的目的地,能够收信的主机地址。与mail to相对。如果上面DNS中配了MX,则要把MX内容填在这。  
  6. mynetworks = 127.0.0.0/8192.168.56.0/24172.31.0.0/24, hash:/etc/postfix/access # 受信的network。只有来自这些网络的邮件才帮忙Relay,从来源IP的角度过滤  
  7. relay_domains = $mydestination # MTA的目的地,通常为下游Mail地址。从来源域名的角度过滤  
  8. alias_maps = hash:/etc/aliases  
  9. alias_database = hash:/etc/aliases  
  10. # 同时设置一下邮件和邮箱大小限制  
  11. message_size_limit = 5000000  
  12. mailbox_size_limit = 12000000  
  13. # 设置虚拟邮件域名  
  14. virtual_alias_domains = virtual.domain  
  15. virtual_alias_maps = hash:/etc/postfix/virtual  
  16. # 在virtual文件中加上  
  17. #virtual.domain anything  
  18. #@virtual.domain @$myhostname  






设置postfix的smtp验证
这里要用到saslauthd软件
Java代码  收藏代码
  1. yum install cyrus-sasl cyrus-sasl-plain cyrus-sasl-md5  

查看saslauthd使用的验证机制/etc/sysconfig/saslauthd
设置cyrus用saslauthd为smtp服务
Java代码  收藏代码
  1. vim /etc/sasl2/smtpd.conf  
  2. log_level: 3  
  3. pwcheck_method: saslauthd  
  4. mech_list: plain login  


设置postfix使用smtp身份验证
Java代码  收藏代码
  1. vim /etc/postfix/main.cf  
  2. smtpd_sasl_auth_enable = yes  
  3. smtpd_sasl_security_options = noanonymous  
  4. #broken_sasl_auth_clients = yes # 老版本的outlook可能需要这行  
  5.   
  6. smtpd_recipient_restrictions =  
  7.     permit_mynetworks, # 放行受信任的网络  
  8.     permit_sasl_authenticated,  
  9.     reject_unknown_sender_domain,  
  10.     reject_unknown_recipient_domain,  
  11.     reject_unauth_destination,  
  12.     #reject #默认拒绝一切  
  13.     check_relay_domains # 默认的策略,必须。比如白名单就使用check_policy_service unix:/var/spool/postfix/postgrey/socket  


dovecot设定
一般的pop3与imap在/etc/dovecot/dovecot.conf下修改协议
Java代码  收藏代码
  1. protocols = imap pop3  

设置dovecot寻找postfix的收件箱位置/etc/dovecot/conf.d/10-mail.conf
Java代码  收藏代码
  1. mail_location = mbox:~/mail/:INBOX=/var/spool/mail/%u  

注意这里的mbox是类似于一个用于IMAP下多mailbox的存储目录,每个用户都应该单独拥有,不应该共享。否则在多邮件客户端收信下可能将引起收件混乱。而/var/spool/下需要设置每个独立用户的权限,可能会出现permission error,所以设置在家目录下是最省事的。
详情请看http://wiki2./MailLocation/mbox

为了使添加的邮箱用户有在/var/spool/mail目录下的权限,需要:
Java代码  收藏代码
  1. usermod -g mail testmail0  


进行普通认证的话,关掉SSL
在/etc/dovecot/conf.d/10-ssl.conf关闭ssl
Java代码  收藏代码
  1. ssl = no  

并允许明文传输
Java代码  收藏代码
  1. disable_plaintext_auth = no  


进行SSL加密的话
先跳到/etc/pki/tls/certs/中制作pem
Java代码  收藏代码
  1. make custom-dovecot.pem  
  2. mv custom-dovecot.pem /etc/pki/dovecot/certs/  


然后跳到/etc/dovecot/conf.d/中一通改
改10-auth.conf,禁止明文传输
Java代码  收藏代码
  1. disable_plaintext_auth = yes  

改10-ssl.conf
Java代码  收藏代码
  1. ssl = required  
  2. ssl_cert = </etc/pki/dovecot/certs/dovecot.pem  
  3. ssl_key = </etc/pki/dovecot/certs/dovecot.pem  

改10-master.conf
Java代码  收藏代码
  1. inet_listener imap {  
  2.  port = 0  
  3. }  
  4. inet_listener pop3 {  
  5.  port = 0  
  6. }  

改10-mail.conf
Java代码  收藏代码
  1. mail_location = mbox:~/mail:INBOX=/var/mail/%u  


重启,注意开防火墙,注意设置postfix和dovecot开机启动

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多