vine-users ML アーカイブ



[vine-users:053123] Postfix + Cyrus-SASL で SMTP-AUTH の導入

  • From: Takamasa UENO <ueno@xxxxxxxxxxxxxxxxxxxxxxxxx>
  • Subject: [vine-users:053123] Postfix + Cyrus-SASL で SMTP-AUTH の導入
  • Date: Mon, 26 Aug 2002 05:13:03 +0900
九州工業大学の上野と申します.初めて投稿させて頂きました.

Vine Linux 2.5 で MTA を立ち上げようと思い,
Postfix と Cyrus-SASL で SMTP-AUTH を導入しようとしています.
とは言っても一度はうまく動作したのですが,
その後 Postfix-TLS というもの知り
Red Hat 7.3 の Source RPM を使って挑戦したのですが,
うまく行きませんでした.
そこで,とりあえず TLS は置いておいて,
元通りに戻したいと思い,再セットアップしてみたものの,
/var/log/maillog で

SASL CRAM-MD5 authentication failed

と言われるようになり,認証が上手くいかなくなってしまいました.
何とか元の状態に戻したいのですが,上手く行きません.


セットアップの手順は

1. Red Hat のパッケージをアンインストール.

# rpm -e postfix
# rpm -e cyrus-sasl cyrus-sasl-devel cyrus-sasl-gssapi cyrus-sasl-md5cyrus-sasl-plain
# rpm -e krb5-devel krb5-libs krb5-server krb5-workstation

 その後で設定ファイル等を完全に消すために,

# rm -fr /usr/kerberos/ /usr/lib/sasl/
# rm -fr /usr/libexec/postfix/ /usr/lib/postfix/ /var/spool/postfix/ /etc/postfix/
# rm /usr/lib/libsasl* /etc/sasldb


2. VineSeed から Source RPM をダウンロードして ビルド&インストール

# apt-get source cyrus-sasl postfix
# rpm -ivh rpm/SRPMS/cyrus-sasl-1.5.27-17vl1.src.rpm
# rpm -ivh rpm/SRPMS/postfix-1.1.11-0vl1.src.rpm
# vi rpm/SPECS/postfix.spec

 %build
 make makefiles CCARGS="-DUSE_SASL_AUTH -I/usr/include" AUXLIBS="-L/usr/lib -lsasl"   <--- この1行を追加.
 make DEBUG="" OPT="$RPM_OPT_FLAGS"

# rpm -bb rpm/SPECS/cyrus-sasl.spec
# rpm -ivh rpm/RPMS/i386/cyrus-sasl-*.rpm rpm/RPMS/i386/cyrus-sasl-devel-*.rpm
# rpm -bb rpm/SPECS/postfix.spec
# rpm -ivh rpm/RPMS/i386/postfix-*.rpm


3. SMTP AUTH 用のパスワードおよびデータベースの作成

# vi /usr/lib/sasl/smtpd.conf

 pwcheck_method:sasldb

# saslpasswd -c -u hoge.cntl.kyutech.ac.jp fuga
# chgrp postfix /etc/sasldb
# chmod 640 /etc/sasldb

 ちなみに,データベースは

# sasldblistusers
user: fuga realm: hoge.cntl.kyutech.ac.jp mech: CRAM-MD5
user: fuga realm: hoge.cntl.kyutech.ac.jp mech: PLAIN
user: fuga realm: hoge.cntl.kyutech.ac.jp mech: DIGEST-MD5

 と表示されます.


4. Postfix 設定ファイルの編集

# vi /etc/postfix/main.cf

(以下の行を編集)
myhostname = hoge.cntl.kyutech.ac.jp
mydomain = cntl.kyutech.ac.jp
inet_interfaces = all
mydestination = $myhostname, localhost.$mydomain
mynetworks = 150.69.46.0/24, 127.0.0.0/8
relay_domains = $mydestination
mail_spool_directory = /var/spool/mail
(SASLの設定を追加)
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = $myhostname
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, check_relay_domains,reject
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes


5. Postfix をスタート

# /etc/init.d/postfix start


以上です.メールクライアントは Sylpheed 0.7.4 を使っていますが,
次のようなログが出ます.

SMTPサーバ: hoge.cntl.kyutech.ac.jp に接続中...
SMTP< 220 hoge.cntl.kyutech.ac.jp ESMTP Postfix (1.1.11) (Vine Linux)
ESMTP> EHLO hoge.cntl.kyutech.ac.jp
ESMTP< 250-hoge.cntl.kyutech.ac.jp
ESMTP< 250-PIPELINING
ESMTP< 250-SIZE 10240000
ESMTP< 250-VRFY
ESMTP< 250-ETRN
ESMTP< 250-AUTH PLAIN LOGIN DIGEST-MD5 CRAM-MD5
ESMTP< 250-AUTH=PLAIN LOGIN DIGEST-MD5 CRAM-MD5
ESMTP< 250-XVERP
ESMTP< 250 8BITMIME
ESMTP> AUTH CRAM-MD5
ESMTP< 334 PDQyMjYyMTUzNzQuNjg5NDY5MUBzdXNhbm9vLmNudGwua3l1dGVjaC5hYy5qcD4=
ESMTP< Decoded: <4226215374.6894691@xxxxxxxxxxxxxxxxxxxxxxx>ctive.png
ESMTP> Encoded fuga 8c167944df2bdba78a0d7a205a2accfd
ESMTP> c210cHVzZXIgOGMxNjc5NDRkZjJiZGJhNzhhMGQ3YTIwNWEyYWNjZmQ=
ESMTP< 535 Error: authentication failed
*** Error occurred while sending MAIL FROM
*** SMTP AUTH failed
SMTP> QUIT
SMTP< 221 Bye

/etc/postfix/main.cf の smtpd_sasl_* の行をコメントアウトして
Postfix を再起動すれば,普通の SMTP でメールを送信することは
できるので Postfix 自体は動作していると思います.

メールが長くなってすみません.
識者のみなさま,アドバイスがございましたら,是非ともお願い致します.


----
上野貴雅
九州工業大学大学院 工学研究科
機械知能工学専攻 制御分野 修士課程 1年
Email: ueno@xxxxxxxxxxxxxxxxxxxxxxxxx