qmail + pop/imapのセッティング

せりか式 - Linux - サーバのセッティング - qmail + pop/imapのセッティング

qmail + pop/imap(wu-imap2002e)の設定メモです
以下の条件でインストールしたメモです

また、qmailをインストールするホストは、DNSにきちんと(正引き, 逆引き共に)登録されていることが前提になります

qmail 1.03のインストール

  1. https://cr.yp.to/qmail.htmlhttp://www.qmail.org/top.htmlからqmailの最新版をダウンロードする
  2. localtimeにあわせるパッチをダウンロードする
    ftp://ftp.nlc.net.au/pub/unix/mail/qmail/qmail-date-localtime.patch
  3. ダウンロードしたファイルを /usr/local/src/ に移動して解凍し、パッチを当てる
    $ mv qmail-1.03.tar.gz /usr/local/src
    $ mv qmail-date-localtime.patch /usr/local/src
    $ cd /usr/local/src
    $ tar xvzf qmail-1.03.tar.gz
    $ cd qmail-1.03
    $ patch -p1 < ../qmail-date-localtime.patch
  1. qmailの使用するディレクトリ/ユーザ/グループを作成/追加する
    めんどくさがりやさん用ユーザ/グループ追加スクリプト
    $ patch -p1 < ../qmail-date-localtime.patch
    $ su
    # mkdir -p /var/qmail
    # groupadd nofiles
    # useradd -g nofiles -d /var/qmail/alias -s /bin/false alias
    # useradd -g nofiles -d /var/qmail -s /bin/false qmaild
    # useradd -g nofiles -d /var/qmail -s /bin/false qmaill
    # useradd -g nofiles -d /var/qmail -s /bin/false qmailp
    # groupadd qmail
    # useradd -g qmail -d /var/qmail -s /bin/false qmailq
    # useradd -g qmail -d /var/qmail -s /bin/false qmailr
    # useradd -g qmail -d /var/qmail -s /bin/false qmails
  1. コンパイルしてインストール
    # useradd -g qmail -d /var/qmail -s /bin/false qmails
    # make setup
    # make check
    # ./config
