vpopmailのインストール

vpopmailのインストールから、設定、運用方法について説明します。

vpopmailでは仮想ドメイン(virtual domain)、仮想ユーザー(virtual user)を作成出来るので、 正規のryouto.jpも仮想ドメインとして登録し、その仮想ドメインに仮想ユーザーを追加する。
こうする事で、システムアカウントを作成する事なく、メールアカウントを作成する事が可能になる。
vpopmailで運用する場合、全ての仮想ドメイン、仮想ユーザーのファイルは/home/vpopmailにまとめられる。

これからメールサーバー構築を検討していて、仮想ユーザーの作成やAPOPの使用を検討している場合には qmail+vpopmailの組み合わせて環境を構築します。qmail/vpopmailのインストールを参照して下さい。
既にqmailをインストールしていて、後はvpopmailをインストールするだけという人はこのページを参考にして下さい。
vpopmailのインストールは前提としてqmailがインストールされている必要があります。
qmailのインストールはqmailのインストールを参照して下さい。
  1. ソースコードのダウンロード
  2. vpopmailユーザーの作成
  3. make
  4. 仮想ドメイン(virtual domain)の作成
  5. 起動スクリプトの編集
  6. 補足
  1. ソースコードのダウンロード
    ソースコード vpopmail-5.3.16.tar.gzのダウンロードはhttp://www.bluedot.net/projects/sources/で可能です。 ダウンロードしたファイルは、/usr/local/srcへおいて下さい。


  2. vpopmailユーザーの作成
    vpopmail用のユーザーを作成します。
    ただし、このユーザーでログインしたり、コマンドを実行する必要がないので、ユーザー作成時に、 "-s /bin/false"を指定し、ログイン出来なくします。また、"-M"オプションを付加する事で、 dot-ファイルを作成しないようにします。
    グループID、ユーザーID共に721にしていますが、これはインストールする環境で適当なIDを割り振ってください。
    [root /root]# groupadd -g 721 vchkpw
    [
    root /root]# useradd -g vchkpw -u 721 vpopmail -M -s /bin/false
    [root /root]# mkdir /home/vpopmail

  3. make
    makeを行いますが、configureのオプションで、POPbeforeSMTPの指定とPOP認証後、何分間のあいだSMTPを使用出来るかを指定します(ここでは10分)。
    [root src]# tar zxvf vpopmail-5.3.16.tar.gz
    [
    root src]# cd vpopmail-5.3.16
    [
    root vpopmail-5.3.16]# ./configure --enable-roaming-users=y --enable-relay-clear-minutes=10 --enable-tcpserver-file=/home/vpopmail/etc/tcp.smtp --enable-default-domain=ryouto.jp
    [
    root vpopmail-5.3.16]# make
    [
    root vpopmail-5.3.16]# make install-strip
    続いてPOPBeforeSMTPの設定の為に、tcp.smtp.cdbファイルを作成します。このファイルはSMTPのアクセスコントロールに利用されます。
    tcp.smtp.cdbの作成には、まずtcp.smtpファイルを作成し、続けてtcprulesを実行します。
    /home/vpopmail/etc/tcp.smtp
    127.:allow,RELAYCLIENT=""
    /home/vpopmail/etc/tcp.smtp.cdbを作成するには次のコマンドを実行します。(qmailでtcpserverをインストールした時と同じです。)
    [root etc]# tcprules /home/vpopmail/etc/tcp.smtp.cdb /home/vpopmail/etc/tcp.smtp.tmp < /home/vpopmail/etc/tcp.smtp
    POP認証できたクライアント情報を定期的に削除(ここでは10分)する為にクーロンに削除スクリプトを登録します。以下の例では毎時間0,10,20,30,40,50分に削除スクリプトが起動します。
    [root etc]# crontab -e
    0,10,20,30,40,50 * * * * /home/vpopmail/bin/clearopensmtp 2>&1 > /dev/null

  4. 仮想ドメイン(virtual domain)の作成
    仮想ドメインを作成します。
    ここでは、正規ドメイン(ryouto.jp)を仮想ドメインとして作成しています。全てのメールアカウントをシステムアカウントと切り離して管理する方がセキュリティー的にはよいかと思ったので。
    [root etc]# cd /home/vpopmail/bin
    [
    root bin]# ./vadddomain ryouto.jp       <- ryouto.jpを仮想ドメインとして作成します。
    Please enter password for postmaster:  
    <- 管理者用パスワードを入力します
    enter password again:
    ドメインを追加した場合は一度qmailを再起動します。
    [root bin]# /etc/rc.d/init.d/qmail stop
    [root bin]# /etc/rc.d/init.d/qmail start
    続いてユーザーを作成します。
    [root bin]# ./vadduser hoge@ryouto.jp      <-作成するユーザーを指定します。
    Please enter password for hoge@ryouto.jp:
    <-パスワードを入力します。
    enter password again:
    パスワードの変更は次の通り行います。
    ./vpasswd hoge@ryouto.jp ****
    ついでに宛先不明メールもhoge@ryouto.jpに転送するように設定します。
    (一般的な運用通り宛先不明メールを差し戻す場合には、この設定は不要です。)
    /home/vpopmail/domains/ryouto.jp/.qmail-defaultファイルを編集します。
    | /home/vpopmail/bin/vdelivermail ' ' bounce-no-mailbox default設定ではバウンスさせます。
          ↓次の通り受け取り人を指定します。
    | /home/vpopmail/bin/vdelivermail '' hoge@ryouto.jp
    このページで使用しているwebmaster@ryouto.jpも実はメールアカウントを作成していません。でも上記設定のおかげで受け取る事が可能です。(webmaster@ryouto.jpは存在しない為、hoge@ryouto.jpに転送される。)
    正しい使い方ではないけど、管理者がが使う分にはこんな変な使い方もありかも。(^^;)
    正規にwebmaster@ryouto.jpを使用するには、alias(.qmail-webmaster)ファイルを/home/vpopmail/domains/ryouto.jpに作成し、hoge@ryouto.jpに転送するべきかな。
    [root bin]# vi /home/vpopmail/domains/ryouto.jp/.qmail-webmaster
    &hoge@ryouto.jp

    また、既存のメールアカウント宛に届いたメールを転送するにはアカウントのログインディレクトリにある.qmailファイルを次の通り訂正します。
    [root bin]# su - hoge
    [hoge hoge]$ vi ~/.qmail
    ./Maildir/
    &hoge@ryouto.jp  <--この1行を追加

  5. 起動スクリプトの編集
    /etc/rc.d/init.d/qmailファイルを次の通り指定します。
    #!/bin/sh

    [ -f /var/qmail/rc ] || exit 0
    PATH=$PATH:/var/qmail/bin:/usr/local/bin

    case "$1" in
        start)
            echo -n "Starting... qmail"
            csh -cf '/var/qmail/rc &'

            /usr/local/bin/tcpserver -H -R -l smtp.ryouto.jp -v \
            -x /home/vpopmail/etc/tcp.smtp.cdb -u 711 -g 710 0 smtp \
            /var/qmail/bin/qmail-smtpd 2>&1 | /var/qmail/bin/splogger smtpd 3 &

            /usr/local/bin/tcpserver -H -R -l smtp.ryouto.jp -v 0 pop3 \
            /var/qmail/bin/qmail-popup smtp.ryouto.jp /home/vpopmail/bin/vchkpw \
            /var/qmail/bin/qmail-pop3d Maildir 2>&1 | /var/qmail/bin/splogger pop3d 3 &

            touch /var/lock/qmail
            ;;
        stop)
            echo "Shutting down qmail."
            PID=`/bin/ps -aefw | grep qmail | awk '{print $2}'`
            if [ ! -z "$PID" ] ; then
            /bin/kill ${PID} 1> /dev/null 2>&1
            fi
            rm -f /var/lock/qmail
            ;;
        *)
            echo "Usage: "$0" {start|stop}"
            exit 1
    esac
    exit 0

  6. 補足
    qmailでの転送設定を行っている場合に注意が必要だ。
    /var/qmail/aliasディレクトリ下にある.qmail-rootファイルなどで転送の設定はユーザー名で指定している場合があるが(&user名)、この場合vpopmailでは受け取れない。
    vpopmailでは次の用にユーザー@ドメイン形式で指定する事。
    &hoge@ryouto.jp
以上でお終いです。


お問い合わせはwebmaster@ryouto.jpまで。
Copyright (C)2003 ryouto.jp. All Rights Reserved.