九州工業大学の上野と申します.初めて投稿させて頂きました. 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