构建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的发信、收信都测试成功以后,一台简单的邮件服务器就算构建完成了

results matching ""

    No results matching ""