`
inosin
  • 浏览: 90974 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Dovecot配置笔记

    博客分类:
  • mail
阅读更多
Dovecot是一个开源的,为Linux/Unix-like系统提供IMAP,POP3服务的软件。主要是为了安全产生的,不管大小应用,Dovecot都是一个非常优秀的选择。它非常快,配置简单,不需要专业的管理员,而且它也非常节省内存。

以上是来自http://www.dovecot.org/官方的介绍。

下面我们来纪录记录一下它的安装:
这里我使用了CentOS系统自带的yum进行安装,安装非常简单,只需要一个包:dovecot
# yum install dovecot
就一切都搞定了

它的主要配置文件也只有一个,位于 /etc/dovecot.conf

base_dir = /var/run/dovecot/   # dovecot运行目录
protocols = pop3 pop3s    # 使用协议
listen = *   # 监听连接进来的ip地址,* => 所有的IPV4,[::] => 所有的IPV6
disable_plaintext_auth = no
log_path = /var/log/dovecot.log   #日志文件位置
info_log_path = /var/log/dovecot-info.log   # debug信息
log_timestamp = "%Y-%m-%d %H:%M:%S " 
ssl_disable = yes
mail_location = maildir:/var/vmail/%u    #用户的邮件目录位置,这里使用maildir方式存储
mail_privileged_group = mail
protocol imap {
}
  
protocol pop3 {
  pop3_uidl_format = %08Xu%08Xv
}
protocol lda {
  postmaster_address = postmaster@example.com
}
auth_verbose = yes  # 认证详细日志
auth_debug = yes     # 认证的debug信息打开,可以显示出SQL查询语句,正常后可关闭
auth_debug_passwords = yes   #可以显示密码失败的详细信息,正常后可关闭
auth default {
  mechanisms = plain login   #认证机制
  passdb pam {
  }
  passdb passwd-file {
    args = /etc/dovecot/passwd   #密码文件
  }
  userdb passwd {
  }
  userdb static {
    args = uid=vmail gid=vmail home=/var/vmail/%u    #这里的uid和gid需要可以访问/home/vmail邮箱目录
  }
  user = root
  socket listen {
    client {
      path = /var/spool/postfix/private/auth-client    #postfix需要连接到这个sock进行认证
      mode = 0660
      user = postfix
      group = postfix
    }
  }
}
dict {
}
plugin {
}


/etc/dovecot/passwd,可以使用明码或者是编码后的密码:
user1@example.com:{PLAIN}user1's password
user2@example.com:{PLAIN}user2's password

这里使用了明文密码,也可以使用加密后的密码:
dovecotpw -s ssha
Enter new password: foo
Retype new password: foo
{SSHA}dZ9TYI7DTM+J558QUBRAIMd/WCOoFGeU

在 /etc/dovecot/passwd
joe:{SSHA}dZ9TYI7DTM+J558QUBRAIMd/WCOoFGeU


以上介绍了帐号使用文件存储的方式,下面再介绍一下使用mysql数据库进行帐号存储,只需要修改auth default区块:
auth default {
  mechanisms = plain login
  passdb pam {
  }
  passdb sql {
    args = /etc/dovecot/dovecot-sql.conf
  }
  userdb passwd {
  }
  userdb sql {
    args = /etc/dovecot/dovecot-sql.conf
  }
  user = root
  socket listen {
    client {
      path = /var/spool/postfix/private/auth-client 
      mode = 0660
      user = postfix
      group = postfix
    }
  }
}

/etc/dovecot/dovecot-sql.conf
driver = mysql
connect = host=/tmp/mysql.sock dbname=postfix user=postfix 
password=mypassword
default_pass_scheme = MD5-CRYPT  # 如果使用postfixadmin管理,需要用这个加密方式
password_query = SELECT username as user, password from mailbox WHERE username = '%u'
user_query = SELECT maildir, 501 AS uid, 501 AS gid FROM mailbox WHERE username = '%u'  #这里uid和gid需要可以访问帐号邮件存储目录


就这么简单,配置完成了,下面我们来进行一下简单的测试:
telnet localhost 25
helo mail.xxx.net
250 mail.xxx.net
>>> auth login
334 VXNlcm5hbWU6
>>> dXNlcjFAZXhhbXBsZS5jb20=   (Base64后的用户名:user1@example.com)
334 UGFzc3dvcmQ6
>>> Zm9vYmFy   (Base64后的密码:foobar)
235 2.7.0 Authentication successful

用plain的方式认证
telnet localhost 25
220 mail.xxx.net ESMTP Postfix
>>> auth plain
334 
>>> AHVzZXIxQGV4YW1wbGUuY29tAGZvb2Jhcg==  (Base64后的用户名和密码:\0user1@example.com\0foobar)
235 2.7.0 Authentication successful

使用plain方式认证需要注意,用户名和密码需要一起进行编码,用\0作为分隔符。

Base64的方式有很多,最后我们再介绍一个使用Ruby进行编码的方法:
inosin@mac:~ > ruby -rbase64 -e 'puts Base64.encode64("\0user1@example.com\0foobar")'
AHVzZXIxQGV4YW1wbGUuY29tAGZvb2Jhcg==

inosin@mac:~ > ruby -rbase64 -e 'puts Base64.encode64("user1@example.com")'
dXNlcjFAZXhhbXBsZS5jb20=

inosin@mac:~ > ruby -rbase64 -e 'puts Base64.encode64("foobar")'
Zm9vYmFy

分享到:
评论

相关推荐

    邮件服务项目详细笔记文档

    安装Dovecot服务使用`yum -y install dovecot`,并编辑`/etc/dovecot/conf.d/10-auth.conf`,暂时禁用`disable_plaintext_auth = no`,以允许明文认证,这对于初步测试邮件收发功能是必要的。 在客户端1(192.168....

    我的POSTFIX安装笔记

    此外,你还需要配置其他相关服务,如Dovecot(提供IMAP/POP3访问)和Amavis(用于邮件过滤和防病毒)。完成所有配置后,重启POSTFIX服务以应用新的设置。 总结来说,安装POSTFIX涉及到安装依赖服务、创建和配置...

    jordansechler.me:我的毕业设计

    1小时2015-02-12 安装并主要配置 dovecot、postfix 和圆桌会议作为网络邮件解决方案。 5小时2015-02-13 邮件服务器正常工作, 重定向到我的实际电子邮件。 1小时30分2015-02-13 增加了对博客文章的编

    鸟哥的LINUX基础与服务器部分

    在压缩包文件中,"鸟哥"这个文件名可能代表的是该书的电子版或其他相关资料,如笔记、课件或练习题。通过这些资料,读者可以进一步巩固和实践书中所学知识,从而提高Linux技能。 总的来说,《鸟哥的Linux私房菜》是...

    Linux基础.zip

    压缩包中的文档如"鸟哥linux私房菜笔记"和"《鸟哥的Linux私房菜-基础篇》第四版"是经典的学习材料,涵盖了这些基础知识。 3. **Shell脚本**:Linux Shell是用户与操作系统交互的工具,而Shell脚本则是用Shell语言...

    mail_server_scripts:Ansible脚本,用于构建简单的邮件服务器

    ※笔记 服务器构建脚本构建具有非SSL通信的邮件服务器。 电子邮件帐户和密码也以纯文本和MD5保留。 我们不承担任何责任。 变更记录 2015-08-06 添加了一个脚本,用于将对Dovecot的访问失败的日志发送给管理员。 ...

    lfce-training

    5. **网络服务**:配置和管理常见的网络服务,如HTTP/HTTPS服务器(Apache或Nginx)、DNS服务器(Bind)、邮件服务器(Postfix或Dovecot)和FTP服务器。 6. **安全与防火墙**:设置和管理防火墙(如iptables或...

    OffiLive 免费电子邮件帐户-crx插件

     +操作可能是放弃邮件,存档,发送一个笔记。 - 电子邮件的签名。 - 可以使用计划配置的不在办公室或vacaction消息,以便计划回复的消息。 2)日历区域,其中包括以下功能: - 支持多个日历。 - 创建活动和任务 - ...

Global site tag (gtag.js) - Google Analytics