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のインストール
-
qmail を以下より取得する.
ftp://ftp.jp.qmail.org/qmail/qmail-1.03.tar.gz
これを展開し,インストールする. インストールの手順は ここ の通りに行ってよい.
- 続いて 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など)に 転送する設定にする場合には,以下のようにメイルの受信はできない設定にする.
- [受信の停止]
/etc/inetd.conf を修正し,qmail-smtpd を停止する. - [From行を xxx@ccs.cla.kobe-u.ac.jp に書き換える]
/var/qmail/control/defaulthostにccs.cla.kobe-u.ac.jpを 以下のようにして記述する.# echo ccs.cla.kobe-u.ac.jp > /var/qmail/control/defaulthost # chmod 644 /var/qmail/control/defaulthost
- [メイルの配送をサーバに任せる]
/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
こんだけ.