ClamTk を導入する
随分前に ClamAV を導入する話を書いたのだが,今回は GUI フロントエンドである ClamTk を導入する。
その前に ClamAV 手順が以前とは少し違ってるみたいなので,そこからやり直し。
ClamAV のインストール
ClamAV は APT でインストール可能。 ここは以前と変わらず。
$ sudo apt install clamav clamav-daemon libclamunrar
前のときはなかった libclamunrar
は圧縮ファイルの中身やメール添付ファイルを検証するパッケージらしい。
Ubuntu では依存パッケージとして libclamunrar11
もインストールされる。
Debian だと libclamunrar12
ってのがあるらいいけど Ubuntu の標準リポジトリにはなかった。
バージョンを確認しておこう。
$ clamscan --version
ClamAV 1.0.5/27321/Sat Jun 29 17:39:26 2024
おー。 v1 に到達してたのか。
インストール後のサービスの状態を確認する。
$ sudo systemctl status clamav-daemon.service
○ clamav-daemon.service - Clam AntiVirus userspace daemon
Loaded: loaded (/usr/lib/systemd/system/clamav-daemon.service; enabled; preset: enabled)
Drop-In: /etc/systemd/system/clamav-daemon.service.d
└─extend.conf
Active: inactive (dead)
TriggeredBy: ○ clamav-daemon.socket
Condition: start condition unmet at Sun 2024-06-30 09:19:59 JST; 2min 11s ago
└─ ConditionPathExistsGlob=/var/lib/clamav/daily.{c[vl]d,inc} was not met
Docs: man:clamd(8)
man:clamd.conf(5)
https://docs.clamav.net/
ありゃ,状態が inactive
だな。
サービスを start
させればいいのかな。
$ sudo systemctl start clamav-daemon.service
$ sudo systemctl status clamav-daemon.service
● clamav-daemon.service - Clam AntiVirus userspace daemon
Loaded: loaded (/usr/lib/systemd/system/clamav-daemon.service; enabled; preset: enabled)
Drop-In: /etc/systemd/system/clamav-daemon.service.d
└─extend.conf
Active: active (running) since Sun 2024-06-30 09:37:30 JST; 5s ago
TriggeredBy: ● clamav-daemon.socket
Docs: man:clamd(8)
man:clamd.conf(5)
https://docs.clamav.net/
Process: 1408921 ExecStartPre=/bin/mkdir -p /run/clamav (code=exited, status=0/SUCCESS)
Process: 1408923 ExecStartPre=/bin/chown clamav /run/clamav (code=exited, status=0/SUCCESS)
Main PID: 1408925 (clamd)
Tasks: 1 (limit: 37666)
Memory: 922.0M (peak: 922.0M)
CPU: 5.803s
CGroup: /system.slice/clamav-daemon.service
└─1408925 /usr/sbin/clamd --foreground=true
んー,大丈夫かな。
設定ファイルは /etc/clamav/clamd.conf
ができているはず。
そのままでも問題ない。
強いて挙げるなら MaxThreads
の値が CPU コア数になってると思うので,適当に間引いた値にするとストレスになりにくい。
On-Access スキャンの設定については以下を参照のこと。
設定変更したらサービスを restart
してね。
ClamAV 動作確認
以下のページからテスト用のファイルをダウンロードする。
次に,以下のコマンドを実行しダウンロードしたファイルをスキャンさせる。
$ sudo clamscan -r --bell -i --max-filesize=100M -l scan.log .
/path/to/eicar-test/eicar.com.txt: Win.Test.EICAR_HDB-1 FOUND
/path/to/eicar-test/eicarcom2.zip: Win.Test.EICAR_HDB-1 FOUND
/path/to/eicar-test/eicar_com.zip: Win.Test.EICAR_HDB-1 FOUND
/path/to/eicar-test/eicar.com: Win.Test.EICAR_HDB-1 FOUND
----------- SCAN SUMMARY -----------
Known viruses: 8695433
Engine version: 1.0.5
Scanned directories: 2
Scanned files: 11
Infected files: 4
Data scanned: 309.96 MB
Data read: 44.05 MB (ratio 7.04:1)
Time: 42.667 sec (0 m 42 s)
Start Date: 2024:06:30 09:53:06
End Date: 2024:06:30 09:53:49
んー,これも問題なさそうかな。 ちなみにオプションの意味は
-r
は指定したディレクトリを再帰的に走査する--bell
は malware を見つけたらベルを鳴らす-i
malware に感染したファイルのみを報告する--max-filesize
は指定したファイルより大きいファイルはスキップする(既定値は25M
)-l
はログファイルの指定
という感じ。
ClamTk のインストール
ClamTk のインストールも APT でOK。
$ sudo apt install clamtk
ただしそのままだと色々と不具合があるらしいので,以下のページを参考に,いくつかのファイルを変更する。
まずは /usr/bin/clamtk
(Perl ソース) ファイルから。
以下の記述を探す(45行目あたり?)。
setlocale( LC_ALL, '' );
# setlocale( LC_ALL, 'C' );
これのコメントを反転させる。
# setlocale( LC_ALL, '' );
setlocale( LC_ALL, 'C' );
もうひとつ。
/usr/share/perl5/ClamTk/Scan.pm
(これも Perl ソース) ファイルについても以下の記述を探す(200行目あたり?)。
# Try to avoid scanning emails...
$directive .= ' --scan-mail=no';
これの no
の部分を yes
に変更する。
# Try to avoid scanning emails...
$directive .= ' --scan-mail=yes';
これって APT で ClamTk を更新する度にやるのかねぇ。 面倒な…
まぁ,いいや。 早速起動してみよう。

