APOP/SMTP-AUTH対応
(qmail-vidaによる)

2002年8月24日 改定

qmail を使ったメールサーバが構築できPOPによるメールの受信ができたならPOPやSMTPの根本的な問題に対して考察してみましょう。

以上のようにPOPおよびSMTPに対して暗号化・認証化の仕組を組み込む手順をいかに述べていきます。 認証機構としては、qmail-vida というパッケージを使います。 このパッケージはcheckpasswordに対するパッチとして提供されているので、以下の作業は既にqmail が正常に動作しているものとして説明を行います。

1.qmail-vida の入手

qmail-vidaは次のサイトから入手できます。

2.qmail-vidaのインストール

上記のサイトからqmail-vidaのパッケージを入手したなら、これを解凍してからコンパイルを行います。 なお解凍は、/usr/local/src/qmailディレクトリで行うものとします。

# cd /usr/local/src/qmail [Enter]
# tar zxvf qmail-vida-0.51.tar.gz [Enter]

Makefileを開き、qmail関係の各パッケージのソースファイルの存在する場所を指定します。

QMAILSRC = ../qmail-1.03
CHECKPASSWORDSRC= ../checkpassword-0.90
UCSPITCPSRC = ../ucspi-tcp-0.88
PREFIX = /var/qmail

patchディレクトリのパッチとD.J.Bernstein氏のライブラリをqmail とcheckpassword に適用します。

# make patch [Enter]
# make copy [Enter]

qmail-vidaのための管理用グループ「vida」、リアルドメイン所有ユーザ「pop」、パスワードDB管理ユーザ「authdb」、 qmailのusers/assignファイル管理ユーザ「qmailu」を作成します。 また、authdbとqmailuの2ユーザをvidaグルー プに所属させます。

# groupadd vida [Enter]
# adduser -s /bin/false -d /var/qmail pop [Enter]
# adduser -G vida -s /bin/false -d /var/qmail authdb [Enter]
# adduser -G vida -s /bin/false -d /var/qmail qmailu [Enter]

なお、これらのユーザ名やグループ名を違う名前にしたい場合には、src/vidaディレクトリの下にあるconf-usersファイルの中を書き換えてください。

■コンパイル

checkpasswordのコンパイルを行います。(すでにqmailをインストールしてあるならこの作業は終わっていると思います)

# cd /usr/local/src/qmail/checkpassword-0.90 [Enter] 
# make setup check [Enter]

を実行してcheckpasswordをインストールします。
つぎにvidaをインストールします。

# cd /usr/local/src/qmail/qmail-vida-0.51/src/vida [Enter]
# make setup check [Enter]
# cd ../.. [Enter]
# make install-doc [Enter]

3.起動スクリプトの修正

qmailの設定での起動スクリプトを以下のように修正します。 まず、qmailをすべて停止してください。停止後、スクリプトの変更をします。

( /var/qmail/supervise/qmail-smtpd/run )
#!/bin/sh
QMAILDUID=`id -u qmaild`
NOFILESGID=`id -g qmaild`
exec envdir /var/qmail/env sh -c ' softlimit -d6000000 \
  /usr/local/bin/tcpserver -vHR -l"$HOST" -u ${QMAILDUID} -g ${NOFILESGID} -c 40 0 smtp \
  /usr/local/bin/recordio /usr/local/bin/fixcrio \ 
  /var/qmail/bin/qmail-smtpd "$HOST" checkpassword qmail-smtpd
'
( /var/qmail/env/HOST )
hogehoge.co.jp 
      
( /var/qmail/env/DOMAINOWNER )
pop 
      
# mkdir -p /var/log/qmail/pop3d [Enter]
# chown qmaill /var/log/qmail/pop3d [Enter]
# mkdir /var/qmail/supervise/qmail-pop3d/log [Enter]
#
( /var/qmail/supervise/qmail-pop3d/run )
#!/bin/sh
#
# tcpserver -vHR -l "$HOST" -c40 -- "$IP" 110 \
  exec envdir /var/qmail/env sh -c '
  softlimit -d6000000 \ 
  tcpserver -v -c 40 0 pop3 \ 
  recordio \ 
  qmail-popup $HOST checkpassword qmail-pop3d Maildir 2>&1<BR>
' 
( /var/qmail/supervise/qmail-pop3d/log/run )
#!/bin/sh
exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t /var/log/qmail/pop3d
      

ユーザ認証DB作成

qmail-visaでは、APOPやSMTP-AUTHの認証時に独自のユーザパスワードDBの情報を使います。 まずDB用のエリアを作成します。

# vida-pwdbinit [Enter]
#

つぎにそれぞれのユーザ単位で自分のパスワードを設定します。
まず、各ユーザでログインし直し、

$ vida-passwd
Current password: ---- 初めての時は聞いてきません。
New Password:
Retype new password: 
$

以上で完了です。これでAPOPやSMTP-AUTHを使った認証が有効になるはずです。

付録

付録A.関連情報(参考にした情報Linkなど)

qmail-vidaに関する情報: http://qmail-vida.sourceforge.jp/
qmailご本家: http://www.qmail.org/
滝澤 隆史さんのInternet Mail Private Lab.(日本語) http://www.emaillab.org/index.html

Copyrightc 1998-2003 ROBATA.ORG

Mailwebmaster@robata.org