zoukankan      html  css  js  c++  java
  • linux下安装dovecot

    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后的用户名和密码:user1@example.comfoobar)
    235 2.7.0 Authentication successful

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

    Base64的方式有很多,最后我们再介绍一个使用Ruby进行编码的方法:

    inosin@mac:~ > ruby -rbase64 -e ‘puts Base64.encode64(“user1@example.comfoobar”)’
    AHVzZXIxQGV4YW1wbGUuY29tAGZvb2Jhcg==

    inosin@mac:~ > ruby -rbase64 -e ‘puts Base64.encode64(“user1@example.com”)’
    dXNlcjFAZXhhbXBsZS5jb20=

    inosin@mac:~ > ruby -rbase64 -e ‘puts Base64.encode64(“foobar”)’
    Zm9vYmFy

  • 相关阅读:
    Apache Tomcat开机后台启动
    android res文件夹下面的 values-v11 、 values-v14
    view.performClick()触发点击事件
    android Java BASE64编码和解码一:基础
    Android 正则表达式
    Android 中的Json解析工具fastjson 、序列化、反序列化
    Android 5中不同效果的Toast
    Android 中的编码与解码
    Android Http请求框架二:xUtils 框架网络请求
    Android-Universal-Image-Loader 框架使用
  • 原文地址:https://www.cnblogs.com/webnote/p/5736318.html
Copyright © 2011-2022 走看看