前回までに DKIM で署名を付けるところまで行いました。この実験では最終危険な Windows PC がクライアントになる予定なので、Virus Check は必須となります。今回は Linux では定番の ClamAV を MILTER を使用して Virus Check を行えるようにしようと思います。世の中に Windows の Virus Checker は山ほどありますが、Linux 用となると一気に数が減ってしまいます。FreeBSD 用となるとさらに少なくなり、無償で使用できるものとなると、選択肢は限られたものとなります。なんとなく最新っぽくはないんですが、比較表がありましたので、ご参考まで。/usr/ports/security には2種類の ClamAV があります。ClamAV と ClamAV-LTS です。どちらが良いかは人それぞれですが、新しい物好きの私はエンジンのバージョンが新しい ClamAV を使ってみたいと思います。
clamav socket
/usr/ports/security/clamav ディレクトリで make install clean を行います。
因みに dhcp さんは非常に古い 32bit マシンですので、コンパイルに1時間以上かかりました。
コンパイル以上に問題となったのは、メモリでした。全く足りずにエンジンの起動に30分以上かかって、まだこの状態です。
エンジンの起動を待っている間にメモリに余裕のある wordpress さんでコンパイルと起動が完了してしまいました。ですので、dhcp さんのインストレーションはきれいに消しておきます。
データがあるディレクトリも削除しておきます。ユーザは NIS 経由で wordpress さんで使うので、そのまま残しておきます。
こちらが wordpress さんでの状況です。3つのプロセスと2つの TCP ポートがオープンしています。エンジンは localhost のポート 3310 で動いており、MILTER は NIC に割り当てているアドレスの TCP ポート 7357 で動いています。dhcp さんの sendmail からネットワーク越しに使用しますので、UNIX Socket は使用できません。
こちらが設定ファイルの変更点です。目的がわかっていれば、設定ファイルのコメントで何をどうすればよいかはすぐわかると思います。
UNIX ソケットを使用するのであれば、つまり dhcp さんだけで完結するのであれば何も変更せずに使用することができます。この実験のように負荷的に難しい場合や複数の sendmail でメールの送受信を行う場合を除いて、同じホスト上で動かす方がお勧めです。
clamav milter
wordpress さんの ClamAV を使うための MILTER の設定を入れて sendmail.cf を作り直します。
試しに pokemon さんから gmail.com のテストアカウントへメールを送ってみました。clmilter を通ったとログが残っています。
こちらが gmail.com のメールヘッダの切り抜きです。
clamav blocking test
さて、ウイルスを送り付けて実際にメールをブロックしてくれるのかどうかテストしてみます。そのためにはウイルスが必要です。と言っても、本当のウイルスを使うわけにはいかないので、テストパターンを使ってテストしてみます。例えば、こちらからダウンロードすることができます。まだ OS 付属の mailx しか使えないので、txt ファイルを落としてきてメールの内容としてコピペします。こんな感じです。
ログを見てみますと、テストパターンに感染していると、そしてメールは隔離したとメッセージが記録されています。
man mailq でわかると思いますが、隔離されたスプールファイルは -qQ オプションを付けると表示されます。こんな感じです。隔離されたファイルは普通のメールと同じ /var/spool/mqueue ディレクトリにあります。ファイルの数はメール1本につき2つです。両方とも消しておきましょう。
これでメールメッセージの安全はとりあえず確保できたと思います。次回は DMARC と SPF に関して書けたらと思います。
以下広告
コメント