如何设置DavMail Exchange网关的Debian 7 VPS

介绍

如果您的工作场所或学校使用Microsoft Exchange电子邮件,您可能希望从不支持Exchange协议的电子邮件客户端访问您的Exchange电子邮件帐户。

DavMail提供了解决方案,翻译的Microsoft Exchange打开像POP,IMAP,SMTP,CalDAV的,使用CardDAV和LDAP协议。

安装

Davmail需要一些额外的依赖才能正常工作。 使用apt安装它们:

sudo apt-get install default-jre libswt-gtk-3-java libswt-cairo-gtk-3-jni

该项目DavMail使得Debian软件包可以在其网站上通过[SourceForge上( http://sourceforge.net/projects/davmail/files/davmail/ )。

使用wget下载最新的Debian软件包:

wget http://sourceforge.net/projects/davmail/files/davmail/4.4.1/davmail_4.4.1-2225-1_all.deb

然后,使用dpkg安装DavMail:

sudo dpkg -i davmail_4.4.1-2225-1_all.deb

基本配置

默认情况下,DavMail的配置文件不存在。 使用您喜欢的文本编辑器创建一个:

sudo nano /etc/davmail.properties

将DavMail设置为服务器模式,因此不需要X11:

davmail.server=true

启用远程模式,并将绑定地址设置为您的Droplet的IP地址或将其设置为空白:

davmail.allowRemote=true
davmail.bindAddress=

设置davmail.url到Outlook Web应用程序/ Outlook Web Access的URL,这通常是在结束/owa

davmail.url=https://yourcompany.com/owa

设置连接模式:

davmail.enableEws=auto

设置端口选项:

davmail.imapPort=993
davmail.smtpPort=465
davmail.ldapPort=636
davmail.popPort=995
davmail.caldavPort=8443

保存并关闭配置文件。

创建SSL证书

为了启用SSL加密,您将需要PEM格式的SSL证书和SSL私钥。 如果您从证书颁发机构购买了证书,那么您应该已经拥有您的证书和密钥。 如果是,请继续下面的配置SSL部分。 否则,您可以通过执行以下步骤生成自签名证书。

使用OpenSSL生成RSA密钥:

sudo openssl genrsa -out /usr/lib/ssl/private/davmail.key 2048

确保密钥由root所有并且权限已正确设置:

sudo chown root:root /usr/lib/ssl/private/davmail.key
sudo chmod 600 /usr/lib/ssl/private/davmail.key

现在,创建证书签名请求:

sudo openssl req -new -key /usr/lib/ssl/private/davmail.key -out /usr/lib/ssl/certs/davmail.csr

OpenSSL现在会问你几个问题。 唯一重要的字段是通用名 ,其中应设置将由您的电子邮件客户端访问您的Droplet的域名或IP地址(例如davmail.mydomain.com或123.123.123.123)。 其他字段可以保留默认值,只需按enter键或填充任何内容:

You are about to be asked to enter information that will be incorporated into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
    -----
Country Name (2 letter code) [XX]:US
State or Province Name (full name) []:New York
Locality Name (eg, city) [Default City]:New York City
Organization Name (eg, company) [Default Company Ltd]:Lolcats United
Organizational Unit Name (eg, section) []:Keyboard Cat Department
Common Name (eg, your name or your server's hostname) []:mydomain.com
Email Address []:me@mydomain.com

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

使用你的私钥签名的证书请求,设定到期日与-days参数:

sudo openssl x509 -req -signkey /usr/lib/ssl/private/davmail.key -in /usr/lib/ssl/certs/davmail.csr -out /usr/lib/ssl/certs/davmail.crt -days 365

使用上述设置,证书将在365天(一年)过期。

您现在有自己的SSL证书!

配置SSL

既然你有你的SSL证书,你必须将其转换为DavMail能够理解的格式。 以下示例将使用我们在上面生成的密钥和证书。 如果从证书颁发机构购买证书,然后使用这些文件代替davmail.keydavmail.crt

首先将您的证书和密钥文件与cat结合:

sudo -s cat /usr/lib/ssl/private/davmail.key /usr/lib/ssl/certs/davmail.crt > /usr/lib/ssl/certs/davmail.pem
exit

再次,设置权限,所以只有root可以访问密钥文件:

sudo chown root:root /usr/lib/ssl/certs/davmail.pem
sudo chmod 600 /usr/lib/ssl/certs/davmail.pem

现在将您的组合键和证书转换为pkcs12文件:

sudo openssl pkcs12 -export -in /usr/lib/ssl/certs/davmail.pem -out /usr/lib/ssl/certs/davmail.p12 -name “davmail”

系统将提示您输入导出密码。 这不能是空白!

您必须设置密码或DavMail将无法正常工作。

设置权限:

sudo chown root:root /usr/lib/ssl/certs/davmail.pem
sudo chmod 600 /usr/lib/ssl/certs/davmail.pem

现在再次打开您的DavMail配置:

sudo nano /etc/davmail.properties

添加以下配置选项以通知DavMail您刚刚生成的pkcs12文件的位置和您设置的密码:

davmail.ssl.keystoreType=PKCS12
davmail.ssl.keystoreFile=/usr/lib/ssl/certs/davmail.p12
davmail.ssl.keyPass=password
davmail.ssl.keystorePass=password

davmail.ssl.keyPassdavmail.ssl.keystorePass应该应具有相同的值。 保存配置文件。

DavMail现在已配置为使用您的SSL证书。

启动DavMail

Debian包我们下载的eariler不包含init脚本,所以我们必须创建自己的。

使用您喜欢的文本编辑器创建一个新文件:

sudo nano /etc/init.d/davmail

将以下内容复制并粘贴到文件中:

#! /bin/sh
### BEGIN INIT INFO
# Provides:          davmail
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: DavMail Exchange gatway
# Description:       A gateway between Microsoft Exchange and open protocols.
    ### END INIT INFO

    # Author: Jesse TeKrony <jesse ~at~ jtekrony ~dot~ com>

    PATH=/sbin:/usr/sbin:/bin:/usr/bin
    DESC="Davmail Exchange gateway"
    NAME=davmail
    CONFIG=/etc/davmail.properties
    DAEMON=/usr/bin/$NAME
    DAEMON_ARGS="$CONFIG"
    PIDFILE=/var/run/$NAME.pid
    SCRIPTNAME=/etc/init.d/$NAME
    LOGFILE=/var/log/davmail.log

    # Exit if the package is not installed
    [ -x "$DAEMON" ] || exit 0

    # Read configuration variable file if it is present
    [ -r /etc/default/$NAME ] && . /etc/default/$NAME

    # Load the VERBOSE setting and other rcS variables
    . /lib/init/vars.sh

    # Define LSB log_* functions
    . /lib/lsb/init-functions

    #
    # Function that starts the daemon/service
    #
    do_start()
    {
        start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \
            || return 1
        start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- \
            $DAEMON_ARGS >> $LOGFILE 2>&1 &
        [ $? != 0 ] && return 2
        echo $! > $PIDFILE
        exit 0
    }

    #
    # Function that stops the daemon/service
    #
    do_stop()
    {
        start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE
        RETVAL="$?"
        [ "$RETVAL" = 2 ] && return 2.
        start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON
        [ "$?" = 2 ] && return 2
        rm -f $PIDFILE
        return "$RETVAL"
    }

    case "$1" in
      start)
        [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
        do_start
        case "$?" in
            0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
            2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
        esac
        ;;
      stop)
        [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
        do_stop
        case "$?" in
            0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
            2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
        esac
        ;;
      status)
           status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $?
           ;;
      restart|force-reload)
        log_daemon_msg "Restarting $DESC" "$NAME"
        do_stop
        case "$?" in
          0|1)
            do_start
            case "$?" in
                0) log_end_msg 0 ;;
                1) log_end_msg 1 ;; # Old process is still running
                *) log_end_msg 1 ;; # Failed to start
            esac
            ;;
          *)
            # Failed to stop
            log_end_msg 1
            ;;
        esac
        ;;
      *)
        echo "Usage: $SCRIPTNAME {start|stop|status|restart| force-reload}" >&2
        exit 3
        ;;
    esac

保存并关闭文件。

标记脚本可执行文件,启动服务,并在启动时启用它:

sudo chmod +x /etc/init.d/davmail
sudo service davmail start
sudo update-rc.d davmail defaults

客户端配置

现在服务器正在运行,您可以配置您的电子邮件客户端。 使用电子邮件客户端的“手动”选项创建新帐户。 IMAP和SMTP服务器都将是您的Droplet的域名或IP地址,具体取决于您在SSL证书上使用的通用名称。 IMAP和SMTP的用户名都将是您的电子邮件地址,没有域名。 例如:您的E-mail bob@yourcompany.com ,所以你的用户名是Bob。 确保IMAP和SMTP都设置为使用SSL / TLS,而不是STARTTLS。

您将收到来自您的电子邮件客户端的警告,因为您正在使用自签名证书。 在这种情况下接受证书是安全的,因为你是创建它的人。

雷鸟,Mac OSX上的具体指示,和iOS可在DavMail的网站

您现在应该能够使用您的Microsoft Exchange电子邮件帐户使用开放技术发送/接收电子邮件!

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