それではまず、qmailのインストール方法を記述します。
私は以下のようにしてメールサービスを運用していますが、
メールサービスについてのネットワーク的な知識は、メール管理に必須なので
この文書だけでなくWEBページなどにある様々な文書を読み、よく理解することが必要です。
特にqmailについてより詳しく知りたい場合は
http://www.jp.qmail.org/
などが良書といえるでしょう。
(上記ページはqmailの作者であるD. J. Bernstein氏のページの邦訳であり、
メールサービスの仕組みなどについても詳しく記述してあります。)
APOPに対応するため、qmailをインストールする前に二つのpatchをあてる必要があります。
それは
qmail-date-localtime.patch (qmailの時間をlocal
timeにあわせるためのpatch)
qmail-popup-auth.patch (qmailをAPOPに対応させるためのpatch)
です。
qmail-popup-auth.patchについてはcheckpwに同梱されていますので
特にダウンロードする必要はありません。
[qmailインストールのための下準備]
qmailでは、セキュリティ確保のため、MTAとしての機能を実現するための
各プロセスをできるだけ分割して処理しています。
それぞれのプロセス同士を別々のユーザで起動し、お互いのプログラムを信用しないことで
万一、一つのプログラムがクラックされても被害を最小限に抑えるよう設計されています。
そのため、それぞれのプロセスを管理するためのユーザをインストール前に
事前に用意しておく必要があります。
私の預かっている環境では、Linux系OSとFreeBSDが乱立しており、
ユーザの追加の仕方はlinuxとFreeBSDで異なっています。
それぞれについて以下に記述しておきます。
[LINUX系OSの場合]
# mkdir /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
[FreeBSDの場合]
# mkdir /var/qmail
# pw groupadd nofiles
# pw useradd alias -g nofiles -d /var/qmail/alias
-s /nonexistent
# pw useradd qmaild -g nofiles -d /var/qmail -s
/nonexistent
# pw useradd qmaill -g nofiles -d /var/qmail -s
/nonexistent
# pw useradd qmailp -g nofiles -d /var/qmail -s
/nonexistent
# pw groupadd qmail
# pw useradd qmailq -g qmail -d /var/qmail -s
/nonexistent
# pw useradd qmailr -g qmail -d /var/qmail -s
/nonexistent
# pw useradd qmails -g qmail -d /var/qmail -s
/nonexistent
基本的には、
グループnofilesに属するユーザとしてalias,qmaild,qmaill,qmailpを
グループqmailに属するユーザとしてqmailq,qmailr,qmailsを設定します。
これらユーザについては実際にログインできる必要がないユーザですので
ユーザ追加の時のオプションによってそれを設定しているようです。
以上、下準備が終わりましたら、qmailにpatchをあてましょう。
[qmailインストール前のpatchあて]
今、/usr/local/src/の下に
qmail-1.03.tar.gz
qmail-date-localtime.patch
checkpw-0.80.tar.gz
があるとします。
まず、ディレクトリを移動して各ファイルを展開してください。
#cd /usr/local/src/
#tar zxvf qmail-1.03.tar.gz
#tar zxvf checkpw-0.80.tar.gz
次にcheckpw-0.80の中にあるpatchを上のディレクトリにコピーしましょう。
#cp checkpw-0.80/qmail-popup-auth.patch /usr/local/src/
コピーしたら、qmail-1.03のディレクトリに移動してpatchをあてます。
# cd qmail-1.03
# patch -p1 < ../qmail-date-localtime.patch
# patch -p1 < ../qmail-popup-auth.patch
[Redhat Linux 9の場合](重要)
Redhat Linux 9では、glibcのアップグレードに伴い、そのままではコンパイルできなくなっています。
解凍したqmail-1.03ディレクトリ内のerror.hを開き、先頭の次の部分を表示してください。
/*---
#ifndef ERROR_H
#define ERROR_H
extern int errno;
(以下省略)
---*/
上記ファイル中
extern int errno
の部分のせいでエラーが起きています。
そこで、上記ファイルextern int errno;の部分を次のように書き換えてください
/*---
#ifndef ERROR_H
#define ERROR_H
#include <errno.h>
(以下省略)
---*/
以上の作業をすることにより、Redhat Linux9でもインストールが可能になります。
以上でpatchあては終了です。インストールに入ります。
[qmailのインストール]
DNSの設定がきちんとできていれば、qmailのインストールはきわめて簡単です。
#make setup check
#./config
以上でインストール終了です。
長くなりましたので次のページでその設定法について説明しましょう。