温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

linux系统中怎么安装dovecot

发布时间:2021-08-11 17:13:57 来源:亿速云 阅读:242 作者:Leah 栏目:系统运维

今天就跟大家聊聊有关linux系统中怎么安装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

看完上述内容,你们对linux系统中怎么安装dovecot有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注亿速云行业资讯频道,感谢大家的支持。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI