|
ウィルス対策 |
2010年10月12日(火) | 2010年10月27日(水)更新 |
サーバーのウィルスチェックをやります。 Clam AntiVirus(clamav)を使うことにします。 併せてメール用のスキャナclamsmtpも設定しておきます。 |
Linuxに容易に?インストール、稼働できてしかも無料といえば真っ先に思いつくのが Clam AntiVirus(clamav)ですが、今回もこれを使います。
併せてメールのウィルスチェック用にclamsmtpもインストールしておきます。
インストール
1. | EPELのclam関係はかなり大幅に改変されており、その意図もよくわからず、今までと違いすぎてたいへん使いにくい。 |
2. | バージョンが古く、freshclamによるデータアップデートのたびに警告が出る。 今後バージョンアップフォローがちゃんとなされるのか非常に不安。(ちなみにインストールされたバージョンは1年以上前のもの。) |
3. | 情報が少なく設定や稼働に不安。 |
で、EPELからいれたのは思い切りすべてアンインストール。
気をとりなおして再挑戦。
yumex(Yum Extender)でclamav,clamd,clamav-dbをインストール。今回のバージョンは0.96-3でした。
設定まずはウィルスデータベースの更新を設定します。 /etc/freshclam.conf を編集。...と思いましたが、そのままでいいようです。 データベースを更新してみます。 # freshclam なんたらかんたら言いながらデータベースを更新しています。 # freshclam |
少し早いけどclamdの起動設定もしておきます。
# chkconfig --list clamd で確認。
自動起動は設定されていました。
/etc/clamd.conf を確認。ほとんどそのままでいいようですが、少し好みで変更。
LogFileMaxSize 1M
SelfCheck 3600
clamdを起動してみます。
# service clamd start
Starting Clam AntiVirus Daemon: WARNING: Running on 32-bit system, and RLIMIT_DATA > 2GB, lowering to 2GB!
LibClamAV Warning: Cannot prepare for JIT, because it has already been converted to interpreter [ OK ]
いちおう起動するのですが、なにかがちゃんと設定されてないのかなと思いつつ、設定ファイルなどを見てみました。
WARNING: Running on 32-bit system,... についてはわかりません。検索してみるとどうやらバグのようです。実害はなさそうなので気にしないことにします。
LibClamAV Warning: Cannot prepare for JIT,... については、freshclam.confの最後のほうにある
#Bytecode yes を
Bytecode no とし、
/var/clamav の bytecode.cvd を捨ててしまえば出なくなることまではわかりましたが、出ても問題はなさそうなのでそのままにしておきます。
[追記]2010.10.27 clamav,clamdのバージョンアップが出ていましたのでアップデートしたらこれらのWARNINGは出なくなりました。
停止時の設定なのでそのままでも実害はないとおもわれますが、いちおう起動スクリプトのほうを訂正しておきます。
stop() { } の中の
rm -f /var/clamav/clamd.socket を設定ファイルにあわせて
rm -f /var/run/clamav/clamd.sock に訂正。
動作テストためしにスキャンしてみます。 # clamscan -i -r --log=/var/log/clamav/clamscan.log /home/kiyoshi ----------- SCAN SUMMARY ----------- ということで、ウィルスはみつかりません。Known viruses: 843313 Engine version: 0.96.3 Scanned directories: 119 Scanned files: 448 Infected files: 0 Data scanned: 33.39 MB Data read: 32.26 MB (ratio 1.03:1) Time: 9.219 sec (0 m 9 s) /var/log/clamav/clamscan.log にログが記録されています。 http://www.trendmicro.co.jp/download/test-virus.asp よりテスト用ウィルスをダウンロードし、検出できるか試してみます。同様にスキャン。 # clamscan -i -r --log=/var/log/clamav/clamscan.log /home/kiyoshi /home/kiyoshi/eicar.testvirus: Eicar-Test-Signature FOUND OK!----------- SCAN SUMMARY ----------- Known viruses: 843313 Engine version: 0.96.3 Scanned directories: 119 Scanned files: 449 Infected files: 1 Data scanned: 33.39 MB Data read: 32.26 MB (ratio 1.03:1) Time: 9.384 sec (0 m 9 s) |
Daily Check
以下の方針でウィルスチェックを定期的に行うようにスクリプトを書いて /etc/cron.daily に置いておきます。
1. | 指定したフォルダをチェックします。全部やるとすごい時間がかかるので、最低限外部からデータの入ってくるフォルダのみとします。 |
2. | スキャンした記録を/var/log/clamscan.logに累積で記録。 |
一回のみの結果を /var/log/viruscheck.log に記録。 | |
3. | ウィルスが見つかったら/var/tmp/clamav/clamscanへ隔離し、rootへメール。 |
4. | 他の動作が遅くならないよう低優先度で動作。 |
実行優先度を下げても他のプロセスが動いてなければ時間は変わりませんでしたが、実行中にブラウザなどを使ってみると少し遅くなる程度で優先度を指定しておくのは正解そうです。
引き続いてメールスキャン用のclamsmtpをやっておきます。
clamsmtpdインストールと設定
http://www.inet.lt/clamsmtp/ にclamsmtpのソースと簡単なインストール手順があります。
最新ソースをゲット。
$ cd ~/rpm/SRPMS/
$ wget http://www.inet.lt/clamsmtp/clamsmtp-1.10-1.src.rpm
いちおう展開してspecなど見てみましたが特に変更するところもなさそうなので引き続きビルド
$ rpmbuild --rebuild clamsmtp-1.10-1.src.rpm
~/rpm/RPMS/i386 にclamsmtp-1.10-1.i386.rpm ができますのでインストール。
$ cd ../RPMS/i386/
$ su
念のためテスト。
# rpm -ivh --test clamsmtp-1.10-1.i386.rpm
OKのようなのでインストール。
# rpm -ivh clamsmtp-1.10-1.i386.rpm
/etc/clamsmtpd.conf を編集。変えたところ:
Header: X-Virus-Scanned: ClamAV using ClamSMTP
TempDirectory: /var/tmp/clamav/clamsmtp
Action: drop
Quarantine: on
User: clamav
VirusAction: /usr/local/bin/virusalert.sh
感染ファイル隔離用ディレクトリ /var/tmp/clamav/clamsmtp をつくり、UID:GIDをclamav:clamavとし、書込権限を与えておきます。
ウィルスが見つかったときのメール通知スクリプトvirusalert.shをつくり、/usr/local/binに置いておきます。
/etc/yum.confと/etc/yumex.confの各々のexcludeにclamsmtp*を追加し、アップデート対象から外しておきます。
# chkconfig clamsmtpd on
# service clamsmtpd start
OKです。
このあとpostfixにclamsmtpdを使ってのメールスキャンの設定をします。
その他
データベースのアップデート中にチェックが重なると落ちることがあるとの噂。
CentOS5ではまだわかりませんが、念のためチェックスクリプトを作って/etc/cron.hourlyに置いておきます。
|