qmail 1.03 のインストール

メールサーバはなんと言っても qmail です。 セキュリティから言ってもメール配信能力から言っても qmail が一番です。 幸い Webminにもqmailを管理する仕組があります。



sendmailをアンインストール

Webminから システム/ソフトウェアパッケージ を開き インストール済みのパッケージ メニューから次のパッケージを削除します。

必要なソースファイルをダウンロード

次のファイルをダウンロードして全て /usr/local/src ディレクトリに入れます。
  1. qmailサイト から


  2. qmail用のローカルタイム表示パッチ
    qmailはデフォルトでは Recieved: フィールドがローカルタイム(JST)ではなく国際標準時間(GMT)になります。 これはこれで正解なのですが、やはりローカルタイム表示のほうがメールを整理しやすいです。


  3. 八上全弘さんのサイト から




qmail をインストール

  1. /var/qmail ディレクトリを作成します。
          # mkdir /var/qmail
    
  2. qmailが動作するために必要なユーザとグループを作成するため、次のコマンドを実行します。
          # groupadd -g 202 nofiles
          # groupadd -g 203 qmail
          # useradd -g nofiles -u 201 -d /var/qmail/alias alias
          # useradd -g nofiles -u 202 -d /var/qmail qmaild
          # useradd -g nofiles -u 203 -d /var/qmail qmaill
          # useradd -g nofiles -u 204 -d /var/qmail qmailp
          # useradd -g qmail -u 205 -d /var/qmail qmailq
          # useradd -g qmail -u 206 -d /var/qmail qmailr
          # useradd -g qmail -u 207 -d /var/qmail qmails
    
  3. qmailをインストールするため、次のコマンドを実行します。 この設定ではメールサーバ名は kita3.net になります。
          # cd /usr/local/src
          # tar xvzf qmail-1.03.tar.gz
          # cd qmail-1.03
          # patch -p1 < ../qmail-date-localtime.patch
          # make setup check
          # ./config-fast kita3.net
    
  4. /var/qmail/contrl ディレクトリにある defaultdomain, me, plusdomain の内容が全て以下のようになっているか確認します。
          kita3.net
    
  5. /var/qmail/contrl ディレクトリにある locals, rcpthosts の内容が全て以下のようになっているか確認します。 (おそらく、localhost の行は抜けていると思います。)
          localhost
          kita3.net
    
  6. root, postmaster, mailer-daemon宛てのメールに対するエイリアスを設定するため、次のコマンドを実行します。 この設定では root, postmaster宛てのメールは hiroshi@localhost に届きます。 .qmail-mailer-daemon を空にしておくと、mailer-daemon宛てのメールは送信者に戻ります。
          # cd ~alias
          # touch .qmail-root
          # touch .qmail-postmaster
          # touch .qmail-mailer-daemon
          # chmod 644 .qmail*
          # echo "&hiroshi" > /var/qmail/alias/.qmail-root
          # echo "&hiroshi" > /var/qmail/alias/.qmail-postmaster
    
  7. 従来の sendmailインタフェースのプログラムが動作可能になるように、qmail付属の sendmailコマンドへのソフトリンクを貼ります。 次のコマンドを実行します。
          # ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail
    
  8. manコマンドで qmailのマニュアルを参照できるよう /etc/man.config に MANPATH /var/qmail/man の行を追加します。
          # This file is also read by man in order to find how to call nroff, less, etc.,
          # and to determine the correspondence between extensions and decompressors.
          #
          # MANBIN                /usr/local/bin/man
          #
          # Every automatically generated MANPATH includes these fields
          #
          MANPATH /usr/man
          MANPATH /usr/local/man
          MANPATH /usr/X11R6/man
          MANPATH /usr/lib/perl5/man
          MANPATH /usr/local/apache/man
          MANPATH /var/qmail/man
    
  9. /var/qmail/rc という起動スクリプトを作成します。 次のコマンドを実行します。
          # cp /var/qmail/boot/home /var/qmail/rc
          # vi /var/qmail/rc
    
    メールボックスを Maildir形式にするので、./Mailbox となっているところを ./Maildir/ に書き換えます。
          #!/bin/sh
          
          # Using splogger to send the log through syslog.
          # Using qmail-local to deliver messages to ~/Mailbox by default.
          
          exec env - PATH="/var/qmail/bin:$PATH" \
          qmail-start ./Maildir/ splogger qmail
    
  10. ユーザ追加時に Maildir ができるようにします。 次のコマンドを実行します。
          # /var/qmail/bin/maildirmake /etc/skel/Maildir
          # echo "./Maildir/" > /etc/skel/.qmail
    


