シミズと申します。
ただ今、SMTPサーバの立ち上げで暗礁に乗り上げており
お力添えをいただきたくメールいたしました。
<案件>
以下のLinux+PostfixとメールクライアントThunderbirdでTLS送信したいと考えています。
Linux Distribution:Fedora Core5(DVD版)
Postfix:2.2.8-1.2 ←src.rpmをデフォルトのpostfix.specでrpmbuild
パソコンおやじ様のページを拝見させていただいて
dovecotによるSSL通信まではできたのですが。。。
Postfixでは保護されない認証はできても
TLSをかけると以下のようにfailしてしまいます。
<保護されない認証-成功例>
※MD5が失敗してますがこれはsasldb2を現状は使おうとした名残りで、
/usr/・・・/sasl2/smtpd.confでsaslauthdを、
/etc/・・・/saslauthdでshadowを指定してPlain認証で試験しています。
220 hogehoge.ddo.jp ESMTP Postfix
EHLO [192.168.1.100]
250-hogehoge.ddo.jp
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-AUTH CRAM-MD5 PLAIN LOGIN DIGEST-MD5
250 8BITMIME
AUTH CRAM-MD5
334 PDMxMzQxODE0NjkuOTQyM0BoeXBlcnNwb3J0cy13ZWIuZGRvLmpwPg==
c19zaGlteiBhNjlhNjA3MmNjQ0M2Y1MTNhZjU3MDQzN2ExMjEyZA==
535 Error: authentication failed
AUTH PLAIN AHNfc2amjazM1MFo=
235 Authentication successful
MAIL FROM:<hoge@hogehoge.ddo.jp> SIZE=382
250 Ok
RCPT TO:<hoge@hogehoge.ddo.jp>
250 Ok
DATA
354 End data with <CR><LF>.<CR><LF>
Message-ID:・・・・・
・・・・・
.
250 Ok: queued as 0C82856B67
QUIT
221 Bye
<TLSによる認証-失敗例>
220 hogehoge.ddo.jp ESMTP Postfix
EHLO [192.168.1.100]
250-hogehoge.ddo.jp
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH CRAM-MD5 PLAIN LOGIN DIGEST-MD5
250 8BITMIME
STARTTLS
454 TLS not available due to local problem
ここで、実のところNortonAntiVをインストールしていますが
上記試験結果はAntiVの保護をすべて無効にはしたつもりです。
また以下の行をmaster.cfに入れるとpostfix自体が起動できなくなる状態です。
localhost:smtp-backdoor inet n - n - - smtpd -o content_filter=
以下にmaster.cfとmain.cfの主要変更箇所をお示ししておきます。
どこに問題があるか特定できていないようで
自分では手がつきてしまいました。
何卒よろしくお願い申し上げます。
<master.cf>
smtp inet n - n - - smtpd
#submission inet n - n - - smtpd
# -o smtpd_etrn_restrictions=reject
# -o smtpd_client_restrictions=permit_sasl_authenticated,reject
#smtps inet n - n - - smtpd
# -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes
smtps inet n - n - - smtpd
-o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes
#submission inet n - n - - smtpd
# -o smtpd_etrn_restrictions=reject
# -o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes
#628 inet n - n - - qmqpd
pickup fifo n - n 60 1 pickup
cleanup unix n - n - 0 cleanup
qmgr fifo n - n 300 1 qmgr
#qmgr fifo n - n 300 1 oqmgr
#tlsmgr unix - - n 1000? 1 tlsmgr
tlsmgr fifo - - n 300 1 tlsmgr
#localhost:smtp-backdoor inet n - n - - smtpd -o content_filter=
・・・≪後半部分省略≫・・・
<main.cf>
・・・≪前半部分省略≫・・・
#Enable SMTP Auth
smtpd_sasl_auth_enable=yes
smtpd_sasl_security_option=noanonymous
broken_sasl_auth_clents=yes
smtpd_recipient_restrictions=permit_mynetworks,permit_auth_destination, permit_sasl_authenticated, reject
smtpd_tls_cert_file = /usr/local/certs/hoge.crt
smtpd_tls_key_file = /usr/local/certs/hoge.key
smtpd_tls_loglevel = 1
smtpd_use_tls=yes
smtpd_tls_session_cache_database = sdbm:/etc/postfix/smtpd_scache
tls_random_source = dev:/dev/urandom
<PS>
上記質問をメールでしたところ、以下の返信がありこちらに投稿させていただきました。
<以下おやじ様のメール>
基本的な問題や疑問等はBBSを活用してください。そうしないと、同じようなご質問に何度も答えなければならず、おやじの時間がつぶれてしまいます。
BBSならおやじ以外の方も答えてくれますし、他の方の参考にもなる類似質問が避けられますのでよろしくお願いします。
いつも皆さんに申し上げていることですが、駄目なときのPostfixのログがどうなっているかです。全てはデーモンのログからです。
debug_peer_list = 192.168.1.10
のようにクライアントのアドレスをmain.cf(最後のほうにある)で指定してあげると、非常に細かいログが採れます。
パソコンおやじ様からご指摘いただいたdegub_peer_listにクライアントアドレスを入れてpostfixを起動してみました。
(以下、/var/log/maillogに沿ってレポート形式で)
Jun 15 01:27:21 beckhum postfix/master[26761]: daemon started -- version 2.2.8,
configuration /etc/postfix
Jun 15 01:28:01 beckhum postfix/postfix-script: stopping the Postfix mail systemJun 15 01:28:01 beckhum postfix/master[26761]: terminating on signal 15
Jun 15 01:28:06 beckhum postfix/postfix-script: starting the Postfix mail systemJun 15 01:28:07 beckhum postfix/master[26821]: fatal: 127.0.0.1:smtp-backdoor: Servname not supported for ai_socktype
Jun 15 01:28:08 beckhum postfix/postfix-script: fatal: the Postfix mail system is not running
fatalがでているので、まず、この設定
->[master.cf]:localhost:smtp-backdoor inet n - n - - smtpd -o content_filter=
に問題がありそう。
これをコメントアウトするとpostfixは起動できるようになったが、起動後、以下のようなfatalが発生。
Jun 15 01:28:48 beckhum postfix/postfix-script: starting the Postfix mail systemJun 15 01:28:48 beckhum postfix/master[27046]: daemon started -- version 2.2.8,
configuration /etc/postfix
Jun 15 01:28:49 beckhum postfix/tlsmgr[27050]: fatal: unsupported transport type: fifo
Jun 15 01:28:50 beckhum postfix/master[27046]: warning: process /usr/libexec/postfix/tlsmgr pid 27050 exit status 1
Jun 15 01:28:50 beckhum postfix/master[27046]: warning: /usr/libexec/postfix/tlsmgr: bad command startup -- throttling
さらにTLSでサーバアクセスすると以下のようなwarningでTLSが失敗することが判明。
Jun 15 01:29:10 beckhum postfix/smtpd[27051]: warning: connect to private/tlsmgr: Connection refused
Jun 15 01:29:10 beckhum postfix/smtpd[27051]: warning: problem talking to server private/tlsmgr: Connection refused
Jun 15 01:29:11 beckhum postfix/smtpd[27051]: warning: connect to private/tlsmgr: Connection refused
Jun 15 01:29:11 beckhum postfix/smtpd[27051]: warning: problem talking to server private/tlsmgr: Connection refused
Jun 15 01:29:11 beckhum postfix/smtpd[27051]: warning: no entropy for TLS key generation: disabling TLS support
この設定->[master.cf]:tlsmgr fifo - - n 300 1 tlsmgr
に問題がありそうだったのでコメントアウトし、
Postfix 2.2.8-1.2デフォルトの設定
->[master.cf]:tlsmgr unix - - n 1000? 1 tlsmgr
は変えない方がよいのだと判断して元に戻すと以下のようにfatalなく起動はした。
Jun 15 01:36:18 beckhum postfix/postfix-script: stopping the Postfix mail systemJun 15 01:36:18 beckhum postfix/master[27117]: terminating on signal 15
Jun 15 01:36:23 beckhum postfix/postfix-script: starting the Postfix mail systemJun 15 01:36:24 beckhum postfix/master[27181]: daemon started -- version 2.2.8,
configuration /etc/postfix
しかし、TLS通信でサーバアクセスすると以下のようにfatalが再び発生。
sdbmがunsupportとあった。
Jun 15 01:49:09 beckhum postfix/tlsmgr[27190]: fatal: unsupported dictionary type: sdbm
Jun 15 01:49:10 beckhum postfix/master[27181]: warning: process /usr/libexec/postfix/tlsmgr pid 27190 exit status 1
Jun 15 01:49:10 beckhum postfix/master[27181]: warning: /usr/libexec/postfix/tlsmgr: bad command startup -- throttling
この設定
->[main.cf]:smtpd_tls_session_cache_database = sdbm:/etc/postfix/smtpd_scache
に問題がありそう。これをコメントアウトしたら正常にTLS通信でメールの送信ができた。
ちなみに、このバージョンではクライアントのNortonAV問題が解決していそうでした。(※NortonAV2006を有効化しても送信可能だった)
と、ここまでは来たのですが。。。
当初おやじ様のご指摘の中にもあったのですが、ここにきて「確認できない認証局」攻撃に遭っています。
証明書の仕組みは何となく理解したつもりなのですが、スクリプトCAで作る方法と、opensslでコマンドレベルで作る方法とで混乱する部分があり、発行対象=サーバ、発行元=認証局が意図した通りに設定されているのか、かなり疑心暗鬼になってしまってます。(はたまたCA証明書のクライアントインストールがうまくいっていないのか。。。等)
もう少しがんばってみます。
> パソコンおやじ様からご指摘いただいたdegub_peer_listにクライアントアドレスを入れてpostfixを起動してみました。
>
> (以下、/var/log/maillogに沿ってレポート形式で)
> Jun 15 01:27:21 beckhum postfix/master[26761]: daemon started -- version 2.2.8,
> configuration /etc/postfix
> Jun 15 01:28:01 beckhum postfix/postfix-script: stopping the Postfix mail systemJun 15 01:28:01 beckhum postfix/master[26761]: terminating on signal 15
> Jun 15 01:28:06 beckhum postfix/postfix-script: starting the Postfix mail systemJun 15 01:28:07 beckhum postfix/master[26821]: fatal: 127.0.0.1:smtp-backdoor: Servname not supported for ai_socktype
> Jun 15 01:28:08 beckhum postfix/postfix-script: fatal: the Postfix mail system is not running
>
> fatalがでているので、まず、この設定
> ->[master.cf]:localhost:smtp-backdoor inet n - n - - smtpd -o content_filter=
> に問題がありそう。
おやじのコンテンツ全体を見ないとわかりにくいかもしれませんが、これはAntiVir Mailgateをインストールしたときの設定なので書いたら動きません。
> これをコメントアウトするとpostfixは起動できるようになったが、起動後、以下のようなfatalが発生。
>
> Jun 15 01:28:48 beckhum postfix/postfix-script: starting the Postfix mail systemJun 15 01:28:48 beckhum postfix/master[27046]: daemon started -- version 2.2.8,
> configuration /etc/postfix
> Jun 15 01:28:49 beckhum postfix/tlsmgr[27050]: fatal: unsupported transport type: fifo
> Jun 15 01:28:50 beckhum postfix/master[27046]: warning: process /usr/libexec/postfix/tlsmgr pid 27050 exit status 1
> Jun 15 01:28:50 beckhum postfix/master[27046]: warning: /usr/libexec/postfix/tlsmgr: bad command startup -- throttling
>
> さらにTLSでサーバアクセスすると以下のようなwarningでTLSが失敗することが判明。
>
> Jun 15 01:29:10 beckhum postfix/smtpd[27051]: warning: connect to private/tlsmgr: Connection refused
> Jun 15 01:29:10 beckhum postfix/smtpd[27051]: warning: problem talking to server private/tlsmgr: Connection refused
> Jun 15 01:29:11 beckhum postfix/smtpd[27051]: warning: connect to private/tlsmgr: Connection refused
> Jun 15 01:29:11 beckhum postfix/smtpd[27051]: warning: problem talking to server private/tlsmgr: Connection refused
> Jun 15 01:29:11 beckhum postfix/smtpd[27051]: warning: no entropy for TLS key generation: disabling TLS support
>
> この設定->[master.cf]:tlsmgr fifo - - n 300 1 tlsmgr
> に問題がありそうだったのでコメントアウトし、
> Postfix 2.2.8-1.2デフォルトの設定
> ->[master.cf]:tlsmgr unix - - n 1000? 1 tlsmgr
> は変えない方がよいのだと判断して元に戻すと以下のようにfatalなく起動はした。
FC5 は2.2系ですから、typeはfifoではなくunixに変わっているので、デフォルトままでないと駄目です。
バージョン違いでこういうことがあるので、まったく同じでない限りこういう問題にぶつかりますね。
degub_peer_listを入れると結構原因がローカライズできると思います。ポイントは良く押さえられていると思いますね。
> Jun 15 01:36:18 beckhum postfix/postfix-script: stopping the Postfix mail systemJun 15 01:36:18 beckhum postfix/master[27117]: terminating on signal 15
> Jun 15 01:36:23 beckhum postfix/postfix-script: starting the Postfix mail systemJun 15 01:36:24 beckhum postfix/master[27181]: daemon started -- version 2.2.8,
> configuration /etc/postfix
>
> しかし、TLS通信でサーバアクセスすると以下のようにfatalが再び発生。
> sdbmがunsupportとあった。
>
> Jun 15 01:49:09 beckhum postfix/tlsmgr[27190]: fatal: unsupported dictionary type: sdbm
> Jun 15 01:49:10 beckhum postfix/master[27181]: warning: process /usr/libexec/postfix/tlsmgr pid 27190 exit status 1
> Jun 15 01:49:10 beckhum postfix/master[27181]: warning: /usr/libexec/postfix/tlsmgr: bad command startup -- throttling
>
> この設定
> ->[main.cf]:smtpd_tls_session_cache_database = sdbm:/etc/postfix/smtpd_scache
> に問題がありそう。これをコメントアウトしたら正常にTLS通信でメールの送信ができた。
これも2.2系はsdbmではなくbtreeに変わっています。
smtpd_tls_session_cache_database = btree:/etc/postfix/smtpd_scache
但し、 btreeタイプだとうまく動かないことがあったと記憶してます。その場合、コメントアウトしてキャッシュしなければ動作したはずですが、その影響は未調査ですので、一度 btreeでやってみてはどうですか?
> ちなみに、このバージョンではクライアントのNortonAV問題が解決していそうでした。(※NortonAV2006を有効化しても送信可能だった)
>
> と、ここまでは来たのですが。。。
> 当初おやじ様のご指摘の中にもあったのですが、ここにきて「確認できない認証局」攻撃に遭っています。
>
> 証明書の仕組みは何となく理解したつもりなのですが、スクリプトCAで作る方法と、opensslでコマンドレベルで作る方法とで混乱する部分があり、発行対象=サーバ、発行元=認証局が意図した通りに設定されているのか、かなり疑心暗鬼になってしまってます。(はたまたCA証明書のクライアントインストールがうまくいっていないのか。。。等)
>
> もう少しがんばってみます。
一回失敗したと思ったら、全部消してCA.plでやればできるはずです。中途半端に残すと失敗することがあります。がんばってください。
> > 当初おやじ様のご指摘の中にもあったのですが、ここにきて「確認できない認証局」攻撃に遭っています。
> >
> > 証明書の仕組みは何となく理解したつもりなのですが、
> 一回失敗したと思ったら、全部消してCA.plでやればできるはずです。中途半端に残すと失敗することがあります。がんばってください。
Basic Constraintsというのがわかっていなかったようです。
OL Expのエラー出力とca.derを吟味した結果辿り着きました。
(※FC5にperl仕様のCA.plがなかったのがイタかった。。。)
> これも2.2系はsdbmではなくbtreeに変わっています。
>
> smtpd_tls_session_cache_database = btree:/etc/postfix/smtpd_scache
こちらもbtreeで試したところ、問題ないmaillogとなっていたようです。
今回はいろいろアドバイスありがとうございました。m(_ _)m
これで安眠が取り戻せます。Zzzm(_ _)m
お疲れ様でした。
> > > 当初おやじ様のご指摘の中にもあったのですが、ここにきて「確認できない認証局」攻撃に遭っています。
> > >
> > > 証明書の仕組みは何となく理解したつもりなのですが、
>
> > 一回失敗したと思ったら、全部消してCA.plでやればできるはずです。中途半端に残すと失敗することがあります。がんばってください。
>
> Basic Constraintsというのがわかっていなかったようです。
> OL Expのエラー出力とca.derを吟味した結果辿り着きました。
> (※FC5にperl仕様のCA.plがなかったのがイタかった。。。)
詳しくは見ていないので何でこんなところにと思うのですが、実はあるのですよ。
下記の事前準備はご覧になりました?
http://www.aconus.com/~oyaji/www/certs_linux.htm
> > これも2.2系はsdbmではなくbtreeに変わっています。
> >
> > smtpd_tls_session_cache_database = btree:/etc/postfix/smtpd_scache
>
> こちらもbtreeで試したところ、問題ないmaillogとなっていたようです。
>
> 今回はいろいろアドバイスありがとうございました。m(_ _)m
> これで安眠が取り戻せます。Zzzm(_ _)m
全て、ドキュメントに書いてあることですが、なかなかわからないですよね。
> 下記の事前準備はご覧になりました?
>
> http://www.aconus.com/~oyaji/www/certs_linux.htm
openssl-perlでしたかぁ。。。
Pen MMX(HDD4GBノート)にFC5を入れているため、極力パッケージを
入れずにインストールしたため、足りないものが
いつもあるようです。
RH9のときより安定している気がして気に入ってはいるのですが。。。
> 全て、ドキュメントに書いてあることですが、なかなかわからないですよね。
いつも他人頼りで斜め読みってるのがいけませんでした。
木を見て森を見ず状態です。もう少し冷静になるよう努めます。