Postfix+Dovecotで構築したメールサーバーが送受信不能に!
今日、ある客先からメールの送受信が出来なくなったと連絡が入りました。
その客先のメールサーバーは当家とほぼ同じ構成で、Postfix+Dovecot+Clam AntiVirus+SpamAssassinでスパムメールを弾くようになってます。
先日のyumの更新エラーも同様に出ていたんですが、yumについては当家のサーバーと同じ対処をしてエラーは出なくなっていました。
また、両サーバーともClam AntiVirusの更新もエラーになっていたんですが、特に使用には問題無かったのと、ソースコードからインストールしていたClam AntiVirusのUpdateが難しかったんで放置してました。
そしたら今日になってメールの送受信が全く出来ないと。
おそらくAntiVirusがUpdate出来ずに正常に動作していなのが原因だとは思うんですが、当家のサーバーではメールは問題なく使えてるんで確信はありません。
試しに客先のサーバーにチェック用に作ってあった自分のアカウントでメールを送受信してみたら、ホントに送信も受信も出来ません。
しかもエラーメールさえ来ない。。
とにかくソッコーで何とかしないとってことで、いろいろ調べたんですがどうにも要領を得ませんでした。
そこで、取り敢えず当家のサーバーでClam AntiVirusのUpdateを試してみることに。
まずは「/etc/rc.d/init.d/clamd stop」でClamdを止めようとしたらエラー。Clamdは動いてないってことですね。
「etc/rc.d/init.d/clamd start」をしてみるとlibclamavが古いってエラーが出てやっぱり動きません。
ホントはソースコードからインストールしたツールをUpdateする場合は、インストールされているバージョンを削除してから最新版をインストールしなきゃいけないんですが、インストール時の元ファイルを削除しちゃってたんでアンインストールもままなりません。
ただ、そのまま新しいバージョンをインストールすれば上書きされる可能性が高いってことなんで、ダメ元でやってみることにしました。
PCでClam AntiVirusのサイトに行き、最新版(0.98.5)をDLしてサーバーにUPしてインストール。
インストール完了後に「freshclam」でUpdateしてみると、、
やはりlibclamavが古いってエラーが出てアウト。
モノは試しってことでlibclamav系のファイルがあった「/usr/local/lib」内のディレクトリとファイルを全て削除してからもう一度インストール。
clamdをスタートしてみるとsocketが他のプロセスで使われてるって出てエラー。
そこで「/tmp/clamd.socket」を削除して再スタート。
これでやっとclamdが動き出しました。
試しに自分のディレクトリをウィルススキャンしてみると正常にスキャン終了。
「freshclam」でUpdateしてみると正常にウィルス定義ファイルのUpdateも出来ました。
…やはり/usr/local/lib内を削除しておかないとlibclamavファイルが上書きされなかったんですね。。
これなら何とかイケるだろってことで、客先のサーバーのAntiVirusも同様にUpdateしてみました。
インストール終了後、ウィルススキャンもfreshclamも正常に動作することを確認してからPostfixを再起動。
PCのメールソフトを開くと、さっきテスト用のアカウントで送受信して行方不明になっていたメールが一斉に入ってきました。
念のために客先のサーバーの各ユーザのメールボックスを見ると、さっきまで入ってなかった今日付けのメールがごっそり入ってました。
ってことで、やはりAntiVirusが原因でした。
取り敢えず原因が分かって対処も出来たんで、これで一安心ですが、、
メールが送受信出来ないって連絡を受けたときは久しぶりにテンパりました。