Ubuntu18.04にClamAV/clamTkをインストールするには

ClamAVとは

Linuxでも使える無料のアンチウィルスソフトです。オンデマンドのスキャン、定期的なスキャンをします。

Windows、MacOS X、Linux、BSD、Solarisに対応しています。

Linuxのウイルスだけでなく、WindowsやMacのウィルスも検出します。WindowsやMacのウィルスがLinux経由で広がる危険を抑えます。

ClamAVNet

clamTkとは

clamTkは、Linux用のClamAVのGUIフロントエンドです。

ホームディレクトリ下のデイリースキャンを簡単に設定できます。

ClamAVのコマンドとcrontabでデイリースキャンの設定は難しかったけど...

clamTkを使えば簡単よ。

Home · Wiki · Dave M / clamtk · GitLab
An easy to use, light-weight, on-demand virus scanner for Linux systems. For additional help, see the wiki.

clamTkのインストール

clamTkをインストールすると、ClamAV本体や必要なものもインストールされます。

$ sudo apt install clamtkCode language: Bash (bash)

clamTkの使い方

デスクトップ左上の「アクティビティ」>検索に「clamtk」
デスクトップ左下の「アプリケーション」>アプリケーション一覧
ターミナルからは、clamtk
で起動します。

$ clamtk &
メイン画面

1.設定

メイン画面の「設定」をダブルクリックしてください。

設定画面

「ディレクトリを再帰的にスキャンする」にチェックを付けてください。
また、好みで、
「アイコンのダブルクリックで開く」のチェックを外してください。

2.アップデート

メイン画面の「アップデート」をクリックしてください。

アップデート画面

左下の「OK」ボタンをクリックしてください。

アップデート画面:アップデート完了

「アンチウィルスのシグネチャ」は25496は、シグネチャ数ではなく、バージョンです。

ターミナルで、~/.clamtk/db を lsしてみて、main.cvdのサイズが大きくなっていれば、アップデートされています。

$ ls -al ~/.clamtk/db
合計 241788
drwxr-xr-x 2 aoki aoki      4096  7月  1 10:59 .
drwxr-xr-x 6 aoki aoki      4096  7月  1 11:01 ..
-rw-r--r-- 1 aoki aoki    199693  6月 30 00:15 bytecode.cvd
-rw-r--r-- 1 aoki aoki 129477120  7月  1 10:58 daily.cld
-rw-r----- 1 aoki aoki      2957  7月  1 10:59 freshclam.log
-rw-rw-r-- 1 aoki aoki 117892267  7月  1 10:58 main.cvd
-rw------- 1 aoki aoki       104  7月  1 10:59 mirrors.dat
Code language: Bash (bash)

また、~/.clamtk/db/freshclam.logを表示してみると、「daily.cld is up to date (version: 25496, sigs: 1606212, f-level: 63, builder: raynman)」とあり、さきほどの「アンチウィルスのシグネチャ:25496」が見つかります。

$ tail ~/.clamtk/db/freshclam.log
Mon Jul  1 00:15:15 2019 -> Database updated (6172555 signatures) from db.local.clamav.net (IP: 104.16.219.84)
Mon Jul  1 00:15:15 2019 -> WARNING: Clamd was NOT notified: Can't connect to clamd through /var/run/clamav/clamd.ctl: Permission denied
Mon Jul  1 10:59:19 2019 -> --------------------------------------
Mon Jul  1 10:59:19 2019 -> ClamAV update process started at Mon Jul  1 10:59:19 2019
Mon Jul  1 10:59:19 2019 -> WARNING: Your ClamAV installation is OUTDATED!
Mon Jul  1 10:59:19 2019 -> WARNING: Local version: 0.100.3 Recommended version: 0.101.2
Mon Jul  1 10:59:19 2019 -> DON'T PANIC! Read https://www.clamav.net/documents/upgrading-clamav
Mon Jul  1 10:59:19 2019 -> main.cvd is up to date (version: 58, sigs: 4566249, f-level: 60, builder: sigmgr)
Mon Jul  1 10:59:19 2019 -> daily.cld is up to date (version: 25496, sigs: 1606212, f-level: 63, builder: raynman)
Mon Jul  1 10:59:19 2019 -> bytecode.cvd is up to date (version: 328, sigs: 94, f-level: 63, builder: neo)
Code language: Bash (bash)