もし、qmailをインストールするホストがDNSに登録されていない (Sorry, I couldn't find your host's canonical name in DNS.というエラーが出る) 場合は./configの代わりに以下を実行してください
    # ./config
    # ./config-fast ホスト名
  1. /var/qmail/control/*を編集する
    以下は、必要に応じて編集してください
    defaultdomain
      kis-lab.com
      serika -> serika@kis-lab.comのようにドメイン名が省略されたときに付加されるドメイン名です
      qmailをインストールしたホストの所属するドメイン名を書いておいてください
    plusdomain
      kis-lab.com
      ホスト名は書いてあるが、ドメイン名が省略されたときに付加されるドメイン名です
      serika@mail+ -> serika@mail.kis-lab.com のように+があったときに置換されます
      defaultdomainと同様に所属するドメイン名を書いておいてください
    locals
      kis-lab.com
      localhost
      qmailが受け取るメールのホスト/ドメイン名です
      そのホスト名だけではなく、ドメイン名もきちんと入れておかないとFQDN以外のメールを受け付けなくなるので注意
    rcpthosts
      kis-lab.com
      .kis-lab.com
      localhost
      メールの転送を許可するホストです
      とりあえず、localhost、自分のホスト名、所属するドメイン名だけ書いてあればいいかと思います
      実際には環境変数RELAYCLIENTで制御することの方が多いです
    me
      kis-lab.com
      qmailをインストールしたホスト名です
  1. エイリアスの設定
    rootやpostmaster宛のメールの転送を設定します
    転送は/var/qmail/aliasに.qmail-usernameというファイルを作ることで実装されます
    root, postmaster, mailer-daemon宛のメールがserikaに届くようにエイリアスをしています
    # ./config-fast ホスト名
    # echo "&serika@kis-lab.com" > .qmail-root
    # echo "&serika@kis-lab.com" > .qmail-postmaster
    # echo "&serika@kis-lab.com" > .qmail-mailer-daemon
  1. Maildirの用意
    自動では用意されないため手動で用意します
    # echo "&serika@kis-lab.com" > .qmail-mailer-daemon
    # /var/qmail/bin/maildirmake ~alias/Maildir
    # chown alias -R ~alias/Maildir
    # exit

tcpserverのインストール

ここで、qmailを動作させるためのtcpserverをインストールします

  1. http://www.qmail.org/top.htmlからucspi-tcpの最新版をダウンロードする
    http://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz *2003-10-20現在の最新版
  2. ダウンロードしたファイルを /usr/local/src/ に移動して解凍する
    # exit
    $ mv ucspi-tcp-0.88.tar.gz /usr/local/src
    $ cd /usr/local/src
    $ tar xvzf ucspi-tcp-0.88.tar.gz
    $ cd ucspi-tcp-0.88
  1. コンパイルしてインストール
    $ cd ucspi-tcp-0.88
    $ su
    # make setup
    # make check
  1. smtp用の設定ファイルとデータベース(cdb)の作成
    ローカルネットワークとホスト自身からのsmtpを許可
    # make check
    # vi /usr/local/etc/smtprule
    # /usr/local/bin/tcprules /usr/local/etc/smtprule.cdb /usr/local/etc/smtprule.tmp < /usr/local/etc/smtprule
   
    smtprule
        192.168.0.:allow,RELAYCLIENT=""     # RELAYCLIENTが設定されているとqmailは無条件でsmtpを許可します
        127.:allow,RELAYCLIENT=""
  1. qmailの起動用ファイルの編集
    # chown alias -R ~alias/Maildir
    # cp /var/qmail/boot/home /var/qmail/rc
    # vi /var/qmail/rc
    # vi /etc/rc.d/init.d/qmail
   
    rc変更前
        qmail-start ./Mailbox splogger qmail
    rc変更後
        qmail-start ./Maildir/ splogger qmail
   
    /etc/rc.d/init.d/qmail
        #!/bin/sh
        PATH=/var/qmail/bin:/usr/local/bin:/bin:/usr/bin
       
        [ -f /var/qmail/rc ] || exit 0
       
        case "$1" in
          start)
                # Start daemons.
                echo "Starting qmail:"
                csh -cf '/var/qmail/rc &'
                tcpserver -v -u `id -u qmaild` -g `id -g qmaild` -x /usr/local/etc/smtprule.cdb \
                  0 smtp /var/qmail/bin/qmail-smtpd 2>&1 | /var/qmail/bin/splogger smtpd 3 &
                touch /var/lock/qmail
                ;;
          stop)
                # Stop daemons.
                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: qmail {start|stop}"
                exit 1
        esac
   
        exit 0
  1. qmailの起動
    # vi /etc/rc.d/init.d/qmail
    # /etc/rc.d/init.d/qmail start
    # exit
自動起動はお好みで設定してください

imap(imap-2002e)のインストール

ここでは,UW-IMAPDてんこもり拡張パック(imap-2002-qmav.6)を入れることにします

  1. UW-IMAPD extensions から最新版を落としてくる
  2. ダウンロードしたファイルを /usr/local/src/ に移動して解凍する
    # exit
    $ mv imap-2002-qmav.6.tar.gz /usr/local/src
    $ tar xvzf imap-2002-qmav.6.tar.gz
    $ cd imap-2002-qmav-6
  1. コンパイル
    Makefileの中からインストールするシステムの名前を調べてオプションにする
    Linuxの場合,lnplrhsl4sl5slxのどれかになると思います
    $ cd imap-2002-qmav-6
    $ make lrh       Turbolinuxですが,lrhで通るのでlrhにしてしまってます
  1. バックアップしてから,インストール
    必要に応じてipop2d,ipop3d,imapdをコピーしてください
    $ make lrh
    $ su
    # mv /usr/sbin/ipop3d /usr/sbin/ipop3d.orig
    # cp ipopd/ipop3d /usr/sbin/
  1. POP before SMTPの設定
    Makefileを確認して,インストール
    その後,pop3-recordを適当に編集する
    後半にtcpserver用の設定があるので,前半を削除して後半のコメントをはずす
    # cp ipopd/ipop3d /usr/sbin/
    # cd APOPtools/
    # make install                  念のためMakefileのディレクトリの設定を確認してください
    # vi /usr/local/etc/pop-record  編集済みのファイル TCPREMOTEIPを意図的にコメントアウトしたままにしてあります
  1. pop3-ageを定期的に実行するようにcronに設定
    */5 * * * * /usr/local/etc/pop3-age
    とか書いておくと5分おきに実行します
    # vi /usr/local/etc/pop-record
    # crontab -e
  1. xinetdの設定をして,再起動
    # crontab -e
    # vi /etc/xinetd.d/pop3           こんな感じ
    # /etc/rc.d/init.d/xinetd restart
    # exit

接続できない場合

接続できるけどパスワードが通らない場合


トップへ