カスタム検索
CentOS/Linuxvpopmailインストール 〜CentOS4 サーバ編〜


本ページではvpopmailについて記録
します。事前作業としてqmail のインストール等行っている前提で記録を進めますので、不明な点はqmailインストール1〜9をご覧下さい。

※SMTP-AUTHを利用する場合は、順番に進んでください。
※SMTP-AUTHを利用しない場
合は、2,3,4は読み飛ばしてください。


Index 〜vpopmailインストール〜

1. vpopmailのダウンロードと展開 | 2. smtpd-authパッチあて作業(qmail-smtpd-auth) | 3. qmailコンパイルし直し | 4. tcpserver設定の変更 | 5. vpopmail用ユーザ、グループ(vpopmail,vchkpw) | 7. vchkpwの権限変更 | 8. defaultdomainの設定 | 9. vadddomainでのドメイン登録 | 10. vadduserでのユーザ登録 | 11. tcpserver経由でのvpopmail,qmail起動設定


1. vpopmailのダウンロードと展開
〜vpopmailインストール〜

ダウンロード、展開ディレクトリは/usr/local/src配下とします。

# cd /usr/local/src
# wget http://kent.dl.sourceforge.net/sourceforge/vpopmail/vpopmail-5.4.13.tar.gz # tar xzf vpopmail-5.4.13.tar.gz

これで、vpopmailが展開されました。


2. smtpd-authパッチあ て作業(qmail-smtpd-auth)
〜vpopmailインストール〜

※SMTP-AUTHを利用しない場合は不要なので飛ばします。
 
qmailをコンパイルしたディレクトリは/usr/local/src配下にあるものとします。
ダウンロードしてきたvpopmail-5.4.13.tar.gz内にsmtpd-authパッチがあるので、
それを利用します。

# cd /usr/local/src/qmail-1.03
# cp /usr/local/src/vpopmail-5.4.13/contrib/qmail-smtpd-auth-0.5.6.tar.gz
# tar -zxvf qmail-smtpd-auth-0.5.6.tar.gz
# ./install_auth.sh

これでqmail ディレクトリ内ファイルが、SMTP-AUTH用のコンパイルをする準備が出来ました。


3. qmailコンパイルし直し
〜vpopmailインストール〜

※SMTP-AUTHを利用しない場合は不要なので飛ばします。
 
2であてたsmtp-authパッチを適用する為、qmailをリコンパイルします。

# cd /usr/local/src/qmail-1.03
# make
# make setup check

これでqmail はSMTP-AUTH対応となりました。


4. tcpserver設定の変更
〜vpopmailインストール〜

※SMTP-AUTHを利用しない場合は不要なので飛ばします。
 
SMTP-AUTHをtcpserver起動で有効にする為には、REQUIREAUTH属性を使用します。
また、tcpserver で実行するにあたり、設定ファイルをcdb化する必要があります。

方法は以下の通りです。

ルールファイルを修正します。
# cat /etc/tcp/smtp.rule
127.0.0.1:allow 192.168.1.:allow,RELAYCLIENT="" :allow,REQUIREAUTH=""
  ※すべてAUTH必須とする場合は、RELAYCLIENT設定は不要ですが、
    一部、AUTH無しでも許可したいネットワークがあれば追加します。

ルールファイルをcdb化します。
# /usr/local/bin/tcprules /etc/tcp/smtp.cdb /etc/tcp/smtp.tmp < /etc/tcp/smtp.rule

本設定完了でtcpserver はSMTP-AUTH対応となりました。


5. vpopmail用ユーザ、グループ(vpopmail,vchkpw)
〜vpopmailインストール〜

vpopmailで使用するユーザvpopmail、グループvchkpwをログイン不可で作成して、
vpopmailをインストールするディレクトリ(/var/vpopmail)を作成します。
また作成したディレクトリの権限をvpopmail:vchkpwと設定します。

# groupadd vchkpw
# useradd vpopmail -g vchkpw -d /var/vpopmail -s /sbin/nologin
# mkdir -p /var/vpopmail/etc 
# chown -R vpopmail:vchkpw /var/vpopmail

これでインストール前の事前準備は完了です。