3.アップデートアシスタント

アップデート受信のスケジュールを自分で設定した場合は、次の設定をしてください。
メイン画面の「アップデートアシスタント」をクリックしてください。

アップデートアシスタント画面

「自分でシグネチャをアップデート」をチェックを付けてください。
右下の「適用」ボタンをクリックしてください。

アップデートアシスタント画面:適用ボタンをクリック後

4.スケジュール

メイン画面の「スケジュール」をクリックしてください。

スケジュール画面

さきほどの「アップデートアシスタント」で「コンピュータが自動的にアップデートを受信」にチェックしている場合は、アップデートは「赤−」になっていて、設定できません。

スキャンやアップデートの「時」「分」を入力して、「緑+」をクリックしてください。

※ホワイトリストを編集する場合、スケジュール、ホワイトリストの順に設定すると、スケジュールスキャンにホワイトリストが反映されませんでした。ホワイトリスト、スケジュールの順に設定してください。

スケジュール画面:「+」ボタンをクリック後

筆者の環境では、分の内容が「0」に戻ってしまうことがありました。その場合は「赤−」をクリックして、「分」右側のスピンボタン(▲▼)で数値を増減してから、「緑+」をクリックすると、設定できました。

スケジュールが設定されているかを確認するには、ターミナルで「crontab -l」を実行します。「-l」は小文字のエルです。

$ crontab -l
10 1 * * * /usr/bin/freshclam --datadir=/home/aoki/.clamtk/db --log=/home/aoki/.clamtk/db/freshclam.log # clamtk-defs
30 1 * * * /usr/bin/clamscan --exclude-dir=/home/aoki/.clamtk/viruses --exclude-dir=smb4k --exclude-dir=/run/user/aoki/gvfs --exclude-dir=/home/aoki/.gvfs --exclude-dir=.thunderbird --exclude-dir=.mozilla-thunderbird --exclude-dir=.evolution --exclude-dir=Mail --exclude-dir=kmail --database=/home/aoki/.clamtk/db -i -r /home/aoki --log="$HOME/.clamtk/history/$(date +\%b-\%d-\%Y).log" 2>/dev/null # clamtk-scanCode language: Bash (bash)

この例では、

  • 「10 1 * * * /usr/bin/freshclam」の行は、1時10分にアップデート
  • 「30 1 * * * /usr/bin/clamscan」の行は、1時30分にスキャン

と設定されています。clamTkで入力したとおりに設定されていました。

5.履歴

メイン画面の「履歴」をクリックしてください。

履歴画面

日付をダブルクリックしたけど、何もおきないよ?

日付を選択して、左下の「表示」ボタンをクリックしてください。スキャンログが表示されます。

ウィルスが見つかったら、なにか通知されるの?

ウィルスが見つかっても、通知はありません。ときどき、自分で履歴を確認してください。

テストウィルス

ウィルスを検知できるか確認したいわ

テストウィルスを使って、ウィルスを検出できるかどうか試してみます。

本物のウィルスではなく、テキストメッセージを表示するだけの、Windows用テストウィルスです。

eicar.orgのDOWNLOADページからテストウェイルスファイルをダウンロードしてください。eicar.com、eicar.com.txt、eicar_com.zip、eicarcom2.zip など、どのファイルをダウンロードしてもかまいません。

または、次の68バイトをコピペして、ファイル名 eicar.com で保存してください。

X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*Code language: PHP (php)

メイン画面の「ファイルをスキャン」をクリックして、ファイル eicar.comを選択してください。

