qmailを構築、SSLに対応させたので、次はマルチドメインに対応させましょうヾ(゚∀゚)ノ
qmailをマルチドメインに対応させるには、Vpopmailというソフト使用します。
ドメイン1つで運用する場合でも特に問題はないので、構築する事をオススメします。
qmailをマルチドメインに対応させるには、Vpopmailというソフト使用します。
ドメイン1つで運用する場合でも特に問題はないので、構築する事をオススメします。
※注意事項
VpopmailはCRAM-MD5のSMTP認証に対応していません。
当記事では、LOGIN&PLAIN認証を行う事を前提に構築しています。
CRAM-MD5でも構築可能ですが、その場合vpasswdというユーザ一覧ファイルにパスワードが暗号化されずに保存されます。
なんでかっていうと、Configureで--disable-clear-passwdを使用してパスワードを平文で保存しない設定にすると、vchkpwが暗号化されたパスワードを読めなくなる為です。
となると送信時にパスワードが平文で流れてしまい暗号化としては致命的な欠陥がある為、安全性を重視される方にはオススメできません。
それでもCRAM-MD5を使用したいという方は、CRAM-MD5対応版で構築して下さい。
バーチャルドメイン化すると、ログインIDが「ID@ドメイン名(メールアドレス)」となります。
後述するメインドメインはログインIDのままでも設定可能ですが、基本的にはIDはメールアドレスになると考えて下さい。
※POP before SMTPに対応【2007/12/16追記】
POP before SMTPを有効にする場合は、ココのコンパイル方法ではなく
[CentOS,qmail] VpopmailでPOP before SMTP
上記を参考にコンパイル(Configure)を行って下さい。
Vpopmailインストール
インストール完了後、Vpopmailの初期設定を行う
qmail起動スクリプトを変更
再起動後、Vpopmailが有効になっています。
Vpopmailの基本的なファイルや各ユーザのメールは「/home/vpopmail」以下に保存されています。
メインドメインを設定
以上で、基本的なVpopmailの設定は完了です。
「/home/vpopmail/メインドメイン名/」以下がメインドメインの領域になります。
また、バーチャルドメインを追加した場合は、メインドメインと同じ手法で追加すればOKです。
基本的な操作方法を載せておきますので、ご参考下さい。
バーチャルドメイン基本操作
基本的な操作はこんな感じです。
あとはメールデータの移行ですが、今回は新規構築を念頭に置いているのでしていません。
そこらへんは頑張ってググって下さいヾ(゚∀゚)ノ
VpopmailはCRAM-MD5のSMTP認証に対応していません。
当記事では、LOGIN&PLAIN認証を行う事を前提に構築しています。
CRAM-MD5でも構築可能ですが、その場合vpasswdというユーザ一覧ファイルにパスワードが暗号化されずに保存されます。
なんでかっていうと、Configureで--disable-clear-passwdを使用してパスワードを平文で保存しない設定にすると、vchkpwが暗号化されたパスワードを読めなくなる為です。
となると送信時にパスワードが平文で流れてしまい暗号化としては致命的な欠陥がある為、安全性を重視される方にはオススメできません。
それでもCRAM-MD5を使用したいという方は、CRAM-MD5対応版で構築して下さい。
バーチャルドメイン化すると、ログインIDが「ID@ドメイン名(メールアドレス)」となります。
後述するメインドメインはログインIDのままでも設定可能ですが、基本的にはIDはメールアドレスになると考えて下さい。
※POP before SMTPに対応【2007/12/16追記】
POP before SMTPを有効にする場合は、ココのコンパイル方法ではなく
[CentOS,qmail] VpopmailでPOP before SMTP
上記を参考にコンパイル(Configure)を行って下さい。
Vpopmailインストール
# groupadd -g 89 vchkpw
# useradd -g vchkpw -u 89 vpopmail -s /sbin/nologin -m -k /dev/null
※vpopmail専用グループ、ユーザを作成
# wget http://jaist.dl.sourceforge.net/sourceforge/vpopmail/vpopmail-5.4.25.tar.gz
17:55:38 (495.79 KB/s) - `vpopmail-5.4.25.tar.gz' を保存しました [418736/418736]
※vpopmailをダウンロード(最新バージョンはココで確認可能)
# tar zxvf vpopmail-5.4.25.tar.gz
# cd vpopmail-5.4.25
※解凍し、vpopmailのディレクトリに移動
# ./configure \
--disable-clear-passwd \
--enable-logging=y
※コンパイル
# make && make install-strip
※インストール
# useradd -g vchkpw -u 89 vpopmail -s /sbin/nologin -m -k /dev/null
※vpopmail専用グループ、ユーザを作成
# wget http://jaist.dl.sourceforge.net/sourceforge/vpopmail/vpopmail-5.4.25.tar.gz
17:55:38 (495.79 KB/s) - `vpopmail-5.4.25.tar.gz' を保存しました [418736/418736]
※vpopmailをダウンロード(最新バージョンはココで確認可能)
# tar zxvf vpopmail-5.4.25.tar.gz
# cd vpopmail-5.4.25
※解凍し、vpopmailのディレクトリに移動
# ./configure \
--disable-clear-passwd \
--enable-logging=y
※コンパイル
# make && make install-strip
※インストール
インストール完了後、Vpopmailの初期設定を行う
# cp /etc/tcp.smtp* /home/vpopmail/etc
※tcp.smtp、tcp.smtp.cdbをVpopmail環境へ移動
# echo 'example.com' > /home/vpopmail/etc/defaultdomain
※バーチャルドメインのメインドメインを指定
※指定されたドメインはユーザ名のみで設定が可能となる
# vi /home/vpopmail/etc/vlimits.default
※デフォルト制限を変更
#default_quota 10485760
#default_maxmsgcount 1000
default_quota 104857600
※1ユーザのメールボックスの容量を100MBに変更
※tcp.smtp、tcp.smtp.cdbをVpopmail環境へ移動
# echo 'example.com' > /home/vpopmail/etc/defaultdomain
※バーチャルドメインのメインドメインを指定
※指定されたドメインはユーザ名のみで設定が可能となる
# vi /home/vpopmail/etc/vlimits.default
※デフォルト制限を変更
#default_quota 10485760
#default_maxmsgcount 1000
default_quota 104857600
※1ユーザのメールボックスの容量を100MBに変更
qmail起動スクリプトを変更
# vi /etc/rc.d/init.d/qmail
※SMTP、SMTPS、POP、POPSの全てを変更し、25番と110番を閉じる場合は、POPとSMTPの箇所をコメントアウトまたは削除する
# /etc/rc.d/init.d/qmail start
※qmailを起動
※SMTP、SMTPS、POP、POPSの全てを変更し、25番と110番を閉じる場合は、POPとSMTPの箇所をコメントアウトまたは削除する
#!/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:/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※変更
tcpserver -qv -l0 -HR -u `id -u vpopmail` -g `id -g vpopmail` \
-x /home/vpopmail/etc/tcp.smtp.cdb 0 smtp \
qmail-smtpd `hostname` /home/vpopmail/bin/vchkpw /bin/true 2>&1|\
splogger smtp &
# SMTPS※変更
tcpserver -qvs -l0 -HR -u `id -u vpopmail` -g `id -g vpopmail` \
-n /var/qmail/cert.pem -x /home/vpopmail/etc/tcp.smtp.cdb 0 smtps \
qmail-smtpd `hostname` /home/vpopmail/bin/vchkpw /bin/true 2>&1|\
splogger smtps &
# POP3※変更
tcpserver -qvRH -u `id -u vpopmail` -g `id -g vpopmail` \
0 pop3 qmail-popup `hostname` /home/vpopmail/bin/vchkpw \
qmail-pop3d Maildir 2>&1 | splogger pop3 &
# POP3S※変更
tcpserver -qvsRH -u `id -u vpopmail` -g `id -g vpopmail` \
-n /var/qmail/cert.pem \
0 pop3s qmail-popup `hostname` /home/vpopmail/bin/vchkpw \
qmail-pop3d Maildir 2>&1 | splogger pop3s &
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
#
# qmail
#
# chkconfig: 2345 80 30
# description: qmail start/stop script
# Source function library.
. /etc/rc.d/init.d/functions
PATH=/var/qmail/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※変更
tcpserver -qv -l0 -HR -u `id -u vpopmail` -g `id -g vpopmail` \
-x /home/vpopmail/etc/tcp.smtp.cdb 0 smtp \
qmail-smtpd `hostname` /home/vpopmail/bin/vchkpw /bin/true 2>&1|\
splogger smtp &
# SMTPS※変更
tcpserver -qvs -l0 -HR -u `id -u vpopmail` -g `id -g vpopmail` \
-n /var/qmail/cert.pem -x /home/vpopmail/etc/tcp.smtp.cdb 0 smtps \
qmail-smtpd `hostname` /home/vpopmail/bin/vchkpw /bin/true 2>&1|\
splogger smtps &
# POP3※変更
tcpserver -qvRH -u `id -u vpopmail` -g `id -g vpopmail` \
0 pop3 qmail-popup `hostname` /home/vpopmail/bin/vchkpw \
qmail-pop3d Maildir 2>&1 | splogger pop3 &
# POP3S※変更
tcpserver -qvsRH -u `id -u vpopmail` -g `id -g vpopmail` \
-n /var/qmail/cert.pem \
0 pop3s qmail-popup `hostname` /home/vpopmail/bin/vchkpw \
qmail-pop3d Maildir 2>&1 | splogger pop3s &
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
# /etc/rc.d/init.d/qmail start
※qmailを起動
再起動後、Vpopmailが有効になっています。
Vpopmailの基本的なファイルや各ユーザのメールは「/home/vpopmail」以下に保存されています。
メインドメインを設定
# /home/vpopmail/bin/vadddomain `hostname -d`
※メインドメイン追加
Please enter password for postmaster:
enter password again:
※Postmasterのパスワードを設定する
# vi /home/vpopmail/domains/`hostname -d`/.qmail-default
※メインドメインの設定を行う
※メインドメイン追加
Please enter password for postmaster:
enter password again:
※Postmasterのパスワードを設定する
# vi /home/vpopmail/domains/`hostname -d`/.qmail-default
※メインドメインの設定を行う
| /var/qmail/bin/fastforward -p -d /etc/aliases.cdb
※aliasesを有効化
| /home/vpopmail/bin/vdelivermail '' bounce-no-mailbox
↓※変更
| /home/vpopmail/bin/vdelivermail '' delete
※宛先不明のメールを破棄
※aliasesを有効化
| /home/vpopmail/bin/vdelivermail '' bounce-no-mailbox
↓※変更
| /home/vpopmail/bin/vdelivermail '' delete
※宛先不明のメールを破棄
以上で、基本的なVpopmailの設定は完了です。
「/home/vpopmail/メインドメイン名/」以下がメインドメインの領域になります。
また、バーチャルドメインを追加した場合は、メインドメインと同じ手法で追加すればOKです。
基本的な操作方法を載せておきますので、ご参考下さい。
バーチャルドメイン基本操作
バーチャルドメインを追加
# /home/vpopmail/bin/vadddomain hogehoge.com (追加するドメインを入力)
メールユーザ登録
# /home/vpopmail/bin/vadduser hoge@hogehoge.com (ユーザアカウント@ドメインで入力)
パスワード変更
# /home/vpopmail/bin/vchangepw
Please enter the email address: hoge@hogehoge.com (変更するメールアドレス)
hoge@hogehoge.com
Enter old password: (古いパスワードを入力)
Please enter password for hoge@hogehoge.com:
enter password again: (新しいパスワードを入力)
Password successfully changed.
バーチャルドメイン削除
# /home/vpopmail/bin/vdeldomain hogehoge.com (削除するドメインを入力)
ユーザ削除
# /home/vpopmail/bin/vdeluser hoge@hogehoge.com (ユーザアカウント@ドメインで入力)
# /home/vpopmail/bin/vadddomain hogehoge.com (追加するドメインを入力)
メールユーザ登録
# /home/vpopmail/bin/vadduser hoge@hogehoge.com (ユーザアカウント@ドメインで入力)
パスワード変更
# /home/vpopmail/bin/vchangepw
Please enter the email address: hoge@hogehoge.com (変更するメールアドレス)
hoge@hogehoge.com
Enter old password: (古いパスワードを入力)
Please enter password for hoge@hogehoge.com:
enter password again: (新しいパスワードを入力)
Password successfully changed.
バーチャルドメイン削除
# /home/vpopmail/bin/vdeldomain hogehoge.com (削除するドメインを入力)
ユーザ削除
# /home/vpopmail/bin/vdeluser hoge@hogehoge.com (ユーザアカウント@ドメインで入力)
基本的な操作はこんな感じです。
あとはメールデータの移行ですが、今回は新規構築を念頭に置いているのでしていません。
そこらへんは頑張ってググって下さいヾ(゚∀゚)ノ
コメント