最終更新日 2005/10/1  戻る  493717 人 REMOTE = 38.103.63.59 REFERER =

qmailでsmtp認証+netqmail

qmailではrelay-ctrlでも認証ができますが(Pop before Smtp)
smtp認証をするためにはどうすればいいのでしょうか.
このためにqmail-vidaがあります.(qmail-vida-0.53.tar.gz)
ここでは,すでにqmailがインストールしてあるとします.(qmail参照)
以前に作った,/usr/local/src/qmail-1.03とかは全て,消しましょう.
例えば

# cd /usr/local/src
# rm -R qmail-1.03
# rm -R checkpassword-0.90
# rm -R ucspi-tcp-0.88

1.最初からやり直します.
今回は様々なパッチが自動的に導入できるnetqmailを使用することにします.
もうすでに,/usr/local/srcに
netqmail-1.05.tar.gz
checkpassword-0.90.tar.gz
qmail-vida-0.53.tar.gz
ucspi-tcp-0.88.tar.gz
があるとします.
# cd /usr/local/src
# tar xzvf netqmail-1.05.tar.gz
# cd netqmail-1.05
# ./collate.sh (netqmail のソース展開と付属パッチの適用)
# cd ..
# tar xzvf checkpassword-0.90.tar.gz
# tar xzvf qmail-vida-0.53.tar.gz
# tar xzvf ucspi-tcp-0.88.tar.gz
次にqmail-vidaのMakefileを編集.
/usr/local/src/qmail-vida-0.53/Makefile 以下の赤字部分を書き換える.
QMAILSRC    = ../netqmail-1.05/netqmail-1.05
.
.
patch-qmail:
    here=`pwd` && cd ${QMAILSRC} && \
    ${PATCH} -p1 -F 3 < $${here}/patch/qmail.patch

2.必要なグループとユーザを用意します.
# groupadd vida
# useradd -g vida -d /var/qmail/ -s /bin/false qmailu
# useradd -g vida -d /var/qmail/ -s /bin/false authdb
# useradd -g vida -d /home/pop/ -s /bin/bash pop
user pop は仮想メールボックスを使用するために必要です.

3.パッチを当てる
patchファイルを用意します.
・qmail-date-localtime.patch
 ここにあります.
 qmailの生成するヘッダー内の日付をローカルタイムに修正するためのパッチ
・qmail-smtpd-relay-reject
 ここにあります.
 http://www.abuse.net/relay.htmlなどでは途中でだめって言われます.
 そのためのパッチ.
qmail-date-localtime.patch
qmail-smtpd-relay-reject
が/usr/local/srcにあるとします.
# cd /usr/local/src/qmail-vida-0.53
# make patch

# cd /usr/local/src/netqmail-1.05/netqmail-1.05
# patch -p1 < ../../qmail-date-localtime.patch
# patch -p1 < ../../qmail-smtpd-relay-reject

# cd /usr/local/src/checkpassword-0.90
# patch -p1 < ../netqmail-1.05/other-patches/checkpassword-0.90.errno.patch

# cd /usr/local/src/ucspi-tcp-0.88
# patch -p1 < ../netqmail-1.05/other-patches/ucspi-tcp-0.88.errno.patch
# patch -p1 < ../netqmail-1.05/other-patches/ucspi-tcp-0.88.a_record.patch

# cd /usr/local/src/qmail-vida-0.53
# make copy
4.コンパイルとインストール
# cd /usr/local/src/netqmail-1.05/netqmail-1.05
# make setup check
# ./config-fast    ← 初回設定のみ 

# cd /usr/local/src/checkpassword-0.90
POPおよびSMTP認証の平文パスワードを/etc/passwdと一緒にしたい場合は以下の設定をする.
# cd ../checkpassword-0.90/
# vi conf-withpasswd
1行目の「0」を「1」に変更 
# make setup check

