HowTos/ScalixサーバをSSL対応にする方法

出典: ScalixWikiJP

stunnel

ScalixのSMTPリレーサーバ、POP3サーバ、IMAPサーバ、LDAPサーバ、ual.remoteはそれ自身ではSSL対応していません。 そのため、Scalixではオープンソースのstunnelを利用してSSL/TLS対応を行います。ただし、STARTTLSには対応していません。

stunnelのパッケージは各Linuxディストリビューションで提供されています。 インストールされていない場合は、RPMなどのパッケージシステムを用いてインストールしてください。

ここではstunnelの設定ファイルと起動ファイルのサンプルを紹介します。

/etc/stunnel/stunnel.confの設定例

key = /etc/httpd/conf/ssl.key/server.key
cert = /etc/httpd/conf/ssl.crt/server.crt

[smtps]
accept = 465
connect = 192.168.0.19:25

[imaps]
accept = 993
connect = 143

[pop3s]
accept = 995
connect = 110

[scalixuals]
accept = 5767
connect = 5729

起動スクリプト/etc/init.d/stunnelのサンプル

#!/bin/sh
#
#   Startup/shutdown script for stunnel
#
#   Linux chkconfig stuff:
#
#   chkconfig: 345 90 10
#   description: stunnel
#

# Source function library.
if [ -f /etc/init.d/functions ] ; then
        . /etc/init.d/functions
elif [ -f /etc/rc.d/init.d/functions ] ; then
        . /etc/rc.d/init.d/functions
else
        exit 0
fi

DAEMON=/usr/sbin/stunnel

prog=stunnel

start () {
        echo -n $"Starting $prog: "

        # start daemon
        daemon $DAEMON
        RETVAL=$?
        echo
        [ $RETVAL = 0 ] && touch /var/lock/subsys/stunnel
        return $RETVAL
}

stop () {
        # stop daemon
        echo -n $"Stopping $prog: "
        killproc $DAEMON
        RETVAL=$?
        echo
        [ $RETVAL = 0 ] && rm -f /var/lock/subsys/stunnel
}

restart() {
        stop
        start
}

case $1 in
        start)
                start
        ;;
        stop)
                stop
        ;;
        restart)
                restart
        ;;
        status)
                status $DAEMON
        ;;
        *)

        echo $"Usage: $prog {start|stop|restart|status}"
        exit 1
esac

exit $RETVAL