最終更新日 2004/12/3  戻る  483323 人 REMOTE = 38.103.63.59 REFERER =

★qmailの設定

設定方針

ダイナミックDNSでの使用
ダイナミックDNSのドメイン名 : yaguma.ath.cx , abc.zive.net
サーバ機のhostname : vine.localdomain (hostnameの設定に付いては別項参照)

smtpでの中継はlan内だけとする(外からはsmtpサーバを使用できない)
pop3の使用はlan内だけとする(外からはメールの着信を確認できない)
tcpserverを使用する(inetdもしくはxinetdは使用しない)
pop3dを使用する(他にはqpopperなどがあり)
Maildirを使用する(Mailboxは使わない)

0.用意するファイル

qmail-1.03.tar.gz
checkpw-1.00.tar.gz
ucspi-tcp-0.88.tar.gz
checkpassword-0.90.tar.gz
qmail-date-localtime.patch

上記は全て/usr/local/srcにあるものとする

1.インストールの準備

qmailの使うディレクトリおよびユーザを作る.

# 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
2.インストール

まずはパッチあて
# tar xzvf checkpw-1.00.tar.gz
# cd checkpw-1.00
# cp qmail-popup-auth.patch ../
# cd ..
# tar xzvf qmail-1.03.tar.gz
# cd qmail-1.03
# patch -p1 < ../qmail-date-localtime.patch <- ローカルタイムが使えるようにする
# patch -p1 < ../qmail-popup-auth.patch <- apopが使えるようにする
# make setup check <- qmailのインストール
# cd ..
# tar xzvf ucspi-tcp-0.88.tar.gz
# cd ucspi-tcp-0.88
# make setup check <- tcpserverのインストール
# cd ..
# tar xzvf checkpassword-0.90
# cd checkpassword-0.90
# make setup check <- pop3dのインストール
3.初期設定

DNSが自前である場合は./configだけでいいんですが,ダイナミックDNSを使っている場合には明示的にホスト名の設定をしてやる必要があります.
# cd /usr/local/src/qmail-1.03
# ./config-fast vine.localdomain
この操作により以下のファイルが/var/qmail/controlに作られます.

-rw-r--r-- 1 root root 17 Sep 21 18:07 defaultdomain
-rw-r--r-- 1 root root 31 Sep 21 18:43 locals
-rw-r--r-- 1 root root 17 Sep 21 18:07 me
-rw-r--r-- 1 root root 17 Sep 21 18:07 plusdomain
-rw-r--r-- 1 root root 31 Sep 21 18:43 rcpthosts

この中でlocalsとrcpthostsを以下の設定とします.(自分のドメインを書くだけ)
/var/qmail/control/locals
vine.localdomain
yaguma.ath.cx
abc.zive.net
/var/qmail/control/rcpthosts
vine.localdomain
yaguma.ath.cx
abc.zive.net
上記の設定では user1@yaguma.ath.cx も user1@abc.zive.net もuser1のホームディレクトリにメールは配信されてしまいます.これを違うものとしたい場合には仮想ドメイン機能を使います.仮想ドメインを使いたい場合は,virtualdomainsファイルを設定する事.

4.エイリアスの登録

管理者宛メールの設定
# cd /var/qmail/alias
# touch .qmail-postmaster
# touch .qmail-daemon
# touch .qmail-root
# chmod 644 .qmail*

/var/qmail/aliasの所有者をaliasにします

# chown -R alias /var/qmail/alias

管理者をuser@yaguma.ath.cxとします

# echo user@yaguma.ath.cx > /var/qmail/alias/.qmail-postmaster
# echo user@yaguma.ath.cx > /var/qmail/alias/.qmail-daemon
# echo user@yaguma.ath.cx > /var/qmail/alias/.qmail-root
これで管理者宛メールはuser@yaguma.ath.cxに配達されます.

5.tcpserverの設定

/etc/tcp.smtpというファイルを作成.
/etc/tcp.smtp
192.168.1.:allow,RELAYCLIENT=""
127.:allow,RELAYCLIENT=""
tcpserver用のデータベースファイルを作成

# /usr/local/bin/tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp

これでデータベースファイル,/etc/tcp.smtp.cdbが作成される.

/etc/tcp.pop3というファイルを作成.
/etc/tcp.pop3
192.168.1.:allow
127.:allow
:deny
tcpserver用のデータベースファイルを作成

# /usr/local/bin/tcprules /etc/tcp.pop3.cdb /etc/tcp.pop3.tmp < /etc/tcp.pop3

これでデータベースファイル,/etc/tcp.pop3.cdbが作成される.

6.Maildirの設定
# cd /var/qmail/boot
# cp home ../rc
/var/qmail/rcの中の./Mailboxを./Maildir/に変更する.

メールを使用するユーザを作った場合そのディレクトリには
.qmailとMaildirがなくてはいけません.

その自動生成をするために以下のコマンドを設定しておきましょう.
# /var/qmail/bin/maildirmake /etc/skel/Maildir
# echo ./Maildir/ > /etc/skel/.qmail
これでユーザを作成した時.qmailとMaildirが自動生成されます.

7.sendmail wrapperの使用

qmailとsendmailの互換性を保つため以下のコマンドを設定しておく.
sendmailがあるなら削除しておく.
# ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail
# ln -s /var/qmail/bin/sendmail /usr/lib/sendmail
8.自動起動をするため以下のファイルを作成する.
/etc/rc.d/init.d/qmail

#!/bin/sh
#
# qmail This shell script takes care
# of starting and stopping qmail.
#
# chkconfig: 2345 80 30
# description: Starts and stops qmail.

# Source function library.
. /etc/rc.d/init.d/functions

# Source networking configuration.
. /etc/sysconfig/network

# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 0

# See how we were called.
case "$1" in
start)
echo -n "Starting qmail: "

# Using splogger to send the log through syslog.
exec env - PATH="/var/qmail/bin:$PATH" ¥
qmail-start ./Maildir/ splogger qmail &

# Start smtpd
/usr/local/bin/tcpserver -x /etc/tcp.smtp.cdb ¥
-v -u [qmaildのUID] -g [nofilesのGID] 0 smtp /var/qmail/bin/qmail-smtpd ¥
2>&1 | /var/qmail/bin/splogger smtpd 3 &

# Start pop3d
/usr/local/bin/tcpserver -x /etc/tcp.pop3.cdb -v 0 pop3 ¥
/var/qmail/bin/qmail-popup vine.localdomain ¥
/bin/checkpassword /var/qmail/bin/qmail-pop3d Maildir ¥
2>&1 | /var/qmail/bin/splogger pop3d 3 &

echo
touch /var/lock/subsys/qmail
;;
stop)
echo -n "Shutting down qmail: "
killproc qmail-send
killproc tcpserver
echo
rm -f /var/lock/subsys/qmail
echo ""
;;
restart)
echo -n "Restarting qmail: "
$0 stop
$0 start
echo "done."
;;
status)
status qmail
;;
flush_queue)
echo -n "Flush mail queue: "
killall -ALRM qmail-send
;;
*)
echo "Usage: qmail {start|stop|restart|status|flush_queue}"
exit 1
esac
exit 0

上記スクリプトは,chmod 700 しておく.
/etc/rc.d/init.d/qmailをchkconfigに登録する.

# chkconfig --add qmail
これで # service qmail restartなどとできるようになる.
上記のスクリプトではログは/var/log/maillogに入る.


Copyright 2002-2003 Kai All Rights Reserved & This site is Link Free 戻る