• 22.3 MRA 服务器: dovecot 设定
    • 22.3.1 基础的 POP3/IMAP 设定
    • 22.3.2 加密的 POP3s/IMAPs 设定
    • 22.3.3 防火墙设置

    22.3 MRA 服务器: dovecot 设定

    除非你想要架设 webmail 在你的 MTA 上头,否则,你的 MTA 收下了信件,你总得连上 MTA 去收信吧?那么收信要用的是哪个通讯协议? 就是 22.1.4 里面谈到的 pop3 以及 imap 啰!这就是所谓的 MRA 服务器!我们的 CentOS 6.x 使用的是 dovecot 这个软件来达成 MRA 的相关通讯协议的!但由于 pop3/imap 还有数据加密的版本,底下我们就依据是否加密 (SSL) 来设定 dovecot 吧!


    22.3.1 基础的 POP3/IMAP 设定

    启动单纯的 pop3/imap 是很简单的啦,你得要先确定已经安装了 dovecot 这个软件。而这个软件的配置文件只有一个,就是 /etc/dovecot/dovecot.conf 。我们仅要启动 pop3/imap 而已,所以可以这样设定即可:

    1. [root@www ~]# yum install dovecot
    2. [root@www ~]# vim /etc/dovecot/dovecot.conf
    3. # 找到底下这一行,大约是在第 25 行左右的地方,复制新增一行内容如下:
    4. #protocols = imap pop3 lmtp
    5. protocols = imap pop3
    6. [root@www ~]# vim /etc/dovecot/conf.d/10-ssl.conf
    7. ssl = no <==将第 6 行改成这样!

    改完之后你就可以启动 dovecot 啰!并且检查看看 port 110/143 (pop3/imap) 有没有启动啊?

    1. [root@www ~]# /etc/init.d/dovecot start
    2. [root@www ~]# chkconfig dovecot on
    3. [root@www ~]# netstat -tlnp | grep dovecot
    4. Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
    5. tcp 0 0 :::110 :::* LISTEN 14343/dovecot
    6. tcp 0 0 :::143 :::* LISTEN 14343/dovecot

    耶!搞定!这样就可以提供使用者来收信件啦!真是不错啊!不过记得喔,这里只提供基本的明码 pop3/imap 传输而已, 如果想要启动其他如 pop3s (传输加密机制) 协议时,就得要额外的设定啰!


    22.3.2 加密的 POP3s/IMAPs 设定

    如果担心数据在传输过程会被窃取,或者是你的登入信息 (账号与密码) 在使用 pop3/imap 时会被窃听, 那么这个 pop3s/imaps 就显的重要啦!与之前的 Apache 相似的,其实我们都是透过 openssl 这个软件提供的 SSL 加密机制来进行数据的加密传输。方式很简单呢!预设的情况下,CentOS 已经提供了 SSL 凭证范例文件给我们使用了。 如果你一点都不想要使用预设的凭证,那么我们就来自己建一个吧!

    1. # 1\. 建立凭证:到系统提供的 /etc/pki/tls/certs/ 目录下建立所需要的 pem 凭证档:
    2. [root@www ~]# cd /etc/pki/tls/certs/
    3. [root@www certs]# make vbirddovecot.pem
    4. ....(前面省略)....
    5. Country Name (2 letter code) [XX]:TW
    6. State or Province Name (full name) []:Taiwan
    7. Locality Name (eg, city) [Default City]:Tainan
    8. Organization Name (eg, company) [Default Company Ltd]:KSU
    9. Organizational Unit Name (eg, section) []:DIC
    10. Common Name (eg, your name or your server's hostname) []:www.centos.vbird
    11. Email Address []:dmtsai@www.centos.vbird
    12. # 2\. 因为担心 SELinux 的问题,所以建议将 pem 档案放置到系统默认的目录去较佳!
    13. [root@www certs]# mv vbirddovecot.pem ../../dovecot/
    14. [root@www certs]# restorecon -Rv ../../dovecot
    15. # 3\. 开始处理 dovecot.conf,只要 pop3s, imaps 不要明码传输的咯!
    16. [root@www certs]# vim /etc/dovecot/conf.d/10-auth.conf
    17. disable_plaintext_auth = yes <==第 9 行改成这样!取消批注!
    18. [root@www certs]# vim /etc/dovecot/conf.d/10-ssl.conf
    19. ssl = required <==第 6 行改成这样
    20. ssl_cert = </etc/pki/dovecot/vbirddovecot.pem <==12, 13 行变这样
    21. ssl_key = </etc/pki/dovecot/vbirddovecot.pem
    22. [root@www certs]# vim /etc/dovecot/conf.d/10-master.conf
    23. inet_listener imap {
    24. port = 0 <== 15 行改成这样
    25. }
    26. inet_listener pop3 {
    27. port = 0 <== 36 行改成这样
    28. }
    29. # 4\. 处理额外的 mail_location 设定值!很重要!否则网络收信会失败:
    30. [root@www certs]# vim /etc/dovecot/conf.d/10-mail.conf
    31. mail_location = mbox:~/mail:INBOX=/var/mail/%u <==第 30 行改这样
    32. # 5\. 重新启动 dovecot 并且观察 port 的变化:
    33. [root@www certs]# /etc/init.d/dovecot restart
    34. [root@www certs]# netstat -tlnp | grep dovecot
    35. Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
    36. tcp 0 0 :::993 :::* LISTEN 14527/dovecot
    37. tcp 0 0 :::995 :::* LISTEN 14527/dovecot

    最终你看到的 993 是 imaps 而 995 则是 pop3s 啰!这样一来,你收信的时候,输入的账号密码就不怕被窃听了! 反正是加密后的资料啰!很简单吧!


    22.3.3 防火墙设置

    因为上面的练习中,我们将 pop3/imap 关闭,转而打开 pop3s/imaps 了,因此防火墙启动的埠口会不一样! 请依据您实际的案例来设定你所需要的防火墙才好。我们这里主要是开放 993, 995 两个埠口呦! 处理的方法与 22.2.9 相当类似:

    1. [root@www ~]# vim /usr/local/virus/iptables/iptables.rule
    2. # 大约在 180 行左右,新增底下两行去!
    3. iptables -A INPUT -p TCP -i $EXTIF --dport 993 --sport 1024:65534 -j ACCEPT
    4. iptables -A INPUT -p TCP -i $EXTIF --dport 995 --sport 1024:65534 -j ACCEPT
    5. [root@www ~]# /usr/local/virus/iptables/iptables.rule

    如果你的 pop3/imap 还是决定不加密的话,请将上面的 993/995 改成 143/110 即可!


    原文: https://wizardforcel.gitbooks.io/vbird-linux-server-3e/content/167.html