qmail

自宅サーバを構築するに当たって、外部-ISPの中継&独自ドメイン を目的にサーバを構築する。

FreeBSD 5シリーズ上で動作させる
SMTPの受付をする
受け付けたメールはローカル配送
POP/APOP/IMAPは動作させない(ISPへの配送)

使ったソースファイル

本体
 qmail-1.03.tar.gz
ローカルタイム化パッチ
 qmail-date-localtime.patch
接続IP認証tcpserver
 ucspi-tcp-0.88.tar.gz
tcpserver用データベース
 cdb-0.75.tar.gz
パスワード認証
 checkpassword-0.81.tar.gz
POP_BEFORE_SMTP
 pop5smtp.tar.gz
APOP認証
 checkpw-0.80.tar.gz

ユーザー、グループの登録

qmailの特徴として、各サーバは可能な限りroot権限を使わないようにしている。そのため、動作に必要なユーザーとグループを作る。

% pw groupadd nofiles
% pw groupadd qmail
% 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 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
	

グループファイル、パスワードファイルともに見て確認する。以前ここのスペルミスで失敗した経験あり。
uid gid ともに、一般ユーザーの値から離した方がかっこいい 3000番以上とか.また、ログインできないようにシェルを無効にしているか確認すること。

qmailをとってきて解凍し、パッチあてを行ってインストール qmail-1.03.tar.gz、qmail-date-localtime.patchを持ってくる。セキュリティに関するバグは今のところないので,機能向上のためのパッチがほとんど
2GB以上のSMTPセッションで落ちるバグが発見されたが,現在新版のリリースはない
2GB以下のSMTPである場合と次のSMTPセッションには問題がないため,修正は保留?

tar xvfz qmail-1.03.tar.gz 
cd qmail-1.03
patch < ../qmail-date-localtime.patch

make
make man
make setup
make check

標準ではバイナリ関係、配送キューは/var/qmail/にインストールされる。個人のメールはホームディレクトリに保存されるので、動作中は/var/の容量を圧迫しない

設定

qmail-1.03のソースファイルフォルダ内で下記のコマンドを実行する。

./config

自動的にDNSから情報をとってきて設定を行う。/var/qmail/control/にコントロールファイルが作成される。コントロールファイルがqmailのセキュリティ上重要である。確認すること.

qmailはrootあてのメールをデフォルトでrootに対して配送しない。おかしいように感じるがrootへのメールは管理者のアドレスに転送してしっかり見るべきであるという考えからそうなっている。

そこで/root/.qmail内で

hogehoge@example.com

として実ユーザに配送させること。

または、/var/qmail/aliasディレクトリ内部に~

touch .qmail-root

として、.qmail-rootと言うファイルを作成しておくという手もある(お勧めしないが)。これによって下記の処理が実行される。

root宛てに来たメールは

/var/log/alias内部の配送指示を確認し、 .qmail-root 内の指示で転送を行う。
しかし中は空っぽ
デフォルト動作として .qmail-rootが有るここにメールを蓄積する。

と言う動作を行う。Maildirがない場合はMaildir形式の蓄積はできずにエラーになる
Mailbox形式であればこの場に蓄積ファイルが作成される

続いて起動スクリプトとして、

/var/qmail/boot/home を /var/qmail/rc にコピー。

起動時にはこのスクリプトを実行すればよい このスクリプト内のqmail-start の引数は 標準のメール蓄積方法を指定する。 ./Mailbox か ./Maildir/ と書く。 蓄積方法は個人が ~/.qmail などで変更できる。あくまでデフォルトである。 標準的な ./Maildir/ を採用した。

起動スクリプトを走らせた後、 ps -aux |grep qmail とすると

qmails    305  0.0  0.5   836  476 con- I     4:27PM   0:00.07 qmail-send
qmaill    316  0.0  0.5   792  456 con- I     4:27PM   0:00.01 splogger qmail
root      317  0.0  0.4   792  364 con- I     4:27PM   0:00.01 qmail-lspawn ./Maildir/
qmailr    318  0.0  0.4   788  372 con- I     4:27PM   0:00.01 qmail-rspawn
qmailq    319  0.0  0.4   780  400 con- I     4:27PM   0:00.01 qmail-clean

となっていればよし。コンパクトなデーモンを複数動かすのがqmailの特徴

ここまでの設定ではサーバ内でのメールの送受信しかできない。 SMTPとPOP3の設定はこれから。


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: Sat, 11 Jun 2005 10:26:10 JST (4902d)