qmail 1.03 のインストール

SERVER

qmail-1.03 を Linux へインストールし、SMTP と POP3 が使えるように設定してみました。


qmail

qmail とは、http://www.jp.qmail.org/ でも歌われている通り、「安全確実で、信頼できて、高性能で、簡潔なメイル配送エージェント」 が売り文句になっているメールサーバです。

メールは各自のホームディレクトリへ Maildir 形式で保存されますので、アクセス権の問題や障害時の耐性の強化など、いろいろな効果が期待できるようです。

 

qmail のインストールには、若干多めの手順が必要です。

まず qmail をインストールする前に、qmail が使用するユーザとグループ、その他のソフトウェアのインストールを行います。

続いて qmail のインストールを行い、SMTP や POP3 といったメールサーバとのやり取りを行うソフトウェアのインストールを行います。

 

インストールの準備

以降の設定はすべて root 権限で行います。

 

まず、qmail が使うディレクトリを作成します。

mkdir /var/qmail

続いて qmail が利用するグループとユーザを登録します。以下の -u の後に続く数値は ”ユーザ ID”、-g に続く数値は ”グループ ID” ですので、必要に応じて変更してください。

groupadd -g 500 nofiles
groupadd -g 501 qmail

useradd -u 1000 -g nofiles -s /bin/true -d /var/qmail/alias alias
useradd -u 1001 -g nofiles -s /bin/true -d /var/qmail qmaild
useradd -u 1002 -g nofiles -s /bin/true -d /var/qmail qmaill
useradd -u 1003 -g nofiles -s /bin/true -d /var/qmail qmailp

 

useradd -u 1004 -g qmail -s /bin/true -d /var/qmail qmailq
useradd -u 1005 -g qmail -s /bin/true -d /var/qmail qmailr
useradd -u 1006 -g qmail -s /bin/true -d /var/qmail qmails 

というように、合計2グループ、7ユーザを登録します。

登録し忘れると、qmail のインストール中にエラーが発生するので気をつけてください。

 

qmail のインストール

qmail は http://www.jp.qmail.org/ からダウンロードすることが出来ます。FTP の場合は、ftp://ftp.jp.qmail.org/qmail/ から入手できます。

今回は qmail-1.03.tar.gz をダウンロードしました。

 

/usr/src/ ディレクトリへ移動して、そこに qmail-1.03.tar.gz をコピーします。

tar xvzf qmail-1.03.tar.gz

と入力すると、新しく qmail-1.03/ というフォルダが作られて、その中にファイルが展開されます。

cd qmail-1.03

として、qmail-1.03/ フォルダへ移動したら、

make setup check

と入力するとインストールが始まります。

 

インストールが完了したら、どのメールアドレスのメールを受け取るかを設定します。今回の場合、ez-net.jp としてみます。

./config-fast mail.ez-net.jp

と入力すると、自動的に設定ファイルを作成してくれます。

 

以上で qmail 自身のセットアップは完了です。後は、

csh -cf /var/qmail/boot/home &

と入力すればスタンバイ完了です。起動するたびに入力しなくてすむように、/etc/rc.d/rc.local のなかに、この1行を書き加えておくと便利です。

 

その他のツールの導入

まず、qmail に付属している qmail-pop3d を利用する上で、checkpassword というプログラムをインストールします。これは http://cr.yp.to/checkpwd.html より checkpassword をダウンロードすることが出来ます。

/usr/src/ へ checkpassword-0.90.tar.gz をダウンロードしたら、

tar xvzf checkpassword-0.90.tar.gz

として解凍した後、新たに出来上がった checkpassword-0.81/ というディレクトリに移動して、

make setup check

と入力することでインストールが完了します。

 

続いて tcpserver のインストールです。tcpserver は SMTP や POP3 の起動に利用します。

http://cr.yp.to/ucspi-tcp.html より、/usr/src/ ディレクトリへ ucspi-tcp-0.90.tar.gz をダウンロードします。

tar xvzf ucspi-tcp-0.90.tar.gz

と入力して展開し、出来上がった ucspi-tcp-0.90/ というディレクトリへ移動します。

make setup check

と入力するとインストールが開始されます。

 

SMTP と POP3 の設定

最後に、SMTP と POP3 の呼び出し方法を設定します。

 

設定には tcpserver を利用します。

まず、/etc/tcprules というフォルダを作成してそこへ移動します。

 

その中に smtp というファイルを作成して、以下のような内容を書き込みます。

192.168.0.:allow,RELAYCLIENT=""

これは、192.168.0.* という IP アドレスからの接続は許可して、その際にはメールのリレーを許可する( RELAYCLIENT="" ) という意味になります。

192.168.0.* 以外の IP アドレスから接続した場合には、SMTP への接続は可能ですが、RELAYCLIENT="" という設定はないため、メールのリレーは出来なくなります。

ほかの IP アドレスでもリレーを許可したい場合には、次の行に似たような方法で記述します。

 

つづいて pop3 というファイルを作成して、以下のように設定します。

192.168.0.:allow
:deny

これは 192.168.0.* の IP アドレスに関しては接続可能とし、それ以外の IP アドレスからの接続は拒否するという設定です。

これにより、外部からの POP3 接続を防ぐことが出来ます。

 

以上のルールファイルを作成したら、それを tcprules という命令を使って変換します。

 

/usr/local/bin/tcprules smtp.cdb smtp.tmp < smtp

/usr/local/bin/tcprules pop3.cdb pop3.tmp < pop3

 

と入力すると、smtp.cdb, pop3.cdb という2つのファイルが出来上がります。

 

あとは POP3 と SMTP を動かせば設定は完了ですが、そのまえに既に動いているのがないかを確認します。

/etc/inetd.conf ファイルを開いて、その中の smtp, pop3 の行がコメントアウトされているかを確認します。

コメントアウトされていないと、すでにほかの SMTP や POP3 が動いている可能性があります。

 

その場合は、/etc/inetd.conf の smtp と pop3 の行の先頭に # をつけてコメントアウトした後、コマンドラインから、

kill -HUP `cat /var/run/inetd.pid`

と入力して inetd を再起動します。

 

起動する準備が整ったところで、どちらでもかまいませんが、まずは smtp を起動します。

/usr/local/bin/tcpserver -x /etc/tcprules/smtp.cdb -v -u 1001 -g 500 0 smtp /var/qmail/bin/qmail-smtpd 2>&1 | /var/qmail/bin/splogger smtpd 3 &

と入力します。長いですがこれを1行で指定します。

-u と -g の後の数値は、【第2節】 で設定したユーザとグループの ID ですので、この例とは異なる ID を利用している方は気をつけてください。

 

pop3 も1行で次のように入力します。

/usr/local/bin/tcpserver -x /etc/tcprules/pop3.cdb -v 0 pop3 /var/qmail/bin/qmail-popup ez-net.jp /bin/checkpassword /var/qmail/bin/qmail-pop3d Maildir 2>&1 | /var/qmail/bin/splogger pop3d 3 &

ここの ez-net.jp は各自それぞれの適切なドメイン名に変えておいてください。

 

以上で設定完了です。

これらも再起動後に改めて設定する必要のないように rc.local へ記述しておくといいでしょう。

これでインストールは完了です。あとは設定ファイルを調整しなくてはなりませんが、そのあたりは後日改めて紹介することにします。