milterを使った効果的な迷惑メール対策 - milter manager

2009|04|05|06|07|08|09|10|11|
2010|03|05|08|
2011|01|06|11|
2012|05|11|12|
2013|03|06|07|
2014|01|08|12|
2015|11|
2016|06|11|
2017|06|
2019|09|
2021|06|

clamav-milterは単体でも動く

注: 0.94までの話です。

ClamAVはわりとメモリを使うため、clamdやclamav-milterプロセスが50MBから100MBくらいのメモリを使うことは珍しくありません。しかし、ClamAVがメモリをたくさん使うからといって、clamdが100MB、clamav-milterが100MB、ClamAVだけで200MBもメモリを使うなんて…と思っていけません。

そのような使い方はもったいない使い方です。

よくある誤解

clamav-milterは2つの動作モードがあります。

1つめはclamdに接続し、ウィルスチェックはclamdが行うモードです。ウィルスチェックはclamdが行うので、clamav-milterは数MB程度のメモリで動作します。多くの場合、この動作を期待していると思います。

2つめはclamav-milterが自分でウィルスチェックを行うモードで、clamdが動作している必要はありません。明示的に--externalオプションを指定しない場合はこのモードです。つまり、デフォルトではclamav-milter単体で動作するモードということです。

多くの場合はclamdも必要だと思っているため、clamdもclamav-milterも起動してしまうと思います。しかし、そのときにclamav-milterに--externalを指定していないと、clamdもclamav-milterもウィルスチェックを行う準備をするため、両方のプロセスが100MB程度のメモリを使用することになってしまいます。

この場合は、clamdはまるで働かないので、単にメモリを消費しているだけになります。--externalオプションをつけないでclamav-milterを使う場合はclamdは起動しないようにして、無駄なメモリを使わないようにしましょう。

最近のclamav-milter

2009年3月にリリースされたClamAV 0.95からclamav-milterの実装が一新され、常にclamdに接続するようになっています。そのため、0.95以降が使われるようになれば、上記のようなもったいない使い方はなくなるでしょう。

0.95のclamav-milterは接続するclamdを複数指定することができます。この機能により、あるclamdが落ちていても自動で別のclamdに接続するため、障害に強いシステムを構築できます。

ただし、0.95のclamav-milterはまだいくつか問題が残っているようなので、次のリリースまでもう少し様子をみた方がよいかもしれません。(リポジトリ上では問題は修正されています。)

まとめ

0.95以降では、clamd + clamav-milterの構成になっています。 0.94までのclamav-milterを使っている時は、--externalオプションをつけることにより、この構成になります。将来的に0.95以降へのバージョンアップを考えているのなら、0.94までのclamav-milterを使用している場合でも、0.95以降の構成で運用するとよいのではないでしょうか。

2009-04-04

2009|04|05|06|07|08|09|10|11|
2010|03|05|08|
2011|01|06|11|
2012|05|11|12|
2013|03|06|07|
2014|01|08|12|
2015|11|
2016|06|11|
2017|06|
2019|09|
2021|06|