Thứ ba, 18/03/2014 | 00:00 GMT+7

Cách thiết lập một cổng trao đổi DavMail trên VPS Debian 7

Nếu nơi làm việc hoặc trường học của bạn sử dụng Microsoft Exchange cho E-mail, bạn có thể cần truy cập account E-mail Exchange của bạn từ các client E-mail không hỗ trợ giao thức Exchange.

DavMail cung cấp một giải pháp, dịch Microsoft Exchange sang các giao thức mở như POP, IMAP, SMTP, Caldav, Carddav và LDAP.

Cài đặt

Davmail yêu cầu một số phụ thuộc bổ sung để hoạt động bình thường. Cài đặt chúng với apt:

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

Dự án DavMail cung cấp gói Debian trên trang web của họ thông qua [SourceForge ( http://sourceforge.net/projects/davmail/files/davmail/ ).

Download gói Debian mới nhất với wget:

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

Sau đó, cài đặt DavMail với dpkg:

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

Cấu hình cơ bản

Tệp cấu hình của DavMail không tồn tại theo mặc định. Tạo một cái bằng editor yêu thích của bạn:

sudo nano /etc/davmail.properties 

Đặt DavMail thành chế độ server để nó không yêu cầu X11:

davmail.server=true 

Bật chế độ từ xa và đặt địa chỉ liên kết thành địa chỉ IP của server của bạn hoặc đặt nó trống:

davmail.allowRemote=true davmail.bindAddress= 

Đặt davmail.url Outlook Web App / Outlook Web Access của bạn, URL này thường kết thúc bằng /owa :

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

Đặt chế độ kết nối của bạn:

davmail.enableEws=auto 

Đặt các tùy chọn cổng của bạn:

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

Lưu file cấu hình.

Tạo certificate SSL

Để bật mã hóa SSL, bạn cần certificate SSL và private key SSL ở định dạng PEM. Nếu bạn đã mua certificate từ Tổ chức phát hành certificate thì bạn đã có certificate và khóa của bạn . Nếu vậy, hãy tiếp tục đến phần Cấu hình SSL bên dưới. Nếu không, bạn có thể tạo certificate tự ký theo các bước sau.

Tạo khóa RSA với OpenSSL:

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

Đảm bảo rằng khóa được sở hữu bởi root và các quyền được đặt đúng cách:

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

Bây giờ, hãy tạo một yêu cầu ký certificate :

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

OpenSSL bây giờ sẽ hỏi bạn một số câu hỏi. Trường quan trọng duy nhất là Tên chung , phải được đặt thành domain hoặc địa chỉ IP của server của bạn sẽ được các ứng dụng client E-mail của bạn truy cập (ví dụ: davmail.mydomain.com hoặc 123.123.123.123). Các trường khác có thể được để ở chế độ mặc định bằng cách chỉ cần nhấn enter hoặc có thể được điền bằng bất kỳ thứ gì:

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 []: 

Ký certificate request bằng private key của bạn, đặt ngày hết hạn với đối số -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 

Với các cài đặt ở trên, certificate sẽ hết hạn sau 365 ngày (một năm).

Đến đây bạn đã có certificate SSL của riêng mình!

Cấu hình SSL

Đến đây bạn đã có certificate SSL của bạn , bạn sẽ phải chuyển đổi nó sang định dạng mà DavMail hiểu được. Các ví dụ sau sẽ sử dụng khóa và certificate mà ta đã tạo ở trên. Nếu bạn đã mua certificate từ Tổ chức phát hành certificate , thì hãy sử dụng các file đó thay cho davmail.keydavmail.crt .

Bắt đầu bằng cách kết hợp certificate và file khóa của bạn với cat:

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

, hãy đặt quyền để chỉ user root mới có thể truy cập file khóa:

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

Bây giờ hãy chuyển đổi khóa và certificate kết hợp của bạn thành file pkcs12:

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

Bạn sẽ được yêu cầu nhập password xuất. Điều này không thể để trống!

Bạn phải đặt password nếu không DavMail sẽ không hoạt động bình thường.

Đặt quyền:

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

Bây giờ hãy mở lại cấu hình DavMail của bạn:

sudo nano /etc/davmail.properties 

Thêm các tùy chọn cấu hình sau để thông báo cho DavMail về vị trí của file pkcs12 bạn vừa tạo và passphrase (password bảo vệ) bạn đã đặt:

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

Cả davmail.ssl.keyPassdavmail.ssl.keystorePass phải có cùng giá trị. Lưu file cấu hình.

DavMail hiện đã được cấu hình để sử dụng certificate SSL của bạn.

Khởi động DavMail

Gói Debian mà ta đã download eariler không chứa tập lệnh init, vì vậy ta phải tạo tập lệnh của riêng mình.

Tạo file mới bằng editor yêu thích của bạn:

sudo nano /etc/init.d/davmail 

Copy paste phần sau vào file :

#! /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 

Lưu và đóng file .

Đánh dấu tập lệnh có thể thực thi, khởi động dịch vụ và kích hoạt nó khi khởi động:

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

Cấu hình client

Bây giờ server đang chạy, bạn đã sẵn sàng cấu hình các client E-mail của bạn . Tạo một account mới, sử dụng các tùy chọn "thủ công" của ứng dụng email khách của bạn. Cả server IMAP và SMTP sẽ là domain hoặc địa chỉ IP của server của bạn, tùy thuộc vào những gì bạn đã sử dụng cho Tên chung trên certificate SSL của bạn . Tên user cho IMAP và SMTP đều sẽ là địa chỉ E-mail của bạn mà không có domain . Ví dụ: E-mail của bạn là bob@yourcompany.com , vì vậy tên user của bạn là bob. Đảm bảo cả IMAP và SMTP đều được đặt để sử dụng SSL / TLS chứ không phải STARTTLS.

Bạn sẽ nhận được cảnh báo từ các ứng dụng E-mail của bạn vì bạn đang sử dụng certificate tự ký. Có thể an toàn để chấp nhận certificate trong trường hợp này, vì bạn là người tạo ra nó.

Hướng dẫn cụ thể cho Thunderbird, Mac OSX và iOS có tại trang web của DavMail .

Bây giờ, bạn có thể gửi / nhận E-mail bằng account Microsoft Exchange E-mail của bạn bằng các công nghệ mở!


Tags:

Các tin liên quan