构建dovecot服务器
1.编译安装dovecot软件
- 下载源码包 dovecot-1.1.4.tar.gz
- 添加dovecot 运行用户
- 解包、配置、编译及安装
[root@mail ~]# useradd -M -s /sbin/nologin dovecot
[root@mail ~]# tar zxvf dovecot-1.1.4.tar.gz
[root@mail ~]# cd dovecot-1.1.4
[root@mail dovecot-1.1.4]# ./configure --sysconfdir=/etc --with-mysql
[root@mail dovecot-1.1.4]# make && make install
- --sysconfdir 设定的是配置文件的存放位置
- --with-mysql 设定dovecot支持MySQL数据库认证,这里提前加上为下章实现虚拟用户做准备
2.建立 dovecot.conf 配置文件
[root@mail ~]# cp /etc/dovecot-example.conf /etc/dovecot.conf
[root@mail ~]# vi /etc/dovecot.conf
……
ssl_disable = yes //禁用SSL机制
……
protocols = pop3 imap //支持邮局协议
……
disable_plaintext_auth = no //允许明文密码认证
……
mail_location = maildir:~/Maildir //邮件存储格式及位置
- pop3s使用995端口提供服务
- imaps使用993端口提供服务
3.创建PAM认证文件
[root@mail ~]# vi /etc/pam.d/dovecot
auth required pam_nologin.so
auth include system-auth
account include system-auth
session include system-auth
4.启动dovecot服务
[root@mail ~]# /usr/local/sbin/dovecot -c /etc/dovecot.conf
[root@mail ~]# netstat -anptl | grep dovecot
tcp 0 0 :::110 :::* LISTEN 8672/dovecot
tcp 0 0 :::143 :::* LISTEN 8672/dovecot
- Dovecot使用PAM方式( Pluggable Authentication Module,可插拔认证模块)进行身份认证,以便识别并验证系统用户,通过认证的用户才允许从邮箱中收取邮件
- auth、account、session分别表示登录身份认证、帐号属性认证、登陆中的会话认证(打开文件、挂载设备等资源)
- required 表示此行记录中的认证必须通过,否则即认为认证失败
- include 表示包含其他文件中的认证配置(system-auth对应为/etc/pam.d/system-auth文件)
- 对于RPM方式安装的dovecot,会自动建立该PAM文件
- 使用“-c”选项可以指定所使用的配置文件的位置,如果使用默认的配置文件,则直接执行“dovecot”命令即可
- 特别说明的是dovecot软件包没有提供启动和关闭的服务控制脚本,所以关闭dovecot稍微有点麻烦,可首先执行dovecot命令获得正在运行的dovecot服务的进程号(或者查看/usr/local/var/run/dovecot/master.pid文件获得进程号),然后使用kill命令关闭
- 补充:官方的dovecot关闭脚本
#!/bin/sh
# master.pid is written to directory pointed by base_dir setting.
# /var/run/dovecot/ is a common location for it.
base_dir=`dovecot -a | grep ^base_dir: | sed 's/^[^:]*: //'`
kill `cat $base_dir/master.pid`
5.POP3收信测试:telnet localhost 110
[root@mail ~]# telnet localhost 110
Trying 127.0.0.1...
Connected to mail.localdomain (127.0.0.1).
Escape character is '^]'.
+OK Dovecot ready.
USER lisi
+OK
PASS 123456
+OK Logged in.
……
LIST
+OK 1 messages:
1 451
.
RETR 1
+OK 451 octets
Return-Path: <[email protected]>
X-Original-To: [email protected]
Delivered-To: [email protected]
Received: from mail.benet.com (mail.benet.com [127.0.0.1])
by mail.benet.com (Postfix) with SMTP id 6F24D148440
……
- telnet登录到邮件服务器的110端口,输入相关POP3命令,以[email protected]邮件帐户的身份查看接收到的邮件内容
- 登录验证过程发送的用户名、密码均使用明文
- postfix、dovecot的发信、收信都测试成功以后,一台简单的邮件服务器就算构建完成了