6. vpopmailインストール
〜vpopmailインストール〜

準備が完了した所で、vpopmailのインストールを開始します。
# cd /usr/local/src/vpopmail-5.4.13
# ./configure
vpopmail 5.4.13
Current settings
---------------------------------------
vpopmail directory = /var/vpopmail
uid = 550
gid = 550
roaming users = OFF --disable-roaming-users (default)
password learning = OFF --disable-learn-passwords (default)
md5 passwords = ON --enable-md5-passwords (default)
file locking = ON --enable-file-locking (default)
vdelivermail fsync = OFF --disable-file-sync (default)
make seekable = ON --enable-make-seekable (default)
clear passwd = ON --enable-clear-passwd (default)
user dir hashing = ON --enable-users-big-dir (default)
address extensions = OFF --disable-qmail-ext (default)
ip alias = OFF --disable-ip-alias-domains (default)
auth module = cdb --enable-auth-module=cdb (default)
auth inc = -Icdb
auth lib =
system passwords = OFF --disable-passwd (default)
pop syslog = show only failed attempts
--enable-logging=e (default)
auth logging = ON --enable-auth-logging (default)
# make
# make install-strip

これでインストールが終わりました。


7. vchkpwの権 限変更
〜vpopmailインストール〜

vchkpwの権限をrootにします。
また他ユーザからも実行できるよう実行権限を変更します。

# chown root /var/vpopmail/bin/vchkpw
# chmod 4755 /var/vpopmail/bin/vchkpw


8. defaultdomainの設定
〜vpopmailインストール〜
 
(メインとなる)ドメインを記入したファイルをdefaultdomainというファイル名で作成します。

# echo '"メインドメイン入力"' > /var/vpopmail/etc/defaultdomain


9. vadddomainでのドメイン登録
〜vpopmailインストール〜
 
vadddomainで利用する(メインとなる)ドメインと、そのドメインに対するパスワードを設定します。

# /var/vpopmail/bin/vadddomain "メインドメイン入力" "パスワード入力"

複数ドメインで運用する場合は、メインドメイン設定と同様の設定にて追加ドメインの設定を行います。

# /var/vpopmail/bin/vadddomain "追加ドメイン入力" "パスワード入力"

※万が一、ドメインを間違えて登録した場合は、vdeldomainコマンドで削除できます。

# /var/vpopmail/bin/vdeldomain "削除ドメイン入力"


<補足事項>
vadddomainのオプション(引数)設定は以下の通りです。

