分类: LINUX
2011-01-24 21:32:11
下面是关于Linux下面配置Dovecot服务的讨论,
Dovecot介绍
Dovecot主要是用来接收邮件的一个服务,它可以支持POP3,POP3S,IMAP,IMAPS这些邮件接收协议。
关于邮件接收协议
POP3
邮局协议 TCP:110
POP3S
使用SSL加密 TCP:995
IMAP
互联网邮件存取协议 TCP:143
IMAPS
使用SSL加密 TCP:993
关于Dovecot这个服务的属性
Dovecot软件包
Dovecot
Dovecot的守护进程
/usr/sbin/dovecot
Dovecot的进程
/etc/init.d/dovecot
Dovecot的端口
110(pop3) 995(pop3s) 143(imap) 993(imaps)
Dovecot的配置文件
/etc/dovecot.conf
下面来配置dovecot服务
首先,我们来安装软件包,
[root@station10 ~]#
[root@station10 ~]# yum -y install dovecot
Loaded plugins: rhnplugin, security
This system is not registered with RHN.
RHN support will be disabled.
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package dovecot.i386 0:1.0.7-7.el5 set to be updated
--> Processing Dependency: libmysqlclient.so.15(libmysqlclient_15) for package: dovecot
--> Processing Dependency: libmysqlclient.so.15 for package: dovecot
--> Processing Dependency: libpq.so.4 for package: dovecot
--> Running transaction check
---> Package mysql.i386 0:5.0.77-3.el5 set to be updated
--> Processing Dependency: perl(DBI) for package: mysql
---> Package postgresql-libs.i386 0:8.1.11-1.el5_1.1 set to be updated
--> Running transaction check
---> Package perl-DBI.i386 0:1.52-2.el5 set to be updated
--> Finished Dependency Resolution
Dependencies Resolved
================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
dovecot i386 1.0.7-7.el5 base 1.7 M
Installing for dependencies:
mysql i386 5.0.77-3.el5 base 4.8 M
perl-DBI i386 1.52-2.el5 base 605 k
postgresql-libs i386 8.1.11-1.el5_1.1 base 196 k
Transaction Summary
================================================================================
Install 4 Package(s)
Update 0 Package(s)
Remove 0 Package(s)
Total download size: 7.2 M
Downloading Packages:
(1/4): mysql-5.0.77-3.el5.i386.rpm | 4.8 MB 00:01
(2/4): postgresql-libs-8.1.11-1.el5_1.1.i386.rpm | 196 kB 00:00
(3/4): perl-DBI-1.52-2.el5.i386.rpm | 605 kB 00:00
(4/4): dovecot-1.0.7-7.el5.i386.rpm | 1.7 MB 00:01
--------------------------------------------------------------------------------
Total 1.4 MB/s | 7.2 MB 00:05
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : perl-DBI 1/4
Installing : mysql 2/4
Installing : postgresql-libs 3/4
Installing : dovecot 4/4
Installed:
dovecot.i386 0:1.0.7-7.el5
Dependency Installed:
mysql.i386 0:5.0.77-3.el5 perl-DBI.i386 0:1.52-2.el5
postgresql-libs.i386 0:8.1.11-1.el5_1.1
Complete!
[root@station10 ~]#
OK,dovecot软件包就安装成功了。
现在我们启动下dovecot服务,
[root@station10 ~]#
[root@station10 ~]# service dovecot restart
Stopping Dovecot Imap: [ OK ]
Starting Dovecot Imap: [ OK ]
[root@station10 ~]#
OK,服务启动成功了,
Dovecot服务的配置文件在/etc/dovecot.conf,
在这个文件里有一行,
#protocols = imap imaps pop3 pop3s
代表dovecot服务默认侦听在这些协议上面,
[root@station10 ~]#
[root@station10 ~]# netstat -tulnp | grep 110
tcp 0 0 :::110 :::* LISTEN 14010/dovecot
[root@station10 ~]# netstat -tulnp | grep 143
tcp 0 0 :::143 :::* LISTEN 14010/dovecot
[root@station10 ~]# netstat -tulnp | grep 995
tcp 0 0 :::995 :::* LISTEN 14010/dovecot
[root@station10 ~]# netstat -tulnp | grep 993
tcp 0 0 :::993 :::* LISTEN 14010/dovecot
[root@station10 ~]#
默认情况下,我们不需要做任何配置,dovecot服务就可以正常工作了。
在图像界面下,可以Thunderbird工具进行客户端工具的测试,
在字符界面下面,我们通常使用mutt工具进行客户端的测试,
Mutt user1@station20.example.com
发送邮件
Mutt –f pop://user1@station20.example.com
使用pop协议来接收邮件
为了保证邮件的传输安全,我们需要使用加密的pop3s协议。
首先生成公钥,
[root@station10 ~]#
[root@station10 ~]# cd /etc/pki/tls/
[root@station10 tls]# ls
cert.pem certs misc openssl.cnf private
[root@station10 tls]# cd certs/
[root@station10 certs]# ls
ca-bundle.crt make-dummy-cert Makefile
[root@station10 certs]#
在这个目录下面有个Makefile文件,这个文件是系统帮我们开发的,当我们使用make命令生成公钥的时候,系统会自动的调用这个文件,大大的简化了用户的操作。
现在我们来生成公钥
[root@station10 certs]#
[root@station10 certs]# make dovecot.pem
umask 77 ; \
PEM1=`/bin/mktemp /tmp/openssl.XXXXXX` ; \
PEM2=`/bin/mktemp /tmp/openssl.XXXXXX` ; \
/usr/bin/openssl req -utf8 -newkey rsa:1024 -keyout $PEM1 -nodes -x509 -days 365 -out $PEM2 -set_serial 0 ; \
cat $PEM1 > dovecot.pem ; \
echo "" >> dovecot.pem ; \
cat $PEM2 >> dovecot.pem ; \
rm -f $PEM1 $PEM2
Generating a 1024 bit RSA private key
..++++++
..................................++++++
writing new private key to '/tmp/openssl.X20115'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [GB]:CN
State or Province Name (full name) [Berkshire]:hubei
Locality Name (eg, city) [Newbury]:wuhan
Organization Name (eg, company) [My Company Ltd]:redhat
Organizational Unit Name (eg, section) []:IT
Common Name (eg, your name or your server's hostname) []:station10.example.com
Email Address []:
[root@station10 certs]#
[root@station10 certs]# ls
ca-bundle.crt dovecot.pem make-dummy-cert Makefile
[root@station10 certs]#
OK,现在这个dovecot.pem这个公钥就生成了。
现在我们在这把公钥复制一份到私钥的目录,
[root@station10 ~]#
[root@station10 ~]# cd /etc/pki/tls/
[root@station10 tls]# ls
cert.pem certs misc openssl.cnf private
[root@station10 tls]# cd private/
[root@station10 private]# ls
[root@station10 private]# cp /etc/pki/tls/certs/dovecot.pem .
[root@station10 private]# ls
dovecot.pem
[root@station10 private]#
因为使用的是对称算法,所以公钥和私钥是同一把钥匙。
现在我们如何去调用这个钥匙呢,
现在我们还需要去编辑/etc/dovecot.conf这个文件。
ssl_cert_file = /etc/pki/tls/certs/dovecot.pem
ssl_key_file = /etc/pki/tls/private/dovecot.pem
OK,把这两行的注释给取消,并改变它的公钥与私钥的路径。
现在我们启动下dovecot服务,
[root@station10 ~]#
[root@station10 ~]# service dovecot restart
Stopping Dovecot Imap: [ OK ]
Starting Dovecot Imap: [ OK ]
[root@station10 ~]#
OK,服务启动成功了,测试下。
现在我们来测试下邮件服务器是否可以通过这把钥匙来加密呢,
[root@station10 ~]#
[root@station10 ~]# mutt -f pops://user1@station10.example.com
可以看到,这里面就有我们刚才输入的信息。
它现在询问我们是否接收这个证书呢,r是不接收,o是接收。
我们选择接收,接收完成后,
接收成功后,需要我们输入这个邮箱用户的密码,
OK,现在我们就可以看到这个邮件的内容了。
这样就实现了邮件的接收加密。
关于Linux下面配置dovecot服务的讨论就到这里了。