system
虎澤 笑美

2019.8.28システム開発 

Webクリエイター

虎澤 笑美

【ClamAV】clamscanのオプションをどうするか?

マリンロードスタッフブログをご覧いただいている皆様、こんにちは。
フロントエンドエンジニアの虎澤です。

サーバーの新規セットアップをする際、ウィルスチェックツールとしてClamAVを入れる方は多いかと思います。
clamscanには様々なオプションを付けることができますが、果たしてベストなコマンドは何なのでしょうか。
マニュアルなどを参考に、色々と試行錯誤してみました。

■オプション指定なしの場合

clamscan –infected –recursive /
 ———– SCAN SUMMARY ———–
 Known viruses: 6291419
 Engine version: 0.100.3
 Scanned directories: 27186
 Scanned files: 259298
 Infected files: 0
 Total errors: 5162
 Data scanned: 5854.52 MB
 Data read: 10800.41 MB (ratio 0.54:1)
 Time: 1338.407 sec (22 m 18 s)

めっちゃエラーでる。どうやらファイルシステム(sysfs,proc)をスキャンしようとするとエラーが出るらしい。

■現在のマウント状況を確認する

mount
 /dev/vda3 on / type ext4 (rw)
 proc on /proc type proc (rw)
 sysfs on /sys type sysfs (rw)
 devpts on /dev/pts type devpts (rw,gid=5,mode=620)
 tmpfs on /dev/shm type tmpfs (rw)
 /dev/vda1 on /boot type ext4 (rw)
 none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)

単純に/procと/sysを除外すると、その中にあるディレクトリやファイルのスキャンがされないんじゃ?

■「sysfs」と「proc」を除く現在のマウント状況を確認する

mount | egrep -v ‘ type +(sysfs|proc) ‘ | cut -d ‘ ‘ -f 3
 /
 /dev/pts
 /dev/shm
 /boot
 /proc/sys/fs/binfmt_misc

sysfsとprocのみを除外したこれらのマウントポイントに対してスキャンかけられればベストっぽい。

■上記を応用して、sysfsとprocを除外してチェック

clamscan –infected –recursive $(mount | egrep -v ‘ type +(sysfs|proc) ‘ | cut -d ‘ ‘ -f 3)
 ———– SCAN SUMMARY ———–
 Known viruses: 6291419
 Engine version: 0.100.3
 Scanned directories: 27195
 Scanned files: 259338
 Infected files: 0
 Total errors: 5162
 Data scanned: 5942.59 MB
 Data read: 10925.75 MB (ratio 0.54:1)
 Time: 1363.251 sec (22 m 43 s)

またエラーがでた。よく考えたらスキャン対象にroot(/)が含まれるから、/sysももちろんスキャンされる?
「–cross-fs=no」を指定すれば、スキャン可能なファイルだけチェックできるかも?

■ファイルシステムへのチェックを除外する

clamscan –infected –recursive –cross-fs=no /
 ———– SCAN SUMMARY ———–
 Known viruses: 6291419
 Engine version: 0.100.3
 Scanned directories: 23322
 Scanned files: 259154
 Infected files: 0
 Data scanned: 5737.70 MB
 Data read: 10652.22 MB (ratio 0.54:1)
 Time: 1295.366 sec (21 m 35 s)

とりあえず「–cross-fs=no」だけでやってみる。エラーはでないもよう。

■ファイルシステムへのチェックを除外し、且つsysfsとproc以外のマウントポイントをチェック

clamscan –infected –recursive –cross-fs=no $(mount | egrep -v ‘ type +(sysfs|proc) ‘ | cut -d ‘ ‘ -f 3)
 ———– SCAN SUMMARY ———–
 Known viruses: 6291419
 Engine version: 0.100.3
 Scanned directories: 23331
 Scanned files: 259194
 Infected files: 0
 Data scanned: 5863.23 MB
 Data read: 10777.59 MB (ratio 0.54:1)
 Time: 1262.693 sec (21 m 2 s)

「–cross-fs=no」のみのチェックよりディレクトリ/ファイル数が多い。つまり想定通り必要なものに的を絞ってチェックできているもよう。

■チェックするファイル数、ファイルの最大容量を拡大

clamscan –infected –recursive –max-filesize=4095M –max-scansize=4095M –cross-fs=no $(mount | egrep -v ‘ type +(sysfs|proc) ‘ | cut -d ‘ ‘ -f 3)
 ———– SCAN SUMMARY ———–
 Known viruses: 6291419
 Engine version: 0.100.3
 Scanned directories: 23331
 Scanned files: 259194
 Infected files: 0
 Data scanned: 8991.21 MB
 Data read: 10777.64 MB (ratio 0.83:1)
 Time: 1425.382 sec (23 m 45 s)

上記+これらのオプションを付けた、このコマンドが最終的にベストかもしれない。

セットアップ時は他にも色々と設定を調整しないといけないものもありますが、
DBの設定なんかはどんなサイトを運用するかによって変わってくるかと思います。
細かいところも随時見直して、その時その時でベストなセットアップをできるようにしていきたいですね。

以上、虎澤でした。

WEBサイト自己診断シート イメージ
システム開発サービスはこちら
ページTOPへ