# /var/vpopmail/bin/vadddomain
vadddomain: usage: vadddomain [options] virtual_domain [postmaster password]
options: -v prints the version
-q quota_in_bytes (sets the quota for postmaster account)
-b (bounces all mail that doesn't match a user, default)
-e email_address (forwards all non matching user to this address [*])
-u user (sets the uid/gid based on a user in /etc/passwd)
-d dir (sets the dir to use for this domain)
-i uid (sets the uid to use for this domain)
-g gid (sets the gid to use for this domain)
-O optimize adding, for bulk adds set this for all
except the last one
-r[len] (generate a len (default 8) char random postmaster password)

[*] omit @-sign to deliver directly into user's Maildir: '-e postmaster'



vdeldomainのオプション(引数)設定は以下の通りです。

# /var/vpopmail/bin/vdeldomain
vdeldomain: usage: [options] domain_name
options: -v (print version number)


基本的には、上記の引数指定は不要と思いますが、必要に応じて適宜設定を行ってください。

これでvpopmailへのドメイン登録は完了です。


10. vadduserでのユーザ登録
〜vpopmailインストール〜

vadduserで利用するユーザ(メールアドレス)と、そのユーザに対するパスワードを設定します。

# /var/vpopmail/bin/vadduser "登録メールアドレス入力" "パスワード入力"

※万が一、ユーザ(メールアドレス)を間違えて登録した場合は、vdeluserコマンドで削除できます。

# /var/vpopmail/bin/vdeluser "削除メールアドレス入力"

<補足事項>
vadduserのオプション(引数)設定は以下の通りです。

# /var/vpopmail/bin/vadduser
vadduser: usage: [options] email_address [passwd]
options: -v (print the version)
-q quota_in_bytes (sets the users quota, use NOQUOTA for unlimited)
-c comment (sets the gecos comment field)
-e standard_encrypted_password
-n no_password
-r[len] (generate a len (default 8) char random password)

vdeluserのオプション(引数)設定は以下の通りです。

# /var/vpopmail/bin/vdeluser
vdeluser: usage: [options] email_address
options: -v (print version number)


基本的には、上記引数指定は不要と思いますが、必要に応じて適宜設定を行ってください。

これでvpopmailへのユーザ登録は完了です。


11. tcpserver経由でのvpopmail,qmail起動設定
〜vpopmailインストール〜

vpopmailとqmailが自動起動するように、起動用スクリプトを/etc/rc.d/init.d 配下に作成します。以下の例ではSubmissionポートに対応させています。

# cat /etc/rc.d/init.d/qmail
#!/bin/bash
#
# qmail
#
# chkconfig: 2345 80 30
# description: qmail start/stop script

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

PATH=/var/qmail/bin:/var/vpopmail/bin:/usr/local/bin:/bin:/usr/bin

[ -f /var/qmail/rc ] || exit 0

start() {
# Start daemons.
if [ -z $(/sbin/pidof qmail-send) ]; then
echo -n "Starting qmail"

# qmail
csh -cf '/var/qmail/rc &' 2>&1 > /dev/null

# SMTP Port 25
/usr/local/bin/tcpserver \
-vHR -u `id -u vpopmail` -g `id -g vpopmail` -c 80 -x \
/etc/tcp/smtp.cdb 0 smtp \
/var/qmail/bin/qmail-smtpd \
/var/vpopmail/bin/vchkpw /usr/bin/true 2>&1 | \
/var/qmail/bin/splogger smtpd &

# SMTP Submission Port 587
/usr/local/bin/tcpserver \
-vHR -u `id -u qmaild` -g `id -g qmaild` -c 80 -x \
/etc/tcp/smtp.cdb 0 587 \
/var/qmail/bin/qmail-smtpd \
/var/vpopmail/bin/vchkpw /usr/bin/true 2>&1 | \
/var/qmail/bin/splogger smtpd &

# POP3 vpopmail Port 110
/usr/local/bin/tcpserver -u `id -u vpopmail` -g `id -g vpopmail` \
-c 120 -vHR -x /etc/tcp/pop3.cdb 0 pop3 \
/var/qmail/bin/qmail-popup "メインドメイン入力" \
/var/vpopmail/bin/vchkpw \
/var/qmail/bin/qmail-pop3d Maildir 2>&1 | \
/var/qmail/bin/splogger pop3d &

RETVAL=$?
echo
[ $RETVAL = 0 ] && touch /var/lock/subsys/qmail
return $RETVAL
else
echo "qmail is already started"
fi
}

stop() {
# Stop daemons.
if [ ! -z $(/sbin/pidof qmail-send) ]; then
echo -n "Shutting down qmail"
/bin/kill $(/sbin/pidof tcpserver)
/bin/kill $(/sbin/pidof qmail-send)
until [ -z $(/sbin/pidof qmail-send) ] && \
[ -z $(/sbin/pidof tcpserver) ]; do :; done
echo
rm -f /var/lock/subsys/qmail
else
echo "qmail is not running"
fi
}

case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
status)
if [ ! -z $(/sbin/pidof qmail-send) ] ; then
echo -n "qamil (pid"
echo -n " `/sbin/pidof qmail-send`"
echo -n " `/sbin/pidof tcpserver`"
echo ") is running..."
else
echo "qmail is stoped"
fi
;;
*)
echo "Usage: qmail {start|stop|restart|status}"
exit 1
esac

exit 0

この作成した起動スクリプトの実行権限を変更します。

# chmod 755 /etc/rc.d/init.d/qmail

chkconfigコマンドにて自動起動するよう設定します。

# chkconfig --add qmail
# chkconfig qmail on

これで再起動時にvpopmail,qmailプロセスが自動起動されます。

今直ぐ反映させたい場合は、serviceコマンドを使用します。

# service qmail start

これで起動されます。




vpopmailのインストールは以上で完了です。