热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

linux系统下安装dovecot方法

dovecot是一个开源的,为linuxunix-like系统提供imap,pop3服务的软件。dovecot是一个比较新的软件,由timosirainen开发,最初发

dovecot是一个开源的,为linux/unix-like系统提供imap,pop3服务的软件。dovecot 是一个比较新的软件,由 timo sirainen 开发,最初发布于 2002年7月。作者将安全性考虑在第一,所以 dovecot 在安全性方面比较出众。另外,dovecot 支持多种认证方式,所以在功能方面也比较符合一般的应用。

下面我们来纪录记录一下它的安装:

这里我使用了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需要可以访问帐号邮件存储目录

就这么简单,配置完成了,下面我们来进行一下简单的测试:


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


以上就是七九推小编为大家简单的讲解的inux下安装dovecot的方法,需要的用户快来试试吧,想了解更多精彩教程请继续关注七九推网站!




推荐阅读
  • 本文详细探讨了JDBC(Java数据库连接)的内部机制,重点分析其作为服务提供者接口(SPI)框架的应用。通过类图和代码示例,展示了JDBC如何注册驱动程序、建立数据库连接以及执行SQL查询的过程。 ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • 本文详细介绍了IBM DB2数据库在大型应用系统中的应用,强调其卓越的可扩展性和多环境支持能力。文章深入分析了DB2在数据利用性、完整性、安全性和恢复性方面的优势,并提供了优化建议以提升其在不同规模应用程序中的表现。 ... [详细]
  • 深入解析Android自定义View面试题
    本文探讨了Android Launcher开发中自定义View的重要性,并通过一道经典的面试题,帮助开发者更好地理解自定义View的实现细节。文章不仅涵盖了基础知识,还提供了实际操作建议。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • Explore a common issue encountered when implementing an OAuth 1.0a API, specifically the inability to encode null objects and how to resolve it. ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 本文基于刘洪波老师的《英文词根词缀精讲》,深入探讨了多个重要词根词缀的起源及其相关词汇,帮助读者更好地理解和记忆英语单词。 ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • 本文介绍了一款用于自动化部署 Linux 服务的 Bash 脚本。该脚本不仅涵盖了基本的文件复制和目录创建,还处理了系统服务的配置和启动,确保在多种 Linux 发行版上都能顺利运行。 ... [详细]
  • 基于KVM的SRIOV直通配置及性能测试
    SRIOV介绍、VF直通配置,以及包转发率性能测试小慢哥的原创文章,欢迎转载目录?1.SRIOV介绍?2.环境说明?3.开启SRIOV?4.生成VF?5.VF ... [详细]
  • 本文介绍如何在现有网络中部署基于Linux系统的透明防火墙(网桥模式),以实现灵活的时间段控制、流量限制等功能。通过详细的步骤和配置说明,确保内部网络的安全性和稳定性。 ... [详细]
  • Docker的安全基准
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 数据管理权威指南:《DAMA-DMBOK2 数据管理知识体系》
    本书提供了全面的数据管理职能、术语和最佳实践方法的标准行业解释,构建了数据管理的总体框架,为数据管理的发展奠定了坚实的理论基础。适合各类数据管理专业人士和相关领域的从业人员。 ... [详细]
  • 本文详细介绍了Java中org.eclipse.ui.forms.widgets.ExpandableComposite类的addExpansionListener()方法,并提供了多个实际代码示例,帮助开发者更好地理解和使用该方法。这些示例来源于多个知名开源项目,具有很高的参考价值。 ... [详细]
author-avatar
我是你的小pig的美丽家园
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有