RedHatサーバインストール
qmail1.03インストール
インストール準備
ソースファイルの準備
qmailで必要なファイルを準備する。今回パッチファイルが同封されているnetqmailを使用する。
- netqmail-1.05.tar.gz
※ダウンロード先:http://qmail.org/netqmail/ - qmail-date-localtime.patch ※ヘッダー日付のローカル化
※ダウンロード先:http://mirror.averse.net/pub/FreeBSD/ports/local-distfiles/sada/ - qmail-103.patch ※DNSオーバーパケット対応化
※ダウンロード先:http://www.ckdhr.com/ckd/qmail-103.patch - big-todo.103.patch ※高速MTA化(queue/todo/の階層化)
※ダウンロード先:http://www9.jp.qmail.org/top.html
qmail使用ディレクトリー作成
qmailがインストールされるディレクトリーを作成する。
# mkdir /var/qmail
qmail使用グループ&ユーザ作成
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
コンパイル環境の確認(Solarisの場合のみ)
ccが/usr/ucb/ccを参照するためコンパイルできない。そのため標準でインストールされるgccを使用できるようにする。
# mv /usr/ucb/cc /usr/ucb/cc.org
# ln -s /opt/sfw/bin/gcc /usr/ucb/cc
後、コンパイル環境のPATH2つ(/usr/ucb、/usr/ccs/bin)が設定されているか確認し、設定されていな場合PATHを設定する。
# PATH=$PATH:/usr/ccs/bin:/usr/ucb
# export PATH
インストール qmail
ファイルの展開
ダウンロードした各種ファイルを作業ディレクトリにコピーし展開する。
例:/usr/local/SOURCES
$ cd /usr/local/SOURCES
$ tar zxvf netqmail-1.05.tar.gz
パッチ処理
展開したディレクトリに移り、netqmailパッチおよびLocalTime対応のパッチを当てる。
$ cd netqmail-1.05
$ ./collate.sh
$ cd netqmail-1.05
$ patch -p1 < ../../qmail-date-localtime.patch
$ patch -p1 < ../../qmail-103.patch
$ patch -p1 < ../../big-todo.103.patch
コンパイル
展開したディレクトリでコンパイルする。
# make setup check
※”警告: `main' の戻り値の型が `int' ではありません”が出力されるが無視する。
コンパイルが成功した場合、各ファイルは/ver/qmail以下にインストールされる。
環境設定
メールサーバを環境に合う設定ファイルを自動作成する。
本サーバがDNSに設定がされている場合
# ./config
本サーバがDNSに設定がされていない場合
# ./config-fast xxxx.co.jp
Your fully qualified host name is xxxx.co.jp
Putting sindbad.ne.jp into control/me...
Putting ne.jp into control/defaultdomain...
Putting ne.jp into control/plusdomain...
Putting sindbad.ne.jp into control/locals...
Putting sindbad.ne.jp into control/rcpthosts...
Now qmail will refuse to accept SMTP messages except to sindbad.ne.jp.
Make sure to change rcpthosts if you add hosts to locals or virtualdomains!
※尚、今回ドメイン名でのメールアカウントのため、ホスト名は記述しない。
qmailの設定ファイルは/var/qmail/control以下に保存されるようになっており、
主な設定ファイルは以下のようになっています。
defaultdomain : toなどにドメイン名が省略された場合、補完されるドメイン名
locals : 受信するホスト名・ドメイン名(qmail-sendが利用)
rcpthosts : 受信するホスト名・ドメイン名(qmail-smtpdが利用)
me : サーバのホスト名
qmail用の管理用に最低限のエイリアスを作成する。
# cd /var/qmail/alias
# touch .qmail-postmaster .qmail-mailer-daemon .qmail-root
# chmod 644 .qmail*
# /var/qmail/bin/maildirmake Maildir
メールアカウントを追加した際に自動的にディレクトリ"~Maildir"が作成できるように、"/etc/skel"に"Maildir"を作成する。
# cd /etc/skel
# /var/qmail/bin/maildirmake Maildir
自動起動スクリプトを新規に作成する。
尚、今回はMaildirでの保存形式にする。
例:Linuxでbash対応
ファイル:/etc/init.d/qmaild
#!/bin/bash
# Using splogger to send the log through syslog.
# Using qmail-local to deliver messages to ~/Mailbox by default.
# Source function library.
. /etc/init.d/functions
[ -f /var/qmail/bin/qmail-start ] || exit 0
PATH=/var/qmail/bin:$PATH
RETVAL=0
start() {
echo -n $"Start Up qmail: "
qmail-start ./Maildir/ splogger qmail &
return $RETVAL
}
stop() {
echo -n $"Shutting down qmail: "
killproc qmail-send
return $RETVAL
}
restart() {
stop
start
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
*)
echo $"Usage: $0 {start|stop|restart}"
exit 1
esac
exit $?
自動起動スクリプトにリンクする。
# cd /etc/rc.d/rc0.d
# ln -s ../init.d/qmaild K88qmail
# cd /etc/rc.d/rc1.d
# ln -s ../init.d/qmaild K88qmail
# cd /etc/rc.d/rc2.d
# ln -s ../init.d/qmaild S88qmail
# cd /etc/rc.d/rc3.d
# ln -s ../init.d/qmaild S88qmail
sendmailがインストールされている場合、sendmailのプロセス停止と起動 起動スクリプトを編集する。 と、ともにオリジナルのsendmailをqmailのsendmailと入替える。
# mv /usr/sbin/sendmail /usr/sbin/sendmail.org
# ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail
qmailのpopインストール
ソースファイルの準備
popで必要なファイルを準備する。
checkpassword-0.90.tar.gz
ファイルの展開
ダウンロードした各種ファイルを作業ディレクトリにコピーし展開する。
例./usr/local/SOURCES
$ cd /usr/local/SOURCES
$ tar zxvf checkpassword-0.90.tar.gz
コンパイル
展開したディレクトリでコンパイルする。
$ cd checkpassword-0.90
# make setup check
コンパイルが成功した場合、"checkpassword"ファイルは"/bin"以下にインストールされる。
環境設定
tcpserverの設定で説明する。