メールサーバーの設定

Solaris9への移行に伴い、このページ更新はされなくなりました。
インストールメモ等はこちらに移行します。


やっぱsolarisでしょ
solaris8の入手
ハードの準備
solaris8インストール
システムの起動と停止
ユーザーの作成
ネットワークの設定
基本ツールのインストール
ネームサーバーの設定
BIND Version 9
メールサーバーの設定
qmail-1.03
メールアーカイブの作成
インストールメモ
Solaris Tips
PostgreSQL+PHP4
solarisでブロードバンドルーター作成
Nagiosでネットワーク監視システム構築
vpopmail

File last modified 2002/11/10 16:41

過去のページはこちらsendmail-8.9.3

qmaillのインストールとセットアップ

IMAP・POPサーバーのインストールとセットアップ

qmailのインストールとセットアップ

solaris8にはsendmailが標準で入っていますが、sendmailのかわりにqmailでmailサーバーを構築します。


qmailホームディレクトリ作成

ルートユーザーになりqmailのホームディレクトリを作成します。

# mkdir /var/qmail

qmailユーザーとグループ作成

同じくルートユーザにて、qmail用ユーザーとグループを作成します。

# groupadd nofiles
# useradd -g nofiles -d /var/qmail/alias alias
# useradd -g nofiles -d /var/qmail qmaild
# useradd -g nofiles -d /var/qmail qmaill
# useradd -g nofiles -d /var/qmail qmailp
# groupadd qmail
# useradd -g qmail -d /var/qmail qmailq
# useradd -g qmail -d /var/qmail qmailr
# useradd -g qmail -d /var/qmail qmails

qmailインストール

以下の場所等からqmail-1.03本体とパッチを入手します。

ftp://ftp.jp.qmail.org/qmail/qmail-1.03.tar.gz qmail本体
ftp://ftp.nlc.net.au/pub/unix/mail/qmail/qmail-date-localtime.patch ローカルタイムパッチ
http://www9.jp.qmail.org/qmail-smtpd-relay-reject不正中継防止パッチ


適当な場所にダウンロードしたファイル2つを置き、展開後、パッチを当てます。

$ tar xvzf qmail-1.03.tar.gz
$ cd qmail-1.03
$ patch -p1 < ../qmail-date-localtime.patch
$ patch -p1 < ../qmail-smtpd-relay-reject

コンパイルにgccを使っているので、conf-cc、conf-ldファイルの cc を gcc に変更します。

conf-cc 一行目
cc -O2 を
gcc -O2 に変更

conf-ld 一行目
cc -s を
gcc -s に変更

ルートになりインストールします

$ su
# make setup check

以下のコマンドにて設定ファイルのセットをします

# ./config-fast

/var/qmail/controlに設定ファイルが作成されます。

defaultdomain ドメイン名省略時、補完されるドメイン名
locals qmail-sendが利用するホスト名・ドメイン名
rcpthosts qmail-smtpdが利用するホスト名・ドメイン名
me サーバのFQDN
mailサーバーのFQDNがmail.b-dash.netの場合でも、メールアドレスを
例えば、user@mail.b-dash.netではなくuser@b-dash.netとしたい場合は
defaulthostというファイルを作りb-dash.netと記述します


エイリアスの設定

# cd /var/qmail/alias
# touch .qmail-postmaster .qmail-mailer-deamon .qmail-root
# chmod 644 .qmail-postmaster .qmail-mailer-deamon .qmail-root

例えばroot宛メールをuserに転送したい場合は
.qmail-rootに
&user
と記述します。

メールスプールの設定(Maildir形式)

ここではメールスプールをMaildir形式します。

ユーザーホームディレクトリにて
$ /var/qmail/bin/maildirmake Maildir
$ echo ./Maildir/ > .qmail

起動スクリプト編集

ルートになりサンプルファイルをコピー
# cp /var/qmail/boot/home /var/qmail/rc

/var/qmail/rcのqmail-startの行を変更

qmail-start ./Mailbox splogger qmail ←変更前
qmail-start ./Maildir/ splogger qmail ←変更後

sendmailを止める

# /etc/init.d/sendmail stop
# mv /usr/lib/sendmail /usr/lib/sendmail.org
# chmod 0 /usr/lib/sendmail.org
# ln -s /var/qmail/bin/sendmail /usr/lib/sendmail
# chmod 0 /bin/mail


起動用スクリプト

システム起動時にqmailが起動するようにスクリプトを作成します。

/etc/init.d/qmail

#!/bin/sh

QMAIL=/var/qmail
PID=`/usr/bin/ps -e | /usr/bin/grep qmail-se | /usr/bin/sed -e 's/^ *//' -e 's/ .*//'`

