POPとSMTPをSSL化する(qmail)

Ads

サーバ側

  • 既に tcpserver で qmail が起動されるように設定されているとします。

tcpserver を SSL 化する。

  • http://www.nrg4u.com/ から tcpserver SSL/TLS patch *1 をダウンロードする。
  • ucspi-tcp にパッチを当てて make する。
    tar xfz ucspi-tcp-0.88.tar.gz
    cd ucspi-tcp-0.88
    zcat ucspi-tcp-ssl-20020705.patch.gz | patch
    make
  • SSL 化された tcpserver を tcpserver-ssl という名前でコピーする。
    cp tcpserver /usr/local/bin/tcpserver-ssl

/service/qmail-smtpd-ssl を作る

  1. サービスディレクトリを作成する。
    mkdir -p /var/service/qmail-smtpd-ssl/log
    chown smtplog.nofiles /var/service/qmail-smtpd-ssl/log
  2. 起動スクリプトを作成する。
    1. まず既に動いている qmail-smtpd の起動スクリプトをコピーする。
      cp /var/service/qmail-smtpd/run /var/service/qmail-smtpd-ssl
      vi /var/service/qmail-smtpd-ssl/run
    2. 起動スクリプトを修正する。
      • tcpserver を tcpserver-ssl にする。
      • tcpserver のオプションに s を追加する。
      • tcpserver のオプションで SSL に使うサーバIDファイル(cert.pem)を指定する。
      • tcpserver の待ち受けポートを 465(smtps)にする。
        #!/bin/sh
        exec 2>&1
        exec env - PATH="/var/qmail/bin:/usr/local/bin:/usr/bin:/bin" \
         tcpserver-ssl -vsDRHl0 -c 40 -x ./tcp.cdb -u qmaild -g nofiles -n cert.pem 0 465 \
         pbs4q \
         qmail-smtpd
  3. サーバIDを作成する。
    cert.pem というファイル名でファイルが作成される。
    PEM1=/tmp/openssl.`date +%s`.$$.1
    PEM2=/tmp/openssl.`date +%s`.$$.2
    openssl req -newkey rsa:1024 -keyout $PEM1 -nodes -x509 -days 365 -out $PEM2
    cat $PEM1 >  cert.pem
    echo ""   >> cert.pem
    cat $PEM2 >> cert.pem
    rm -f $PEM1 $PEM2
    chmod 600 cert.pem
  4. その他ファイルを作成する。
    既にある qmail-smtpd のものを使うのが保守の面でも楽でよいと思う。
    cd /var/service/qmail-smtpd-ssl
    ln -s ../qmail-smtpd/Makefile .
    ln -s ../qmail-smtpd/tcp .
    ln -s ../qmail-smtpd/tcp.cdb .
    cd log
    ln -s ../../qmail-smtpd/log/run .
  5. サービスを有効にする。
    ln -s /var/service/qmail-smtpd-ssl /service

/service/qmail-pop3d-ssl を作る

  1. サービスディレクトリを作成する。
    mkdir -p /var/service/qmail-pop3d-ssl/log
    chown pop3log.nofiles /var/service/qmail-pop3d-ssl/log
  1. 起動スクリプトを作成する。
    基本的には smtps のときと同じ手順。
    1. まず既に動いている qmail-pop3d の起動スクリプトをコピーする。
      cp /var/service/qmail-pop3d/run /var/service/qmail-pop3d-ssl
      vi /var/service/qmail-pop3d-ssl/run
    2. 起動スクリプトを修正する。
      • tcpserver を tcpserver-ssl にする。
      • tcpserver のオプションに s を追加する。
      • tcpserver のオプションで SSL に使うサーバIDファイル(cert.pem)を指定する。
      • tcpserver の待ち受けポートを 995(pop3s)にする。
  2. サーバIDを作成する。
    qmail-smtpd-sslと同じ手順で作るか、もしくははコピーでよい。
  3. その他ファイルを作成する。
    既にある qmail-pop3d のものを使う。
    cd /var/service/qmail-pop3d-ssl/log
    ln -s ../../qmail-pop3d/log/run .
  4. サービスを有効にする。
    ln -s /var/service/qmail-pop3d-ssl /service

クライアント側

メーラがSSLに対応している場合

  • SSLが有効になるように設定する。

メーラがSSLに対応していない場合

  1. stoneをWindowsのサービスとしてインストールする
  2. stone.cfg で以下のようなトンネル設定を追加する。
    mail.kawaz.jp:995/ssl localhost:110 --
    mail.kawaz.jp:465/ssl localhost:25
  3. メーラのサーバ設定を以下のようにする。
    • POP3 localhost:110
    • SMTP localhost:25

コメント

  • tcpserverをIPv6対応にする、これと SSL パッチを一緒したのを作りたいよなぁ。 -- ずん 2003-07-31 (木) 18:10:52
  • こんばんは。はじめまして。ここの情報が大変参考になりました。ありがとうございます。事前にご連絡しなかったのですが、 http://gentoojp.sourceforge.jp/pukiwiki/index.php?%5B%5Bqmail%5D%5D#content_1_11 に、リンクを貼らせていただきました。 -- einguste? 2003-11-04 (火) 01:13:08
  • これも事前に確認すべきでしたが、サーバIDの作成の項目は、まるっきり同じです。問題ありましたら、すぐ修正します。 -- einguste? 2003-11-04 (火) 01:15:20
  • 参考になって幸いです。リンク許可(?)とか気にしないです。サーバIDの作成は openssl に付いてた Makefile を参考にしたメモです。 -- ずん 2003-11-19 (水) 16:28:24
  • ありがとうございます。リンクではなく、写しの形になっていたので、お断り入れたほうが良かったなと思った次第です。opensslのMakefileは、浅学のため気づきませんでした。 -- Einguste? 2003-11-21 (金) 15:37:02
  • この文章は、コピーし、改造して使ってよろしいですか ??? -- NV? 2003-12-13 (土) 11:46:38
    • 特に構いませんが、参考元としてリンクなどしておいてくれると嬉しいです。 -- ずん 2003-12-14 (日) 04:00:09
  • cd /usr/local/src/ucspi-tcp-0.88; make cert でサーバIDが作れました -- ぷよぷよ? 2004-07-16 (金) 07:51:10
    • ホントだ。ucspi-tcp に ssl パッチを当てると Makefile に cert が出来るんですね。こっちの openssl の使い方の方が簡単ですね。ありがとうございます。 -- 2004-07-16 (金) 18:22:21


*1 念のため添付ファイルにミラーしておいた

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2008-04-04 (金) 10:47:08 (3902d)