修正のせいで英語表記になってるのかな。 これはしょうがないか。
まずは “Update Assistant” から

“I would like to update signitures myself” にチェックを入れて Apply する。 これは signiture データの更新を後述する “Scheduler” で行うため。
次に “Update” を開く。

“Check for Updates” を押下して signiture データを更新する(上の図は更新後の状態)。
更に “Whitelist” を開いて /home/username
ディレクトリ以下でスキャンから除外するディレクトリを指定する。
これでようやく “Scheduler” の設定ができる。

これでスキャンと signiture データの更新を行う時刻を指定できる。 “Scheduler” の設定は crontab に反映されている。 こんな感じ1。
$ crontab -l
1 1 * * * /usr/bin/freshclam --datadir=/home/username/.clamtk/db --log=/home/username/.clamtk/db/freshclam.log # clamtk-defs
10 1 * * * /usr/bin/clamscan --exclude-dir=/home/username/.clamtk/viruses --exclude-dir=smb4k --exclude-dir=/run/user/username/gvfs --exclude-dir=/home/username/.gvfs --exclude-dir=.thunderbird --exclude-dir=.mozilla-thunderbird --exclude-dir=.evolution --exclude-dir=Mail --exclude-dir=kmail --database=/home/username/.clamtk/db -i -r /home/username --log="$HOME/.clamtk/history/$(date +\%b-\%d-\%Y).log" 2>/dev/null # clamtk-scan
crontab って一見便利ぽいけど,コマンドライン・オプションの指定ミスで簡単に設定が消えちゃうし ClamTk みたいにツールが設定を行う場合もあるので,うっかり触れないんだよなー
愚痴はともかく,これで設定完了。 とりあえず “Scan a directory” で malware がないか確認しておこう。
お疲れ様でした。
ブックマーク
- Linux向けウィルス対策ソフトClamAVの使い方
- Ubuntu 22.04 LTSでウイルス対策ソフトを実行 ! | 与太郎のLinux道楽
- Linux MintにClamAVのGUIフロントエンドであるClamTkを導入する | サブログ -sub log-
参考図書
- スーパーユーザーなら知っておくべきLinuxシステムの仕組み
- Brian Ward (著), 柴田 芳樹 (翻訳)
- インプレス 2022-03-08 (Release 2022-03-08)
- 単行本(ソフトカバー)
- 4295013498 (ASIN), 9784295013495 (EAN), 4295013498 (ISBN)
- 評価
版元で PDF 版が買える。セキュリティ・エリアにも持ち込めるよう紙の本を買ったのだが,オンライン読書会が始まったので PDF 版も購入。Linux システムの扱い方に関するリファレンス本として優れている。最初に軽く流し読みして,必要に応じて該当項目を拾い読みしていけばいいだろう。
-
私は裏で色々バッチ処理を行ってる関係で,マシンは基本的に立ち上げっぱなしである。 ↩︎