吧!
[root@www ~]# vim /usr/local/virus/iptables/iptables.rule # 找到底下这一行,并且将它批注拿掉! iptables -A INPUT -p TCP -i $EXTIF --dport 25 --sport 1024:65534 -j ACCEPT [root@www ~]# /usr/local/virus/iptables/iptables.rule 这样就放行整个 Internet 对您服务器的 port 25 的读取啰!简单!搞定!
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 而已,所以可以这样设定即可: [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 =
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 即可!
22.4 MUA 软件:客户端的收发信软件
设定 Mail server 不是拿来好看的,当然是要好好的应用他啰!应用 mail server 有两种主要的方式,你可以直接登入 Linux 主机来操作 MTA ,当然也可以透过客户端的 MUA 软件来收发信件,底下我们分别介绍这两种方式啰!
22.4.1 Linux mail
在 Unix like 的操作系统当中都会存有一支可以进行收发信件的软件,那就是『 mail 』这个指令。这个指令是由 mailx 这个软件所提供的,所以您得要先安装这个软件才行。另外,由于 mail 是 Linux 系统的功能,所以即使你的 port 25 (smtp) 没有启动,他还是可以使用的,只是该封邮件就只会被放到队列,而无法寄出去啰!^_^!底下我们来谈一谈最简单的 mail 用法吧
?
用 mail 直接编辑文字邮件与寄信
mail 的用法很简单,就是利用『 mail [email address] 』的方式来将信件寄出去, 那个 [email address] 可以是对外的邮件地址,也可以是本机的账号。如果是本机账号的话,可以直接加账号名称即可。 例如:『 mail root 』或『 mail somebody@his.host.name 』。如果是对外寄信的时候, 信件预设的『 Mail from 』就会填写 main.cf 内那个 myorigin 变数的主机名啰! 先来试看看吧!寄给 dmtsai@www.centos.vbird 先: [root@www ~]# mail dmtsai@www.centos.vbird Subject: Just test <==这里填写信件标题 This is a test email. <==底下为信件的内容! bye bye ! . <==注意,这一行只有小数点!代表结束输入之意! 这样就可以将信件寄出去了!另外,早期的 mail server 是可以接受 IP 寄信的,举例来说: mail dmtsai@[192.168.100.254] ,记得 IP 要用中括号包起来。不过由于受到垃圾邮件的影响, 现在这种方式几乎都无法成功的将信件寄出了。
?
利用已经处理完毕的『纯文本档』寄出信件
这可不是『附件夹带』的方式!因为在 mail 这个程序里面编辑信件是个很痛苦的差事, 你不能够按上下左右键来回到刚刚编辑有错误的地方,很伤脑筋。此时我们可以透过标准输入来处理! 如果你忘记『 < 』代表的意义,请回到基础篇的第十一章 bash shell中的数据流重导向瞧瞧先!举例来说你要将家目录的 .bashrc 寄给别人,可以这样做: [root@www ~]# mail -s 'My bashrc' dmtsai < ~/.bashrc ?
开始查阅接收的信件
寄信还比较简单,那么收信呢?同样的收信还是使用 mail。直接在提示字符之后输入 mail 时,会主动的捉取使用者在 /var/spool/mail 底下的邮件信箱 (mailbox),例如我 dmtsai 这个账号在输入 mail 后,就会将 /var/spool/mail/dmtsai 这个档案的内容读出来并显示到屏幕上,结果如下:
# 注意喔!底下的身份使用的是 dmtsai 这个用户来操作 mail 这个指令的呦! [dmtsai@www ~]$ mail Heirloom Mail version 12.4 7/29/08. Type ? for help. \信箱来源与新信件数 >N 1 dmtsai@www.centos.vb Mon Aug 8 18:53 18/579 \....(中间省略).... N 9 root Tue Aug 9 15:04 19/618 \ N 10 root Tue Aug 9 15:04 29/745 \& <==这个是 mail 软件的提示字符,可以输入 ? 来察看可用指令 在上面的画面中,显示 dmtsai 有一封信,且会附上该信件的发信者与标题及收信时间等。你可以用的指令有这些:
?
读信: (直接按 Enter 或输入数字后 enter)
有看到『 > 』那个符号吧!那表示目前 mail 所在的邮件位置,你可以直接输入 Enter 即可看到该封信件的内容! 另外,你也可以在『&』之后的光标位置输入号码,就可以看该封信件的内容了!(注:如果持续按 Enter,则会自『 > 』符号所在的邮件逐次向后读取每封信件内容!) 显示标题: (直接数入 h 或输入 h 数字)
例如有 100 封信,要看 90 封左右的信件标题,就输入『 h90 』即可。
回复邮件: (直接输入 R )
如果要回复目前『 > 』符号所在的邮件,直接按下『 R 』即可进入刚刚前面介绍过的 mail 文字编辑画面啰!你可以编辑信件后传回去啰!
删除邮件: (输入 d 数字)
按下『 d## 』即可删除邮件!例如我要删除掉第 2 封邮件,可以输入『 d2 』如果是要删除第 10-50 封邮件,可以输入『 d10-50 』来删除喔!请记得,如果有删除邮件的话,离开 mail box 时,要使用『 q 』才行! 储存邮件到档案: (输入 s 数字 文件名)
?
?
?
?