5/29 起動スクリプトに誤りがありましたので修正致しました。
自前のDDNSサーバでのqmailによるプロバイダサーバ認証の設定方法がわかったので
postfixをあっさり捨ててqmail+vpopmailに。
alternatives --config mta
postfixからsendmailに戻します。
● qmai obp25対策 smtp-authインストール
# 取り合えず以下のファイルをダウンロードする。
qmail-1.03.tar.gz
qmail-date-localtime.patch
qmail-glibc.patch
qmail-remote-auth.patch
qmail-smtpd-relay-reject
ucspi-tcp-0.88.tar.gz
ucspi-tcp-0.88.errno.patch
vpopmail-5.4.25.tar.gz
autorespond-2.0.5.tar.gz
ezmlm-0.53.tar.gz
ezmlm-idx-0.40.tar.gz
ezmlm-idx-0.53.400.unified_41.patch
# qmail-remote-auth.patchはプロバイダが用意したsmtpサーバを認証させる為に必要。
# 必要なければ手順から省きます。
▼ ユーザの作成
mkdir /var/qmail
mkdir /var/qmail/alias
groupadd -g 130 nofiles
useradd -M -u 130 -g nofiles -s /bin/false -d /var/qmail/alias alias
useradd -M -u 131 -g nofiles -s /bin/false -d /var/qmail qmaild
useradd -M -u 132 -g nofiles -s /bin/false -d /var/qmail qmaill
useradd -M -u 133 -g nofiles -s /bin/false -d /var/qmail qmailp
groupadd -g 131 qmail
useradd -M -u 134 -g qmail -s /bin/false -d /var/qmail qmailq
useradd -M -u 135 -g qmail -s /bin/false -d /var/qmail qmailr
useradd -M -u 136 -g qmail -s /bin/false -d /var/qmail qmails
chown root.qmail /var/qmail
chown alias.qmail /var/qmail/alias
▼ インストール作業
tar zxvf qmail-1.03.tar.gz
tar zxvf vpopmail-5.4.25.tar.gz
cd qmail-1.03
cd /usr/local/src/qmail-1.03
cp -a /usr/local/src/qmail/vpopmail-5.4.25/contrib/qmail-smtpd-auth-0.5.6.tar.gz ./
tar -zxvf qmail-smtpd-auth-0.5.6.tar.gz
./install_auth.sh
patch < ../qmail-remote-auth.patch
patch < ../qmail-date-localtime.patch
patch < ../qmail-smtpd-relay-reject
patch < ../qmail-103.patch
patch < ../qmail-glibc.patch
vi qmail-remote.c
# 以下★印を追記(当然★は書かない)
------------------------------------------------------
str_diffn(smtptext.s+i+4,"AUTH PLAIN LOGIN\n",17) &&
str_diffn(smtptext.s+i+4,"AUTH PLAIN LOGIN ",17) &&
★str_diffn(smtptext.s+i+4,"AUTH CRAM-MD5 LOGIN PLAIN\n",26) &&
★str_diffn(smtptext.s+i+4,"AUTH CRAM-MD5 LOGIN PLAIN ",26) &&
str_diffn(smtptext.s+i+4,"AUTH=LOGIN\n",11) &&
------------------------------------------------------
make setup check
./config-fast mail.hogehoge-net.jp
# config-fastには少なくともAレコードで記載されているホスト名を記入
cd /var/qmail/alias
touch .qmail-mailer-daemon
echo "#" > /var/qmail/alias/.qmail-postmaster
echo "#" > /var/qmail/alias/.qmail-root
chmod 644 /var/qmail/alias/.qmail-*
echo 86400 > /var/qmail/control/queuelifetime
echo 20971520 > /var/qmail/control/databytes
echo 30 > /var/qmail/control/timeoutconnect
echo 420 > /var/qmail/control/timeoutremote
echo 50 > /var/qmail/control/concurrencyremote
# 上記、意味は自分で調べて適当な数値を設定
vi /var/qmail/control/smtproutes
------------------------------------------------------
使用ドメイン:プロバイダsmtpサーバ:ポート UID PASS
------------------------------------------------------
# 例 (すべてのドメインで、
# smtpサーバsmtp.aho-naのポート587にUID:hage、Pass:eroeroで接続する場合
------------------------------------------------------
:smtp.aho-na:587 hage eroero
------------------------------------------------------
cp -a /var/qmail/boot/home /var/qmail/rc
mv /usr/sbin/sendmail /usr/sbin/sendmail_bk
mv /usr/lib/sendmail /usr/lib/sendmail_bk
ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail
ln -s /var/qmail/bin/sendmail /usr/lib/sendmail
# ダウンロードディレクトリに移動
tar zxvf ucspi-tcp-0.88.tar.gz
cd ucspi-tcp-0.88
patch -s < ../ucspi-tcp-glibc.patch
make
make setup check
groupadd -g 140 vchkpw
useradd -u 140 -g 140 -d /home/vpopmail -m -s/bin/bash vpopmail
chmod 755 /home/vpopmail/
mkdir /home/vpopmail/etc
cd /home/vpopmail/etc
echo '127.:allow,RELAYCLIENT=""' > tcp.smtp
tcprules tcp.smtp.cdb tcp.smtp.tmp < tcp.smtp
chown -R 140:140 /home/vpopmail/etc
cd vpopmail-5.4.25
./configure --enable-roaming-users=y
make
make install-strip
chmod 700 /home/vpopmail/bin/vuserinfo
chown root:root /home/vpopmail/bin/vchkpw
chmod 4755 /home/vpopmail/bin/vchkpw
vi /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
/usr/local/bin/tcpserver \
-vHRp -l 0 -u `id -u vpopmail` -g `id -g vpopmail` -c 80 -x \
/home/vpopmail/etc/tcp.smtp.cdb 0 smtp \
/var/qmail/bin/qmail-smtpd \
/home/vpopmail/bin/vchkpw /usr/bin/true 2>&1 | \
/var/qmail/bin/splogger smtpd 4 &
# 587ポートへの接続が必要な場合有効にする
# /usr/local/bin/tcpserver \
# -vHRp -l 0 -u `id -u vpopmail` -g `id -g vpopmail`-c 80 -x \
# /home/vpopmail/etc/tcp.smtp.cdb 0 587 \
# /var/qmail/bin/qmail-smtpd \
# /home/vpopmail/bin/vchkpw /usr/bin/true 2>&1 | \
# /var/qmail/bin/splogger smtpd 4 &
# POP3 vpopmail Port 110
/usr/local/bin/tcpserver -u `id -u vpopmail` -g `id -g vpopmail` -c 120 -vHR -l 0 -x \
/home/vpopmail/etc/pop3.cdb 0 pop3 \
/var/qmail/bin/qmail-popup st-core.ddo.jp \
/home/vpopmail/bin/vchkpw \
/var/qmail/bin/qmail-pop3d Maildir 2>&1 | \
/var/qmail/bin/splogger &
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をポート毎に立てるのも気持ち悪いので
iptablesで587から25へ転送するようにするのが一般的かも。
chmod 755 /etc/rc.d/init.d/qmail
chkconfig --add qmail
chkconfig qmail on
service qmail start
vi /etc/crontab
# 以下追記
------------------------------------------------------
*/10 * * * * root /home/vpopmail/bin/clearopensmtp 2>&1 > /dev/null
------------------------------------------------------
------------------------------------------------------
# ダウンロードディレクトリに移動
tar zxvf ezmlm-0.53.tar.gz
tar zxvf ezmlm-idx-0.40.tar.gz
mv ezmlm-0.53/issub.c ezmlm-0.53/issub.c_
mv -f ezmlm-idx-0.40/* ezmlm-0.53/.
cd ezmlm-0.53
patch < idx.patch
patch < ../ezmlm-idx-0.53.400.unified_41.patch
make
make man
mv ezmlmrc ezmlmrc.org
cp ezmlmrc.jp ezmlmrc
make setup
# ダウンロードディレクトリに移動
tar zxvf autorespond-2.0.5.tar.gz
cd autorespond-2.0.5
make
cp autorespond /usr/local/bin
mkdir /home/vpopmail/tmp
chmod 777 /home/vpopmail/tmp
------------------------------------------------------
# qmailadminインストール
mkdir -p /home/qmailadmin/{logs,cgi-bin}
mkdir -p /home/qmailadmin/public_html/images/qmailadmin
# ダウンロードディレクトリに移動
tar zxvf qmailadmin-1.2.11.tar.gz
cd qmailadmin-1.2.11
./configure --enable-htmldir=/home/qmailadmin/public_html \
--enable-cgibindir=/home/qmailadmin/cgi-bin \
--with-htmllibdir=/home/qmailadmin/public_html \
--enable-cgipath=/cgi-bin/qmailadmin \
--enable-imagedir=/home/qmailadmin/public_html/images/qmailadmin/ \
--enable-autoresponder-bin=/var/qmail/bin \
--enable-ezmlmdir=/usr/local/bin/ezmlm \
--enable-ezmlm-mysql=no
make
make install-strip
# qmailadmin用バーチャルドメイン作成
sslか、通常とは違うポートで建てられるのが健明かと
------------------------------------------------------
ServerAdmin admin@hogehoge
ServerName hogehoge
DocumentRoot /home/qmailadmin/public_html
ScriptAlias /cgi-bin/ "/home/qmailadmin/cgi-bin/"
AllowOverride AuthConfig Limit
Options None
Order allow,deny
Allow from all
DirectoryIndex index.html index.htm index.cgi
AllowOverride ALL
Options None
Order allow,deny
Allow from all
ErrorLog /home/qmailadmin/log/error_log
CustomLog /home/qmailadmin/log/access_log common
------------------------------------------------------
# 当然apacheの再起動。