残りのモジュールをインストール

  1. checkpassword をインストールするため、次のコマンドを実行します。 checkpassword は POP3 を開く際のIDとパスワードチェックを行うモジュールです。
          # cd /usr/local/src
          # tar xvzf checkpassword-0.90.tar.gz
          # cd checkpassword-0.90
          # make
          # make setup check
    
  2. tcpserver をインストールするため、次のコマンドを実行します。 tcpserver はモジュール動作の TCP/IP ルールを管理します。
          # cd /usr/local/src
          # tar xvzf ucspi-tcp-0.88.tar.gz
          # cd ucspi-tcp-0.88
          # make
          # make setup check
    
  3. pbs4q をインストールするため、次のコマンドを実行します。 pbs4q は pop before smtp を行うためのモジュールです。 pop before smtp を導入すると、pop認証をしてから一定時間(10分間)だけ smtp が有効になります。 smtpにも認証を導入するということです。

          # cd /usr/local/src
          # tar xvzf pbs4q-0.2.1.tar.gz
          # cd /pbs4q
          # make
          # make install
    


tcpserver のルールを作成する

  1. viエディタを使って以下のような /etc/tcp.smtp.conf を作成します。 ことを意味します。
          192.168.1.:allow,RELAYCLIENT=""
          127.:allow,RELAYCLIENT=""
    
  2. 上記のルールを tcpserver が理解できる cdb形式の /etc/tcp.smtp.cdb に変換します。 次のコマンドを実行します。
          # tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp.conf
    


qmailシステム起動スクリプトを作成

  1. 次の起動スクリプト /etc/rc.d/init.d/qmail を作成します。 -u202 -g202 は qmaild の UID GID です。
          #!/bin/sh
          
          # for qmail
          csh -cf /var/qmail/rc &
          
          # for POP3
          /usr/local/bin/tcpserver -R -H -l0 -u0 -g0 -x /etc/tcp.smtp.cdb 0 pop3 \
          /var/qmail/bin/qmail-popup `/bin/hostname` \
          /bin/checkpassword \
          /usr/local/bin/pbs4q1 \
          /var/qmail/bin/qmail-pop3d Maildir &
          
          # for SMTP
          /usr/local/bin/tcpserver -R -H -l0 -u202 -g202 -x /etc/tcp.smtp.cdb 0 smtp \
          /usr/local/bin/pbs4q2_smtp \
          /var/qmail/bin/qmail-smtpd &
    
  2. そして次のコマンドを実行して、実行属性を付け加えます。
          # chmod +x /etc/rc.d/init.d/qmail
    


qmailをブートで自動起動にする

  1. 次のコマンドを実行して、qmailがランレベル2,3,4,5で起動するようにします。
          # ln -s /etc/rc.d/init.d/qmail /etc/rc.d/rc0.d/K30qmail
          # ln -s /etc/rc.d/init.d/qmail /etc/rc.d/rc1.d/K30qmail
          # ln -s /etc/rc.d/init.d/qmail /etc/rc.d/rc2.d/S80qmail
          # ln -s /etc/rc.d/init.d/qmail /etc/rc.d/rc3.d/S80qmail
          # ln -s /etc/rc.d/init.d/qmail /etc/rc.d/rc4.d/S80qmail
          # ln -s /etc/rc.d/init.d/qmail /etc/rc.d/rc5.d/S80qmail
          # ln -s /etc/rc.d/init.d/qmail /etc/rc.d/rc6.d/K30qmail
    
  2. システムを再ブートして、使ってクライアントPCのメーラーから、smtp と pop3 が問題なく動作することを確認します。



Webminから qmailを管理

Webmin から サーバ をクリックし、そこに表示される QMail Configuration アイコンをクリックします。 今後は Webminから各種設定を楽に管理することができます。