ClamAVでウィルススキャンを実行する手順を記載します。
Table of Contents
1 clamavパッケージでウィルススキャンを実行する
clamavパッケージをインストールします。
$ sudo apt install -y clamav
clamscanでウィルススキャンを実行します。
- -rオプションでディレクトリを再帰的に走査します。
- -iオプションで検出ファイルのみ表示します。
- –moveオプションで検出ファイルを指定のディレクトリへ移動します。
$ mkdir ~/virus $ clamscan -r -i --move=$HOME/virus .
2 手動でウィルスデータベースを更新する
ウィルスデータベースを更新するにはfreshclamコマンドを実行します。
$ sudo freshclam
clamav-freshclam.serviceがを動作している場合は以下のエラーとなります。
ERROR: /var/log/clamav/freshclam.log is locked by another process ERROR: Problem with internal logger (UpdateLogFile = /var/log/clamav/freshclam.log).
3 clamav-freshclam.serviceで自動的にウィルスデータベースを更新する
clamav-freshclam.serviceが自動的にfreshclamコマンドを実行してくれるので、自分でfreshclamコマンドを実行する必要はありません。
$ sudo apt install -y clamav-freshclam $ sudo systemctl enable clamav-freshclam
ただし、以下のように初回起動時は更新がなかなか上手く行かない場合があります。
WARNING: getfile: Unknown response from db.local.clamav.net
その場合は一度clamav-freshclamを停止してからfreshclamコマンドを自分で実行すると良いでしょう。
$ sudo systemctl stop clamav-freshclam $ sudo freshclam $ sudo systemctl start clamav-freshclam
clamav-freshclamによるデータベースの更新間隔はfreshclam.confのChecks の値で決まります。デフォルトでは1日に24回更新を試みます。
$ grep Checks /etc/clamav/freshclam.conf Checks 24
4 clamav-daemonパッケージでウィルススキャンを実行する
clamav-daemonパッケージはclamdデーモンとclamdscanコマンドからなるパッケージです。 clamdはデータベースを予め読み込み、clamdscanコマンドの要求に応じてスキャンを実行するデーモンです。データベースの分だけ常にメモリを消費しますが、clamdscanはclamscanに比べて実行速度が段違いに早いです。 clamscanとは異なり、clamdscanの挙動はclamdに依存します。
WEBサイトにアップロードされるファイルをスキャンする場合はこちらを利用すべきでしょう。
$ sudo apt install -y clamav-daemon $ sudo systemctl enable clamav-daemon $ sudo systemctl start clamav-daemon $ clamdscan <dir>
5 clamtkパッケージでウィルススキャンを実行する
clamtkパッケージはclamavをGUI操作できるようにするパッケージです。デスクトップで使うのに向いています。
$ sudo apt install -y clamtk
LC_TIME=Cを設定しないとスキャン後のダイアログが表示されず、駆除を実行したりや履歴に残せない問題があるので、desktopファイルでLC_TIME=Cを設定するようにします。直接clamtkを呼ぶ場合も同様にLC_TIME=Cを設定してください。
$ sudo sed -e 's/Exec=clamtk %F/Exec=env LC_TIME=C clamtk %F/g' \ -i /usr/share/applications/clamtk.desktop
起動画面は以下の通りです。私の環境だと各項目を選択するのにダブルクリックする必要がありました。
Settingsで"scan directories recursively"にチェックを入れておきます。
"Scan a directory"からホームディレクトリを再帰的にスキャンできます。