case "$1" in

'start')
if [ -f $QMAIL/rc ] ; then
echo "qmail server starting."
/bin/csh -cf "$QMAIL/rc &" > /dev/console 2>&1 &
fi
;;

'stop')
if [ ! -z "$PID" ] ; then
/usr/bin/kill -TERM $PID
fi
;;

*)
echo "Usage: /etc/init.d/qmqil { start | stop }"
;;
esac
exit 0

スクリプトをランレベル毎に実行されるようハードリンクを作ります

# chmod 744 /etc/init.d/qmail
# ln /etc/init.d/qmail /etc/rc0.d/K57qmail
# ln /etc/init.d/qmail /etc/rc1.d/K57qmail
# ln /etc/init.d/qmail /etc/rc2.d/S88qmail

sendmailが起動されぬようS88sendmailをリネーム

# mv /etc/rc2.d/S88sendmail /etc/rc2.d/_S88sendmail



IMAP・POPサーバーのインストールとセットアップ

次にpop3サーバーとIMAPサーバーをインストールします。

UW-IMAPはMaildir形式には対応していませんが、拡張パッチが出ていますので、それを使う事にします。
以下のサイトより入手できます。

WU-IMAPDてんこもり拡張パック
http://www.gentei.org/%7Eyuuji/software/imapext/

2001/09/16現在のバージョンファイル
imap-2001.RC1-qmav.2.tar.gz

この拡張パック。機能がほんとにてんこもりなのですが、うちでは表からPOP3を使わないので
LAN内では生POP使用することにします。

展開して、コンパイルします。Solaris+gccの場合、makeオプションはgsoになります(その他の場合はMakefile参照のこと)

$ tar xvzf imap-2001.RC1-qmav.2.tar.gz
$ cd imap-2001.RC1-qmav.2.tar.gz
$ make gso

コンパイル後、手動でインストールします。インストール先は/usr/local/sbinにします。
ディレクトリがない場合は作成しておきます。

$ su
# /usr/sbin/install -c /usr/local/sbin -m 755 -u root -g root imapd/imapd
# /usr/sbin/install -c /usr/local/sbin -m 755 -u root -g root ipopd/ipop2d
# /usr/sbin/install -c /usr/local/sbin -m 755 -u root -g root ipopd/ipop3d
# cp src/imapd/imapd.8c /usr/local/man/man8/imapd.8
# cp src/ipopd/ipopd.8c /usr/local/man/man8/ipopd.8


別件ですが、PHPインストール時に必要なライブラリなどをコピーしておきます

# cd c-client
# cp c-client.a /usr/local/lib/libc-client.a
# cp c-client.h rfc822.h utf8.h mail.h linkage.h mail.h osdep.h misc.h rfc822.h smtp.h nntp.h \
env_unix.h fs.h ftl.h nl.h tcp.h flocksim.h imap4r1.h env.h /usr/local/include



tcp_wrappers_7.6のインストール(inetd使用の場合)

(以下の例はTCPWrapperを使っていますので、インストールメモを参照)

ただしデーモンに環境変数を渡せるようにSTYLE=-DPROCESS_OPTIONSをつけてmakeします

# CC=gcc REAL_DAEMON_DIR=/usr/sbin STYLE=-DPROCESS_OPTIONS make sunos5

hosts.allowの設定

/etc/hosts.allowに以下の行を挿入します。

tcp-env : localhost 192.168.0.0/255.255.255.0 : setenv = RELAYCLIENT
tcp-env : ALL : ALLOW
ipop3d : localhost 192.168.0.0/255.255.255.0 : setenv = RELAYCLIENT : setenv = INTRANET
ipop3d : ALL : ALLOW

てんこもり拡張パックではipop3d起動時に環境変数INTERNETを与えることにより、生POPを使うようになります。
この設定でLAN内からの接続要求には生POPが使えるようになります。

inetd.confの設定

/etc/inet/inetd.confに以下の行を追加します。

imap    stream  tcp     nowait  root    /usr/local/sbin/tcpd    /usr/local/sbin/imapd pop3    stream  tcp     nowait  root    /usr/local/sbin/tcpd    /usr/local/sbin/ipop3d smtp    stream  tcp     nowait  qmaild  /usr/local/sbin/tcpd    /var/qmail/bin/tcp-env /var/qmail/bin/qmail-smtpd

inetdの再起動

# ps -ef |grep inet
root 170 1 0 Nov 23 ? 0:00 /usr/sbin/inetd -s -t
# kill -HUP 170


うまく行かない時は、/var/qmail/controlのファイルや、hosts.allowを確認してください。