COMPUTER

RHEL 5 への qmailインストール (vpopmail)

前回までに以下の手順を記載しました。
・通常のqmail(port25)インストール
・SMTP-AUTH用qmail (port587)インストール
・tcpserverインストール
通常はここまででメール配信は可能ですが(設定は必要)今回の要件はvpopmailを導入してqmailのバーチャル環境を作成すると同時にpopサービス、pop-before-smtpによるリレー制御が必要となります。
以下はその手順の備忘録です。(今回で最後になります。)


1.vpopmail用ユーザー、グループの追加を行います。

# groupadd -g 210 vchkpw
# useradd -u 210 -g vchkpw -d /home/vpopmail -s /sbin/nologin vpopmail

2.アーカイブのダウンロード
ここでは /usr/local/src/vpopmail 以下にアーカイブをダウンロードします。

# wget http://www.inter7.com/vpopmail/vpopmail-5.4.0.tar.gz

3.リレー許可DBの作成
リレーを許可するネットワークの設定を行います。ここではlocalhostのIP 127.0.0.1のみリレーを許可する設定にしています。
適宜、導入先ネットワークの環境に合わせます。

# chmod 755 /home/vpopmail
# mkdir /home/vpopmail/etc
# cd /home/vpopmail/etc
# echo '127.:allow,RELAYCLIENT=""' > tcp.smtp <-リレー許可として127.を追加 # tcprules tcp.smtp.cdb tcp.smtp.tmp < tcp.smtp <-cdbの作成 # chown -R 210:210 /home/vpopmail/etc

4.vpopmailコンパイル用ファイルの修正
vpopmailのソースを一部修正します。

# tar zxvf vpopmail-5.4.0.tar.gz
# cd vpopmail-5.4.0
# vi vchkpw.c
vchkpw.c 684行目
hmac_md5( challenge, strlen(challenge), password, strlen(password), digest);
↓修正
hmac_md5( response, strlen(response), password, strlen(password), digest);
696行目
return(strcmp(digascii,response));
↓修正
return(strcmp(digascii,challenge));

5.vpopmailのコンパイルを行います。
以下は10分間、popしたIPを保持する場合のコンパイルオプションとなります。

# ./configure --prefix=/home/vpopmail --enable-vpopuser=vpopmail --enable-vpopgroup=vchkpw \
> --enable-roaming-users=y --enable-relay-clear-minutes=10 --enable-tcpserver-file=/home/vpopmail/etc/tcp.smtp \
> --enable-tcprules-prog=/usr/local/bin/tcprules \
> --enable-file-sync --enable-ip-alias-domains \
> --disable-passwd --enable-logging=y --disable-clear-passwd --enable-log-name=vpopmail

以下は出力結果

vpopmail 5.4.0
Current settings
---------------------------------------
vpopmail directory = /home/vpopmail
uid = 210
gid = 210
roaming users = ON --enable-roaming-users
tcpserver file = /home/vpopmail/etc/tcp.smtp
open_smtp file = /home/vpopmail/etc/open-smtp
rebuild tcpserver file = ON --enable-rebuild-tcpserver-file (default)
password learning = OFF --disable-learn-passwords (default)
md5 passwords = ON --enable-md5-passwords (default)
file locking = ON --enable-file-locking (default)
vdelivermail fsync = ON --enable-file-sync
make seekable = ON --enable-make-seekable (default)
clear passwd = OFF --disable-clear-passwd
user dir hashing = ON --enable-users-big-dir (default)
address extensions = OFF --disable-qmail-ext (default)
ip alias = ON --enable-ip-alias-domains
domain quotas = OFF --disable-domainquotas (default)
auth module = cdb --enable-auth-module=cdb (default)
auth inc = -Icdb
auth lib =
system passwords = OFF --disable-passwd (default)
pop syslog = show successful and failed login attempts
--enable-logging=y
auth logging = ON --enable-auth-logging (default)

6.vpopmailのインストール

# make
# make install

7.起動スクリプトの配置
qmail,smtp-auth用qmail,tcpserver,vpopmailの起動スクリプトを配置します。

# cd /etc/init.d/
# vi qmail

以下はスクリプトの内容、ドメイン名やホスト名は適宜、環境に合わせて変更します。