「潜在的な脅威が見つかりました」アラート表示

潜在的な脅威が見つかりました、と表示されるはずです。

eicar.comをそのまま残しておいて、定期スキャンの履歴にも記録されるか確認してみて。

処理時間と週1スキャン

筆者の環境では、デイリースキャンに9時間かかりました。ファイル数は 214万、データ量は 360GBです。

----------- SCAN SUMMARY -----------
Known viruses: 6825256
Engine version: 0.102.2
Scanned directories: 346999
Scanned files: 2137980
Infected files: 1
Total errors: 25
Data scanned: 100403.74 MB
Data read: 359086.18 MB (ratio 0.28:1)
Time: 33094.005 sec (551 m 34 s)Code language: CSS (css)

深夜にスキャン開始して、朝9時になっても、まだ終わっていません。

ファンがうなっているんだよね

そこで、デイリースキャンではなく、日曜だけの週1スキャン(ウィークリースキャン)にしました。

残念ながら、ClamTKの画面で週1スキャンは設定できません。ターミナルを開いて crontabコマンドで設定します。

現在のcron設定をファイル保存します。「-l」は小文字のエルです。

$ crontab -l >my_crontab.txt

$ cat my_crontab.txt
10 1 * * * /usr/bin/freshclam --datadir=/home/aoki/.clamtk/db --log=/home/aoki/.clamtk/db/freshclam.log # clamtk-defs
30 1 * * * /usr/bin/clamscan --exclude-dir=/home/aoki/.clamtk/viruses --exclude-dir=smb4k --exclude-dir=/run/user/aoki/gvfs --exclude-dir=/home/aoki/.gvfs --exclude-dir=.thunderbird --exclude-dir=.mozilla-thunderbird --exclude-dir=.evolution --exclude-dir=Mail --exclude-dir=kmail --database=/home/aoki/.clamtk/db -i -r /home/aoki --log="$HOME/.clamtk/history/$(date +\%b-\%d-\%Y).log" 2>/dev/null # clamtk-scanCode language: Bash (bash)

必要に応じて、バックアップコピーしておいてください。

$ cp my_crontab.txt my_crontab.txt.bakCode language: Bash (bash)

「/usr/bin/clamscan」の行を探してください。定期スキャンを設定している行です。

修正前の「30 1 * * * /usr/bin/clamscan」の5つ目の「*」は、全ての曜日という意味です。つまり毎日という意味です。

修正後の「30 1 * * 0 /usr/bin/clamscan」の5つ目の「0」は、日曜という意味です。

30 1 * * * /usr/bin/clamscan (省略)
↓
30 1 * * 0 /usr/bin/clamscan (省略)Code language: Bash (bash)

crontabに適用します。

$ crontab my_crontab.txtCode language: Bash (bash)

crontab -l で設定内容を表示して、編集箇所が反映されているか、確認してください。「-l」は小文字のエルです。

$ crontab -l
10 1 * * * /usr/bin/freshclam --datadir=/home/aoki/.clamtk/db --log=/home/aoki/.clamtk/db/freshclam.log # clamtk-defs
30 1 * * 0 /usr/bin/clamscan --exclude-dir=/home/aoki/.clamtk/viruses --exclude-dir=smb4k --exclude-dir=/run/user/aoki/gvfs --exclude-dir=/home/aoki/.gvfs --exclude-dir=.thunderbird --exclude-dir=.mozilla-thunderbird --exclude-dir=.evolution --exclude-dir=Mail --exclude-dir=kmail --database=/home/aoki/.clamtk/db -i -r /home/aoki --log="$HOME/.clamtk/history/$(date +\%b-\%d-\%Y).log" 2>/dev/null # clamtk-scanCode language: Bash (bash)

サスペンド中でもスキャンするのかな?

自動サスペンド=オフにしていて、電源つけっぱなしだから、試したことないって

タイトルとURLをコピーしました