前回のDomainKeysの話で、ヘッダが変わっても署名が有効かどうかで、寝ぼけたことを言ってましたね。
そもそも、メールが伝わる過程で、ヘッダなんてころころ変わるんだから、pgpだって全てのヘッダなんか見てるはずがないのでした。
それはさておき、今度はSASLを入れてみます。
参考にしたのは、ここです。
まずは、portsからsecurity/cyrus-sasl2をインストール。オプションは、WITH_AUTHDAEMON=yes。
続いて、portupgradeでpostfixをアップグレード。このとき、コンフィグ画面(?)でSASL2を有効にします。
そして、postfixのmain.cfに以下を追加。
これで、postfixを再起動すればおっけ~、のはず?
が、ぜんぜんうまく行きません。まったくうまくいきません。激しくうまくいきません。
エラーログをずらずら並べても良いのですが、今回は最終的にわかったことだけ書きます。
postfix sasl howtoには、sasl2のsampleの下のserverとclientでデバッグしろなんて書いてあるので、それを試してみました。
その前に、saslpasswd2コマンドで、/usr/local/etc/sasldb2.dbにユーザを追加してあります。
私が何か根本的に間違っているのか、はたまたsasl2の実装が悪いのか・・・。暇があったらソースでも読んで見ますかね~。
そもそも、メールが伝わる過程で、ヘッダなんてころころ変わるんだから、pgpだって全てのヘッダなんか見てるはずがないのでした。
それはさておき、今度はSASLを入れてみます。
参考にしたのは、ここです。
まずは、portsからsecurity/cyrus-sasl2をインストール。オプションは、WITH_AUTHDAEMON=yes。
続いて、portupgradeでpostfixをアップグレード。このとき、コンフィグ画面(?)でSASL2を有効にします。
そして、postfixのmain.cfに以下を追加。
smtpd_sasl_application_name = smtpd smtpd_sasl_local_domain = $myhostname後は、master.cfのsubmissionポートの設定のところで、SASLを有効にします。
submission inet n - n - - smtpd -o smtpd_sasl_auth_enable=yes -o smtpd_sasl_security_options=noanonymous -o broken_sasl_auth_clients=yes -o smtpd_client_restrictions= -o smtpd_helo_restrictions= -o smtpd_sender_restrictions= -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject -o smtpd_data_restrictions= -o smtpd_etrn_restrictions=reject -o content_filter=dksign:[127.0.0.1]:10028そして、/usr/local/lib/sasl2/smtpd.confファイルを作成します。今回は、courier-authdaemondを認証に使って、imapのパスワードで認証することにしてみようと思います。
pwcheck_method: authdaemond authdaemond_path: /var/run/authdaemond/socket mech_list: CRAM-MD5 PLAIN LOGINpostfixが、authdaemondのソケット(/var/run/authdaemond/socket)を読めるように、/etc/groupでpostfixをcourierグループに追加します。
これで、postfixを再起動すればおっけ~、のはず?
が、ぜんぜんうまく行きません。まったくうまくいきません。激しくうまくいきません。
エラーログをずらずら並べても良いのですが、今回は最終的にわかったことだけ書きます。
postfix sasl howtoには、sasl2のsampleの下のserverとclientでデバッグしろなんて書いてあるので、それを試してみました。
その前に、saslpasswd2コマンドで、/usr/local/etc/sasldb2.dbにユーザを追加してあります。
# saslpasswd2 -c -u `postconf -h myhostname` false
- serverとclientのオプション -s のサービスとは、コンフィグファイルの名前とは関係ない。コンフィグファイルの名前は、sample.confで決めうち。(なので、/usr/local/lib/sasl2/smtpd.confから/usr/local/lib/sasl2/sample.confにリンクをはった)
- なので、試すときには、サーバ側はオプションなしで起動。クライアント側は -m オプションだけ使えばよい。
- mechがPLAIN又はLOGINのときは、ユーザ名にはそのまま false を使って、パスワードは UNIXのパスワードを使うと、認証に成功する。それ以外の組み合わせは×。
- mechがCRAM-MD5のときは、ユーザ名はfalse@wizard-limit.net、パスワードはsaslpasswd2で設定したものを使うと、認証に成功する。それ以外の組み合わせは×。
※ これについては、ホスト名とメールのバーチャルドメインが違うためだとわかった。メーラからは、@以降はなくても大丈夫だった。
私が何か根本的に間違っているのか、はたまたsasl2の実装が悪いのか・・・。暇があったらソースでも読んで見ますかね~。
カテゴリ
Networkトラックバック(0)
このブログ記事を参照しているブログ一覧: SASL対応
このブログ記事に対するトラックバックURL: https://www.wizard-limit.net/cgi-bin/mt/mt-tb.cgi/1031
コメントする