Murao Lab.
Graduate School of Intercultural Studies, Kobe University

qmailによるメイルサーバの設定

1. 概要

従来よりメイルサーバにはsendmailが多く利用されていたが,近年はpostfixやqmailへの移行が進んでいる. ここでは qmail の説明をする. おおざっぱに言って,qmailは以下の点でsendmailよりも優れている.

設定の簡単さ
sendmailではCFというツールを使い,メイルの配送ルールを決定 したが,それでも設定は容易ではなかった. qmailでは比較的簡単な設定ファイルを記述するだけでメイルの配送ルールを決定する ことができる.
セキュリティ
sendmailは元来,オープンなネットワーク環境で利用されてきた プログラムであり,セキュリティに関しては対処療法的にその穴を埋めてきた. しかし,これは巨大なプログラムであり,その穴を埋め尽くすのは容易ではない. qmailは元々,セキュリティに注意して作られたプログラムであり,クローズドな状態 からユーザが望む穴を空けていくといった感じで設定を行う. qmailのセキュリティを発見した人向けに懸賞金が設定されているが, 1997年3月にその懸賞金が設定されて以来,現在に至るまで,qmail にはセキュリティホールが発見されていない.

2. 準備

まず,自分の計算機で sendmail が動いているのであれば,これを停止する. 具体的には以下のように設定する.

  • FreeBSD では,/etc/rc.conf 内に sendmail_enable="NO"という記述がなければデーモンが起動する (/etc/defaults/rc.conf にデフォルトで sendmail_enable="YES" という記述がある). これを停止するには,/stand/sysinstall コマンドでそのように設定すれば良い.
  • 新しいRedHat系Linuxでは chkconfig -del sendmail を実行する. これは /etc/rc.d以下のsendmail起動スクリプトを削除する.
  • 古いRedHat系Linuxでは /etc/sysconfig/sendmail というファイルに DAEMON=YES という記述があれば デーモンが起動する.これを DAEMON=NO に書き換えれば良い.
  • IRIX では /etc/config/sendmail というファイルに on と書かれていればデーモンが起動するので, これを off に書き換えると良い.

また,不用意に sendmail が動作しないように,このプログラムの実行許可をなくすと良い. 具体的には

# chmod 0 /usr/lib/sendmail

とする.OSによっては sendmail の場所は /usr/sbin だったりするので確認すること. さらに,後ほど qmail のフロントエンドを sendmail の代わりにインストールする ので,元の sendmail の名前を変更しておく.

# mv /usr/lib/sendmail /usr/lib/sendmail.bak

3. qmailのインストール

  1. qmail を以下より取得する.

    ftp://ftp.jp.qmail.org/qmail/qmail-1.03.tar.gz

    これを展開し,インストールする. インストールの手順は ここ の通りに行ってよい.

  2. 続いて sendmail の代わりに qmail のフロントエンドを利用するように設定する. これには ここ の手順通りに行うと良い. ただし,フロントエンドを置く場所は各自の環境(元のsendmailの場所)に合わせて 変更すること. なお,メイルの受け取りは行わない場合は,inetd.confへの qmail-smtpdの設定の追加は行わない

4. インストールの確認

上記の通りに設定を行うと,/var/qmail/control 以下に次のようなファイルが 生成されているはずである. (ただしhostnameの部分は各計算機の名前に置き換えて読むこと)

# ls
defaultdomain   locals          me             plusdomain      rcpthosts

これには以下のように記述されている.

[defaultdomain]
cla.kobe-u.ac.jp

[locals]
localhost.cla.kobe-u.ac.jp
hostname.cla.kobe-u.ac.jp

[me]
hostname.cla.kobe-u.ac.jp

[plusdomain]
ac.jp

[rcpthosts]
localhost.cla.kobe-u.ac.jp
hostname.cla.kobe-u.ac.jp

5. qmailの設定

各クライアントではメイルを保管せず,全てスプールホスト(ccs.cla.kobe-u.ac.jpなど)に 転送する設定にする場合には,以下のようにメイルの受信はできない設定にする.

  1. [受信の停止]
    /etc/inetd.conf を修正し,qmail-smtpd を停止する.

  2. [From行を xxx@ccs.cla.kobe-u.ac.jp に書き換える]
    /var/qmail/control/defaulthostccs.cla.kobe-u.ac.jpを 以下のようにして記述する.
    # echo ccs.cla.kobe-u.ac.jp > /var/qmail/control/defaulthost
    # chmod 644 /var/qmail/control/defaulthost
    
  3. [メイルの配送をサーバに任せる]
    /var/qmail/control/localsから自分のホストの名前を除き,さらに /var/qmail/control/smtproutesに以下のように記述する.
    # echo :ccs.cla.kobe-u.ac.jp > /var/qmail/control/smtproutes
    # chmod 644 /var/qmail/control/smtproutes
    

こんだけ.

This page is administrated by