qmail 備忘録 #2

qmail備忘録 #1

先にextend用をmiで書いたらつかれた:-}

昨日に続いて、qmailの備忘録。あともうちょっとやなぁ。

■qmailの備忘録-その2

[追加機能のインストール]

  • tcpserverのインストール
  • daemontoolsのインストール
  • relay-ctrlのインストール
  • vpopmailのインストール

[tcpserverのインストール(作業用ディレクトリは、/usr/local/src)]

1./usr/blocal/binディレクトリにインストール

% wget ftp://ftp.jp.qmai.org/qmail/ucspi-tcp-0.88.tar.gz
% tar zxvf ucspi-0.88.tar.gz
cd ucspi-0.88
make
su
make setup check

2.pop3用データベースの作成 /etc/tcp.pop3

#
# /etc/tcp.pop3 : configuration of pop3 service
#
:allow

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

3.smtp用アクセスデータベースの作成 /etc/tcp.smtp

#
# /etc/tcp.smtp : configuration of smtp service
#
***.***.*.(local IP):allow,RELAYCLIENT=""
***.***.*.(local IP):allow,RELAYCLIENT=""
127.:allow,RELAYCLIENT=""
.hogehoge.com:allow,RELAYCLIENT=""
:allow

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

[daemontoolsのインストール] daemontoolsは、UNIXサービス(デーモン)の起動、終了、状態監視、ログの取得をおこなうツール。

次のプログラムを組み合わせて動作。

  • svscanサービス群の監視
  • supervise特定サービスの監視
  • svstatサービスの状態を調査
  • svcサービスに対して起動・終了の指示

他にもsvscanbootやmultilogなどのプログラムもありますが、ここは省略。

/直下にディレクトリに抵抗を感じるかどうかは個人的な問題。私は気にしません。

1.daemontoolsのインストール

# mkdir -p /package
# chmod 1755 /package
# cd /package
# wget ftp://cr.yp.to/daemontools/daemontools-0.76.tar.gz
# tar zxvf daemontools-0.76.tar.gz
# cd admin/daemontools-0.76
# ./package/install

新たに作成されるディレクトリ

/service
/command

作成されるファイルおよびそのシンボリックリンク /package/admin/daemontools/command/下に実行ファイル
/command/下にシンボリックリンク

/usr/local/bin/下にさらにシンボリックリンク

/etc/inittabの末尾に次の1行が追加

SV:123456:respawn:/command/svscanboot

2.inittabの変更を反映

# kill -HUP 1

3.念のためにpsコマンド

#ps -ef | grep svscan
省略

4.daemontoolsが適切に日付を処理しているか確認

# cd /command/
# date | ./tai64n | ./tai64nlocal
# 日付が表示
# date | sh -c './multilog t e 2>&1' | ./tail64nlocal
# 日付が表示

出力の左と右で時間が同じであればOK

[daemontoolsでサービスの監視]

1.qmailの起動をdaemontoolsで管理

# mkdir /var/qmail/supervise
# mkdir /var/qmail/supervise/qmail

runスクリプトの作成。実行属性をつけるのを忘れないように

#!/bin/sh

# Using splogger to send the log through syslog.
# Using qmail-local to deliver messages to ~/Maildir/ by default.

exec env - PATH="/var/qmail/bin:$PATH" ?
qmail-start ./Maildir/ splogger qmail
# ln -s /var/qmail/supervise/qmail /supervice/qmail
# svstat /service/*
/service/qmail: up (pid ****) ** seconds

up時間が0または1秒の間に再起動なければOK

2.pop3をdaemontoolsで管理

# cd /var/qmail/supervise
# mkdir pop3d

runスクリプトの作成

#!/bin/sh

#
# pop3d/run : qmail-pop3d starting script
#

exec env - PATH="/var/qmail/bin:/sbin:/bin:/usr/sbin:/usr/bin: ?
/usr/local/sbin:/usr/local/bin" ?
envdir /etc/relay-ctrl relay-ctrl-chdir ?
tcpserver -v -x /etc/tcp.pop3.cdb -R -H 0 pop3 ?
recordio fixcrio ?
qmail-popup hostname.hogehoge.com /home/vpopmail/bin/vchkpw ?
relay-ctrl-allow ?
qmail-pop3d Maildir 2>&1

# ln -s /var/qmail/supervise/pop3d  /service/pop3d

3.SMTPをdaemontoolsで管理 # cd /var/qmail/supervise

# mkdir smtpd

runスクリプトの作成

#!/bin/sh

#
# smtpd/run : smtpd starting script
#


exec env - PATH="/var/qmail/bin:/sbin:/bin:/usr/sbin:/usr/bin: ?
/usr/local/sbin:/usr/local/bin:" ?
envdir /etc/relay-ctrl relay-ctrl-chdir ?
/usr/local/bin/tcpserver -v -x /home/vpopmail/etc/tcp.smtp.cdb ?
-R -H -l0 -u (qmaild UID) -g (nofiles GID) 0 smtp ?
relay-ctrl-check ?
/var/qmail/bin/qmail-smtpd 2>&1

UID,GIDは”% id qmaild”で確認

# ln -s /var/qmail/supervise/smtpd /service/smtpd

あ、あかん、つかれた:-Z。誤字脱字、スペルミスはゆっくり調べます。

relay-ctrl,vpopmailは次にします:-P