🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## 22.3 MRA 服务器: dovecot 设定 除非你想要架设 webmail 在你的 MTA 上头,否则,你的 MTA 收下了信件,你总得连上 MTA 去收信吧?那么收信要用的是哪个通讯协议? 就是 [22.1.4](#whatmail_pop) 里面谈到的 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 而已,所以可以这样设定即可: ``` [root@www ~]# yum install dovecot [root@www ~]# vim /etc/dovecot/dovecot.conf # 找到底下这一行,大约是在第 25 行左右的地方,复制新增一行内容如下: #protocols = imap pop3 lmtp protocols = imap pop3 [root@www ~]# vim /etc/dovecot/conf.d/10-ssl.conf ssl = no <==将第 6 行改成这样! ``` 改完之后你就可以启动 dovecot 啰!并且检查看看 port 110/143 (pop3/imap) 有没有启动啊? ``` [root@www ~]# /etc/init.d/dovecot start [root@www ~]# chkconfig dovecot on [root@www ~]# netstat -tlnp | grep dovecot Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 :::110 :::* LISTEN 14343/dovecot 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\. 建立凭证:到系统提供的 /etc/pki/tls/certs/ 目录下建立所需要的 pem 凭证档: [root@www ~]# cd /etc/pki/tls/certs/ [root@www certs]# make vbirddovecot.pem ....(前面省略).... Country Name (2 letter code) [XX]:TW State or Province Name (full name) []:Taiwan Locality Name (eg, city) [Default City]:Tainan Organization Name (eg, company) [Default Company Ltd]:KSU Organizational Unit Name (eg, section) []:DIC Common Name (eg, your name or your server's hostname) []:www.centos.vbird Email Address []:dmtsai@www.centos.vbird # 2\. 因为担心 SELinux 的问题,所以建议将 pem 档案放置到系统默认的目录去较佳! [root@www certs]# mv vbirddovecot.pem ../../dovecot/ [root@www certs]# restorecon -Rv ../../dovecot # 3\. 开始处理 dovecot.conf,只要 pop3s, imaps 不要明码传输的咯! [root@www certs]# vim /etc/dovecot/conf.d/10-auth.conf disable_plaintext_auth = yes <==第 9 行改成这样!取消批注! [root@www certs]# vim /etc/dovecot/conf.d/10-ssl.conf ssl = required <==第 6 行改成这样 ssl_cert = </etc/pki/dovecot/vbirddovecot.pem <==12, 13 行变这样 ssl_key = </etc/pki/dovecot/vbirddovecot.pem [root@www certs]# vim /etc/dovecot/conf.d/10-master.conf inet_listener imap { port = 0 <== 15 行改成这样 } inet_listener pop3 { port = 0 <== 36 行改成这样 } # 4\. 处理额外的 mail_location 设定值!很重要!否则网络收信会失败: [root@www certs]# vim /etc/dovecot/conf.d/10-mail.conf mail_location = mbox:~/mail:INBOX=/var/mail/%u <==第 30 行改这样 # 5\. 重新启动 dovecot 并且观察 port 的变化: [root@www certs]# /etc/init.d/dovecot restart [root@www certs]# netstat -tlnp | grep dovecot Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 :::993 :::* LISTEN 14527/dovecot tcp 0 0 :::995 :::* LISTEN 14527/dovecot ``` 最终你看到的 993 是 imaps 而 995 则是 pop3s 啰!这样一来,你收信的时候,输入的账号密码就不怕被窃听了! 反正是加密后的资料啰!很简单吧! * * * ### 22.3.3 防火墙设置 因为上面的练习中,我们将 pop3/imap 关闭,转而打开 pop3s/imaps 了,因此防火墙启动的埠口会不一样! 请依据您实际的案例来设定你所需要的防火墙才好。我们这里主要是开放 993, 995 两个埠口呦! 处理的方法与 22.2.9 相当类似: ``` [root@www ~]# vim /usr/local/virus/iptables/iptables.rule # 大约在 180 行左右,新增底下两行去! iptables -A INPUT -p TCP -i $EXTIF --dport 993 --sport 1024:65534 -j ACCEPT iptables -A INPUT -p TCP -i $EXTIF --dport 995 --sport 1024:65534 -j ACCEPT [root@www ~]# /usr/local/virus/iptables/iptables.rule ``` 如果你的 pop3/imap 还是决定不加密的话,请将上面的 993/995 改成 143/110 即可! * * *