#!/bin/sh
# chkconfig: 345 85 85
# description: qmail server
# Source function library.
# Get config.
. /etc/sysconfig/network
# Check that networking is up.
if [ ${NETWORKING} = "no" ]
then
exit 0
fi
[ -f /var/qmail/rc ] || exit 0
PATH=$PATH:/var/qmail/bin:/usr/local/bin
QMAILDUID=`id -u qmaild`
NOFILESGID=`id -g qmaild`
case "$1" in
start)
echo -n "Starting... qmail"
csh -cf '/var/qmail/rc &'
# SMTP with tcpserver
/usr/local/bin/tcpserver -v -H -R -c 120 -u 201 -g 200 -l mail.hogehoge.com \
-x /home/vpopmail/etc/tcp.smtp.cdb 0 smtp \
/var/qmail/bin/qmail-smtpd 2>&1 | /var/qmail/bin/splogger smtpd &
# SMTP-auth with tcp server
/usr/local/bin/tcpserver -v -R -H -l mail.hogehoge.com -u 210 -g 210 \
0 587 /var/qmail/bin/qmail-smtpd-auth mail.hogehoge.com \
/home/vpopmail/bin/vchkpw /usr/bin/true \
2>&1 |/var/qmail/bin/splogger smtpd-auth &
# POP3 with tcpserver
/usr/local/bin/tcpserver -H -R -l mail.hogehoge.com \
-x /etc/tcp.pop3.cdb 0 pop3 \
/var/qmail/bin/qmail-popup hogehoge.com \
/home/vpopmail/bin/vchkpw /var/qmail/bin/qmail-pop3d Maildir &
touch /var/lock/qmail
;;
stop)
echo "Shutting down qmail."
PID=`/bin/ps -aefw | grep qmail | awk '{print $2}'`
if [ ! -z "$PID" ] ; then
/bin/kill ${PID} 1> /dev/null 2>&1
fi
rm -f /var/lock/qmail
;;
*)
echo "Usage: "$0" {start|stop}"
exit 1
esac
exit 0

保存後、パーミッションを設定します。
パーミッション設定後、自動起動するように設定を行います。

# chmod 755 qmail
# chkconfig qmail on

これで設定は完了です。

# /etc/init.d/qmail start

でpop3,qmail(25),qmail(587)が起動しているかを確認します。
あとは適宜、以下の設定を行います。
tcp.pop3.cdbが無いと怒られる場合
以下の手順で、tcp.pop3.cdbを作成します。

# vi /etc/tcp.pop3
:allow

その後

# tcprules /etc/tcp.pop3.cdb /etc/tcp.pop3.tmp < /etc/tcp.pop3

を実行して、tcp.pop3.cdbを作成する。
vpopmail アクセス制御の方法について

# tcprules ./tcp.smtp.cdb /./tcp.smtp.tmp < ./tcp.smtp

ここに記載したネットワークからのメールは全てリレーが可能
その他、pop-before-smtpで許可されたネットワークは /home/vpopmail/etc/open-smtpファイルに 追加されていく。
ここまでで設定は完了です。後はvadddomainやvadduserを使用してドメインにユーザーを追加し、メールが配信されるか確認して下さい。
かなり面倒ですが、ここまで来れば運用まではあとちょっとです。

関連記事

  1. COMPUTER

    bootcampの注意点

    私はiMacを仕事用として利用しています。OSXはUNIXライクな使…

  2. COMPUTER

    Google Adsenseの異常?

    このサイトではGoogle Adsenseを使用している。(現在は利用…

  3. COMPUTER

    fstabの書き換え

    Linuxを使用していて、/etc/fstabの書き換えたところ、正常…

  4. COMPUTER

    Samba + OpenLDAP バージョンアップ

    いや~、一ヶ月も間が空いていました。カリスマブロガーと言われる人たちは…

  5. COMPUTER

    RHEL 5 への qmailインストール (PORT587)

    前回の続きです。すでに25番ポートで動作するqmailがインストー…

  6. COMPUTER

    mdadmによるソフトウェアRAID

    我が家ではwebサーバをソフトウェアRAIDで運用しています。S/W …

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

  1. WEAR

    Patagonia Trucker hat
  2. popeye-201511-02

    BOOKS

    POPEYEを買う 「大人になれば。」
  3. BOOKS

    ザ・ギバー
  4. WEAR

    Patagonia Down Sweater Pullover Hoody
  5. BIKE

    久々の単車
PAGE TOP