ページ

2016年5月30日月曜日

FreeBSD cyrus-sasl2-saslauthd のコアダンプの怪

自宅サーバを FreeBSD 9.3 から 10.3 へアップグレードを行った後、まだ残っている問題が一つあります。それは SMTP 認証を司っている cyrus-sasl2-saslauthd がコアダンプ(core dump)してしまうことです。
# service saslauthd start
Starting saslauthd.
Segmentation fault (core dumped)
/usr/local/etc/rc.d/saslauthd: WARNING: failed to start saslauthd

我が家のメール事情

我が家にある各パソコンからメールを送信する場合には、自宅サーバの MTA の Sendmail の smart_host 機能を経由して、プロバイダのメールサーバへ接続した後、メールを送信するようになっています。

上記のとおり、Sendmail の SMTP 認証が出来なくなったことから、メールの送信が出来なくなってしまいました。メールを送信する最低限のパソコンだけ、自宅サーバを経由せず、直接プロバイダのメールサーバへ SMTP 認証を受けるようにして、メール送信を行うことで、不具合に対処していました。

原因不明

単純に portmaster で依存関係にあるパッケージと一緒に再インストール(※1)を試みましたが、コアダンプしてしまうことに変化はありませんでした。なおビルドオプションは標準に戻してビルドを行っています。またターゲット CPU を prescott に設定していましたが、i686 に設定を行ってもコアダンプしてしまいました。

なおこの問題のため、休眠中のパソコンへ FreeBSD 10.3 をインストールして、 cyrus-sasl2 と cyrus-sasl2-saslauthd を portmaster でインストールしてみましたが、問題なく動作していました。このため saslauthd がコアダンプしてしまう問題は、我が家のサーバだけの問題のようです。
# portmaster security/cyrus-sasl2  security/cyrus-sasl2-saslauthd

しかし pkg でビルド済みのパッケージをインストールすると何故か動作してしまうのです(笑)。 謎です。
# pkg install security/cyrus-sasl2  security/cyrus-sasl2-saslauthd

私の稚拙な知識ではどうすることもできませんでした。
とりあえず、saslauthd が動作する pkg のビルド済みのパッケージを利用して、現状のメール送信できない状況を回避しました。

※1:この SMTP 認証の saslauthd のコアダンプ問題の他にも、いろいろと問題が自宅サーバにあったことから、インストール済みの全てのパッケージ(ports)を再ビルドしていました。18 時間ほどかかりました(涙)。 この全パッケージの再ビルドによって、FreeBSD 9.3 時代の各種のライブラリのリンクなどは新しい FreeBSD 10.3 のものへ移行しているはずです。
# portupgrade  -af  --batch

SMTP 認証の参考サイト

27.9. SMTP Authentication - FreeBSD
https://www.freebsd.org/doc/handbook/SMTP-Auth.html

[2016-06-04] 追記

本記事の saslauthd がコアダンプしてしまう件について、その後、自宅サーバで smarthost 機能を経由してのメール発信を中止しました。個々のパソコンから直接、プロバイダの SMTP サーバへ接続して、メールを発信するようにしました。

理由は、pkg のビルド済みパッケージでも動作が不安定になることがあったためです。もう数日、この件で時間ばかりが過ぎ去るばかりで解決することができませんでした。

なお新規に余剰のパソコンへ FreeBSD 10.3 をインストールした後、SMTP 認証に必要なパッケージを portmaster でインストールして、saslauthd の設定を行って動作確認をしてしてみました。新規インストールの場合は、全く問題なく saslauthd が動作して、SMTP 認証経由で smathost 機能が動作しました。やはり saslauthd がコアダンプしてしまう件は、我が家の自宅サーバ固有の問題でした。

0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。