smtp-auth setup



smtp
認証の設定を書こうと思いましたが、まだうまく動いていません。 参考程度に見てください。 auth login でどんなユーザでも、どんなパスワードでも認証してしまいます。 どこか悪いところがあったら教えてください。



先に pop-before-smtp の設定の仕方を載せましたが、この頃の新しいメーラーはほとんど smpt認証の機能がついているので、やはり smtp もユーザ認証をして使うようにしようということでその設定方法を紹介します。 ここでは、すでに qmail を使用して通常の smtppop が動いていることを前提とします。 DNS を設定していない場合は先に設定してしまいましょう。 DNSの設定

まず、http://members.elysium.pl/brush/qmail-smtpd-auth から最新の patch をダウンロードしましょう。 すでに qmail をインストールしている人は、ソースを持っていると思いますが、なければ以下のところからダウンロードしてください。

ftp://ftp.jp.qmail.org/qmail/qmail-1.03.tar.gz

ftp://ftp.nlc.net.au/pub/unix/mail/qmail/qmail-date-localtime.patch

それぞれのファイルを解凍して patch をあてます。

$ tar xvzf qmail-1.03.tar.gz

$ tar xvzf qmail-smtpd-auth-0.30.tar.gz

$ cd qmai-1.03

$ patch -p1 < ../qmail-date-localtime.patch

$ cp ../qmail-smtpd-auth-0.30/* .

$ patch < auth.patch

スーバーユーザになって

# /etc/rc.d/ini.d/qmail stop
# make setup
# make check

/env/rc.d/init.d/qmail を以下のように編集します。

#!/bin/sh
#
# qmail: /var/qmail
PATH=/var/qmail/bin:/usr/local/bin:/bin:/usr/bin

[ -f /var/qmail/rc ] || exit 0

case "$1" in
start)
# Start daemons.
echo "Starting qmail."
csh -cf '/var/qmail/rc &'
tcpserver -v -u [qmaild
UID] -g [nofilesGID] -x /etc/tcp.smtp.cdb \
0 smtp /var/qmail/bin/qmail-smtpd /bin/checkpassword /bin/true \
2>&1 | /var/qmail/bin/splogger smtpd 3 &
tcpserver -v 0 pop3 /var/qmail/bin/qmail-popup \
[
自分のFQDN] /bin/checkpassword \
/var/qmail/bin/qmail-pop3d Maildir 2>&1 \
| /var/qmail/bin/splogger pop3d 3 &
echo
touch /var/lock/qmail
;;
stop)
# Stop daemons.
echo "Shutting down qmail."
PID=`/bin/ps -aef | grep qmail | awk '{print $2}'`
if [ ! -z "$PID" ] ; then
/bin/kill ${PID} 1> /dev/null 2>&1
fi
echo
rm -f /var/lock/qmail
;;

restart)
$0 stop
$0 start
;;
*)
echo "Usage: S99qmail {start|stop|restart}"
exit 1
esac

exit 0

終わったら、qmail を再起動します。

# /etc/rc.d/init.d/qmail start

では、テストしてみましょう。 色のついているところは reply です。

$ telnet localhost 25

Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 sc-66-27-199-14.socal.rr.com ESMTP

ehlo sc-66-27-199-14.socal.rr.com

(helo ではなく ehlo となっているところがミソです。 これを見逃していたので動かない動かないとだいぶ悩みました。)

250-sc-66-27-199-14.socal.rr.com
250-AUTH LOGIN CRAM-MD5 PLAIN
250-AUTH=LOGIN CRAM-MD5 PLAIN
250-PIPELINING
250 8BITMIME

auth login
334 VXNlcm4hbWU6
アカウント名
334 UGFzc1dvcmQ6
パスワード
235 ok, go ahead (#2.0.0)
mail from:
送信者メールアドレス
250 ok
rcpt to:
受信者メールアドレス
250 ok
data
354 go ahead
subject:test
test
.
250 ok 1016407241 qp 14071
quit
221 sc-66-27-199-14.socal.rr.com
Connection closed by foreign host.

これで、メールが届いていればOKです。 同じ事を外部からやってみて動くことを確認してください。 なお、メーラーのほうでsmtp認証をONにしないと、通常の動作になります。(ehlo ではなく helo になる)


戻る





更新日:2004/05/16, 11:09:09