linux系统下安装dovecot方法
程序员文章站
2022-05-07 20:17:27
Dovecot 是一个开源的 IMAP 和 POP3 邮件服务器,支持 Linux/Unix 系统。本文主要为大家介绍关于linux系统下安装dovecot的方法... 16-11-23...
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
下一篇: 夏天适宜吃八种蔬菜 芹菜可清热解毒
推荐阅读
-
CentOS下安装mysql时忘记设置root密码致无法登录的解决方法
-
Linux下mysql 5.6.17 安装图文教程
-
Centos 6.5 下安装mysql 5.6.21的方法
-
Linux下mysql 5.6.17安装图文教程详细版
-
Linux 下 Python 实现按任意键退出的实现方法
-
Ubuntu与windows双系统下共用MySQL数据库的方法
-
Linux下安装mysql-5.6.12-linux-glibc2.5-x86_64.tar.gz
-
CentOS 7.0下使用yum安装mysql的方法详解
-
Debian 6.02 (squeeze)下编译安装 MySQL 5.5的方法
-
centos 7系统下编译安装 mysql5.7教程