# cd /usr/local/src/qmail-vida-0.53/src/vida
# make setup check
# cd ../../
# make install-doc (ドキュメントのインストール)
# cd /usr/local/src/ucspi-tcp-0.88 # make setup check
これらはqmailのサービスをストップしてからしてください.でないとmake時にエラーが出ます.
とりあえずインストールはこれでお終いです.

5.起動スクリプトとtcpwrapperの変更
tcpserverのcdbを作成する.
# cd /etc/service
# vi tcp.pop3
:allow,ALLOWPLAIN=""
cdbへ変換:
# tcprules tcp.pop3.cdb tcp.pop3.tmp < tcp.pop3

# vi tcp.smtp
127.0.0.1:allow,RELAYCLIENT="",ALLOWPLAIN=""
:allow,ALLOWPLAIN=""
cdbへ変換:
# tcprules tcp.smtp.cdb tcp.smtp.tmp < tcp.smtp

これで/etc/serviceにtcp.smtp.cdb,tcppop3.cdbが作成されました.
次に/etc/rc.d/init.d/qmailの
# Start smtpdと # Start pop3dの部分を書き換えます.
# Start smtpd
   exec env - ALLOWPLAIN="0.0.0.0" DOMAINOWNER=""\
   /usr/local/bin/tcpserver -vHR -x /etc/service/tcp.smtp.cdb 0 smtp \
   /usr/local/bin/rblsmtpd -r relays.ordb.org -r sbl.spamhaus.org \
   /var/qmail/bin/qmail-smtpup $HOST \
   /var/qmail/bin/checkpassword /var/qmail/bin/qmail-smtpd \
    2>&1 | /var/qmail/bin/splogger smtpd 4 &

# Start pop3d
   exec env - ALLOWPLAIN="0.0.0.0" DOMAINOWNER=""\
   /usr/local/bin/tcpserver -vHR -x /etc/service/tcp.pop3.cdb 0 110 \
   /var/qmail/bin/qmail-popup $HOST \
   /var/qmail/bin/checkpassword /var/qmail/bin/qmail-pop3d Maildir \
   2>&1 | /var/qmail/bin/splogger popd 3 &

もちろん元の/etc/rc.d/init.d/qmailはどこかにしまっておきます.
ALLOWPLAIN="0.0.0.0"は平文認証(普通のPOP)を行うアドレスを指定.
0.0.0.0ではすべて平文認証を行う.
DOMAINOWNER=""はリアルユーザのみの場合で省略可.

6.パスワードの作成
/var/qmail/bin/vida-pwdbinit
メールパスワード用DBを作成(最初の1回だけでよい)
*リアルユーザの場合
# su - user
user$ /var/qmail/bin/vida-passwd    ← パスワード作成
user$ /var/qmail/bin/vida-passwd -c  ← パスワード変更
user$ /var/qmail/bin/vida-passwd -d  ← 登録削除
/var/qmail/authdb/pwdusers/passwdにパスワードが記録されます.

*仮想ユーザの場合
user$ su pop
pop$ /var/qmail/bin/vida-passwd -a -u kai      ← ユーザkaiのパスワード作成
pop$ /var/qmail/bin/vida-assign -a -u kai      ← ユーザkaiのassign+qmail-newu
pop$ /var/qmail/bin/vida-maildirmake kai Maildir ← /home/pop/kaiのディレクトリとMaildirの作成 

pop$ /var/qmail/bin/vida-passwd -c -u kai     ← パスワードの変更
pop$ /var/qmail/bin/vida-passwd -d -u kai     ← ユーザの削除
pop$ /var/qmail/bin/vida-assign -d -u kai
pop$ cd ~
pop$ rm -rf ./kai
/var/qmail/authdb/pop/passwdにパスワードが記録されます.
ドットqmailは上記では作成されないので手動で作成する.

このページは以下のHPを参照しました.
http://www.asama.net/~omori/qmail.html
http://www.inugami.com/tech/qmail.asp
http://to-bb.mine.nu/linux/qmail.html
http://www.asahi-net.or.jp/~aa4t-nngk/qmail7.html

Copyright 2002-2003 Kai All Rights Reserved & This site is Link Free 戻る