●導入サーバ
Red Hat Linux 7.3 2.96-110
Intel Celeron (Mendocino) stepping 05
Memory: 524288k
●ネットワークの基本設定
ローカルIP
192.168.0.190
ダイナミックDNS設定
ddnsname.dyndns.biz
「Enable Wildcard」にチェックを入れる。
これによって、mail.ddnsname.dyndns.biz がサブドメインとして扱える。
「Mail Exchanger」には、ddnsname.dyndns.biz を設定。
本来、Mail Exchanger は、別のサーバのドメインを設定するらしいが、
ここを設定しないと、MX レコードを引けなかったので、とりあえず、
同じものを指定。
「Backup MX?」には、チェックを入れない。
ここにチェックを入れると、ドメイン検索の順番が変わるらしい。
ブロードバンドルータはアイオーデータの「NP-BBRM」を使用。
仮想サーバ機能を使用して、特定のポートをフォワードする。
WAN ポート 110 (TCP/UDP) -> 192.168.0.190
WAN ポート 25 (TCP/UDP) -> 192.168.0.190
WAN ポート 587 (TCP/UDP) -> 192.168.0.190
ここで、587番ポートをフォワードするのがミソ。
●qmail の導入
qmail-1.03.tar.gz を使用。
導入に関しては、いろいろなホームページに記載があるが、フツーに行う。
まずは、qmail用のディレクトリと、ユーザー/グループを作成
# mkdir /var/qmail
# groupadd -g 310 nofiles
# useradd -g nofiles -u 311 -s /bin/false -d /var/qmail/alias alias
# useradd -g nofiles -u 312 -s /bin/false -d /var/qmail qmaild
# useradd -g nofiles -u 313 -s /bin/false -d /var/qmail qmaill
# useradd -g nofiles -u 314 -s /bin/false -d /var/qmail qmailp
# groupadd -g 320 qmail
# useradd -g qmail -u 321 -s /bin/false -d /var/qmail qmailq
# useradd -g qmail -u 322 -s /bin/false -d /var/qmail qmailr
# useradd -g qmail -u 323 -s /bin/false -d /var/qmail qmails
次に、ソースを解凍して、パッチを当てる。
# tar xvfz qmail-1.03.tar.gz
# cd qmail-1.03/
# patch -p1 < ../qmail-date-localtime.patch
※メールヘッダに記載される日付・時間情報を日本標準時間に合わせるパッチ。
パッチが当たったら、インストール。
# make setup check
# ./config-fast mail.ddnsname.dyndns.biz
次のメッセージが表示されて、インストールは完了
Your fully qualified host name is mail.ddnsname.dyndns.biz
Putting mail.ddnsname.dyndns.biz into control/me...
Putting ddnsname.dyndns.biz into control/defaultdomain...
Putting ddnsname.dyndns.biz into control/plusdomain...
Putting mail.ddnsname.dyndns.biz into control/locals...
Putting mail.ddnsname.dyndns.biz into control/rctphosts...
Now qmail will refuse to accept SMTP message expect to mail.ddnsname.dyndns.biz.
Make sure to change rctphosts if you add hosts to locals or virtual damains!
次の項目は、いらないと思われる。が、念のために設定。
これは、メール転送の記述。
postmaster、MAILER-DAEMON、rootあてのメールは/var/qmail/alias に保存される。
# cd /var/qmail/alias
# touch .qmail-postmaster .qmail-mailer-daemon .qmail-root
# chmod 644 .qmail*
# /var/qmail/bin/maildirmake ~alias/Maildir
# chown -R alias /var/qmail/alias/Maildir
# /var/qmail/bin/maildirmake /etc/skel/Maildir
---いらないと思われるのはここまで。
qmailの起動スクリプトをコピー・修正。
# cp /var/qmail/boot/home /var/qmail/rc
#!/bin/sh
# Using splogger to send the log through syslog.
# Using qmail-local to deliver messages to ~/Mailbox by default.
exec env - PATH="/var/qmail/bin:$PATH" \
#qmail-start ./Mailbox splogger qmail <- この行を
qmail-start ./Maildir/ splogger qmail <- このように編集
●cgi等から sendmail 互換で qmail を呼び出す設定。
# ln -s /var/qmail/bin/sendmail /usr/lib/sendmail
# ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail
sendmail 互換プログラムに、単なるリンクを張るだけですね。
●vpopmail の導入 (本命)
まず、vpopmail 用のユーザーとグロープを作成。
グループの 89/vchkpw というのは慣例らしいです。
# groupadd -g 89 vchkpw
# useradd -g vchkpw -u 89 vpopmail
次に、解凍導入を行います。
# tar xvfz vpopmail-5.2.1.tar.gz
# cd vpopmail-5.2.1
# ./configure --enable-roaming-users=y
# make
# make install-strip
※--enable-roaming-users=y は 「POP before SMTP機能」を使用する設定
なんでも、POP認証した後で、この認証情報は自動で削除されないらしい。
そこで、定期的にコマンドを呼び出して、情報を削除する。
# crontab -e
0,10,20,30,40,50 * * * * /home/vpopmail/bin/clearopensmtp 2>&1 > /dev/null
vpopmail でのバーチャルドメインの設定を行う。
# cd /home/vpopmail/bin
# ./vadddomain ddnsname.dyndns.biz
この後、パスワードを2回聞いてくる。これが、qmailadmin のパスワードになる。
とりあえず、password と入力する。
これにより、次のファイルが作成される。
それぞれの中には、ドメイン名等が入っている。
/var/qmail/control/locals
/var/qmail/control/rcpthosts
/var/qmail/control/virtualdomains
/var/qmail/users/assign
/var/qmail/users/cdb
初回は作成、2回目以降の実行では、情報の追加になる。
(2回実行したら、ダブった。)
更に、次のディレクトリが作成される。
/home/vpopmail/domains/ddnsname.dyndns.biz
/home/vpopmail/domains/ddnsname.dyndns.biz/postmaster/Maildir
/home/vpopmail/domains/ddnsname.dyndns.biz/vpasswd
/home/vpopmail/domains/ddnsname.dyndns.biz/vpasswd.cdb
vpopmailの場合は、ddnsname.dyndns.bizの中ですべてのメールがやり取りされる。
したがって、linuxユーザのホームディレクトリにある Maildir ディレクトリは
必要ない・・・ようだ。
まあ、vpopmail の機能として、linuxユーザと、メールアカウントの切り離し
が売り文句のひとつであるから、当然といえば当然。
qmailデーモンの uid と gid を取得しておく。
# id qmaild
uid=312(qmaild) gid=310(nofiles) groups=310(nofiles)
そして、最後に qmail の起動スクリプトを設定する。
# vi /etc/rc.d/init.d/qmail
---- ここから ----------------------------------------------
#!/bin/sh
#
# qmail: /var/qmail
PATH=/var/qmail/bin:/usr/local/bin:/bin:/usr/bin
[ -f /var/qmail/rc ] || exit 0
case "$1" in
start)
# Start daemons.
echo "Starting qmail."
csh -cf '/var/qmail/rc &'
#Vsmtp
/usr/local/bin/tcpserver -H -R -l mail.ddnsname.dyndns.biz -v -x /home/vpopmail/et
c/tcp.smtp.cdb -u 312 -g 310 0 smtp /var/qmail/bin/qmail-smtpd 2>&1 | /var/qmail
/bin/splogger smtpd 3 &
#Vpop
/usr/local/bin/tcpserver -H -R -l mail.ddnsname.dyndns.biz -v 0 pop3 /var/qmail/bi
n/qmail-popup mail.ddnsname.dyndns.biz /home/vpopmail/bin/vchkpw /var/qmail/bin/qm
ail-pop3d Maildir 2>&1 | /var/qmail/bin/splogger pop3d 3 &
echo
touch /var/lock/qmail
;;
stop)
# Stop daemons.
echo "Shutting down qmail."
PID=`/bin/ps -aefw | grep qmail | awk '{print $2}'`
if [ ! -z "$PID" ] ; then
/bin/kill ${PID} 1> /dev/null 2>&1
fi
echo
rm -f /var/lock/qmail
;;
*)
echo "Usage: S99qmail {start|stop}"
exit 1
esac
exit 0
---- ここまで ----------------------------------------------
OSの起動時に、qmailが起動されるように、それぞれのランレベルでリンクを張る。
# ln -s /etc/rc.d/init.d/qmail /etc/rc.d/rc2.d/S99qmail
# ln -s /etc/rc.d/init.d/qmail /etc/rc.d/rc3.d/S99qmail
# ln -s /etc/rc.d/init.d/qmail /etc/rc.d/rc5.d/S99qmail
● qmailadmin の導入
まず、autoresponder を事前に導入。qmailadmin に必要らしい。
# tar xvfz autorespond-2.0.2.tar.gz
# cd autorespond-2.0.2/
# make
# make install
そして、qmailadmin を導入。
このマシンは、apache を自分でインストールしたので、それぞれのフォルダは、
該当する apache の位置になっている。
# tar xvfz qmailadmin-1.0.6.tar.gz
# cd qmailadmin-1.0.6
# ./configure --enable-htmldir=/usr/local/apache2/htdocs/ --enable-cgibindir=/usr/local/apache2/cgi-bin/
# make
# make install-strip
●起動方法
qmail は次のように停止・起動する
# /etc/rc.d/init.d/qmail start
# /etc/rc.d/init.d/qmail stop
また、qmailadmin はブラウザから、次の URLで起動する
http://ddnsname.dyndns.biz/cgi-bin/qmailadmin
このとき、
ユーザー名は postmaster
ドメイン名は ddnsname.dyndns.biz
パスワードは password
これで、中に入れる。
●雑感
全体を通して感じたことは、qmail 自体はシンプルなプログラムの集合体であるということ。
更に、sendmail の Mailbox 形式を引き継げることや、vpopmail では、linuxのユーザーとは別に、メールユーザを管理できることから、設定最中は、何が正しいのか良くわからないため、非常に手間取った。
正確ではないかもしれないが、vpopmail を使用する場合は、home ディレクトリの Maildir は必要ない。また、/var/qmail/alias/Maildir も必要ないと思われる。
メールデータの転送は、/home/vpopmail/domains/ddnsname.dyndns.biz/ の中で完結している。
当然、qmailadmin のユーザー管理もこのフォルダの中で完結している。